ZaLinux.ru

Переход с устаревшей команды iwconfig (wireless_tools) на iw

Источники:

iw — это новая утилита командной строки, основанная на nl80211, для беспроводных устройств. Она поддерживает все новые драйверы, которые были добавлены в ядро за последнее время. Старый инструмент iwconfing, который использует Wireless Extensions interface (интерфейс беспроводного расширения), является устаревшим и настоятельно рекомендуется переключиться на iw и nl80211.

Замена iwconfig на iw

Приведём несколько практических примеров iwconfig и их альтернативу с командой iw.

Получаем информацию о wlan0

iwconfig wlan0

заменяется на

iw dev wlan0 link

Подключение к открытой сети

iwconfig wlan0 essid foo

заменяется на

iw wlan0 connect foo

Если вы хотите установить канал:

iwconfig wlan0 essid foo freq 2432M
-или-
iwconfig wlan0 freq 2432M
iwconfig wlan0 essid foo

теперь просто используйте

iw wlan0 connect foo 2432

Подключение к защищённой сети

Для шифрования WPA/WPA2 вы должны использовать wpa_supplicant.

Для защиты WEP protection вы можете использовать

iw wlan0 connect foo keys 0:abcde d:1:0011223344

вместо

iwconfig wlan0 key s:abcde
iwconfig wlan0 key '[2]0011223344'
iwconfig wlan0 key '[2]'
iwconfig wlan0 essid foo

Обратите внимание, что

iwconfig

использует нумерацию ключей основанную на 1, а

iw

использует нумерацию ключей, основанную на 0, как стандарт 802.11.

Для перевода строки в шестнадцатеричные однобайтовые единицы можно использовать команду od -t x1. Пример:

echo abcde | od -t x1
0000000 61 62 63 64 65 0a
0000006

Присоединение к IBSS (сеть ad-hoc)

iwconfig wlan0 mode ad-hoc
iwconfig wlan0 essid foo-adhoc

в iw:

iw wlan0 set type ibss
iw wlan0 ibss join foo-adhoc 2412

Отключение от IBSS (сеть ad-hoc)

iwconfig wlan0 essid off

должно бы работать, но не всегда работает должным образом.

в iw это всегда будет срабатывать:

iw wlan0 ibss leave

Примеры использования iw

В этой части мы рассмотрим самые ходовые примеры использования команды iw.

Справка по iw

Просто наберите

iw help

в вашей командной строке и будут напечатаны команды, которые ею поддерживаются.

Узнаём возможности устройства

Используйте следующую команду, чтобы узнать возможности всех устройств, сюда относятся частотные характеристики (2.4 и 5), и информация о 802.11n:

iw list

Сканирование

iw dev wlan0 scan

Прослушивание событий

Просто используйте

iw event

При отладке может быть полезным посмотреть фреймы auth/assoc/deauth/disassoc, для этого используйте

iw event -f

иногда также полезна информация о тайминге:

iw event -t

Получаем статус подключения

Чтобы определить, подключены ли вы к ТД или последнюю используемую величину TX, вы можете применить команду, показанную ниже.

Привет вывода, когда ассоциированы с устаревшей (не-802.11n) ТД:  

iw dev wlan0 link
Connected to 04:21:b0:e8:c8:8b (on wlan0)
        SSID: attwifi
        freq: 2437
        RX: 2272 bytes (18 packets)
        TX: 232 bytes (3 packets)
        signal: -57 dBm
        tx bitrate: 36.0 MBit/s

Пример вывода, когда подключены к ТД по 802.11n:

iw dev wlan0 link
Connected to 68:7f:74:3b:b0:01 (on wlan0)
        SSID: tesla-5g-bcm
        freq: 5745
        RX: 30206 bytes (201 packets)
        TX: 4084 bytes (23 packets)
        signal: -31 dBm
        tx bitrate: 300.0 MBit/s MCS 15 40Mhz short GI

Пример вывода, когда не подключены к ТД:

iw dev wlan0 link
Not connected.

Это может случиться, если вы не подключены к ТД. Для подключения к ТД вы можете использовать iw connect, если подключение:

  • Без шифрования
  • Использует WEP для шифрования. Если вам нужно подключиться к ТД с требуемым шифрованием WPA или WPA2, тогда вы доложны использовать wpa_supplicant.

Установление базового подключения

Вы можете использовать iw для подключения к ТД напрямую только и если только АП:

  • Без шифрования
  • Использует для шифрования WEP. Тем не менее, следует отметить, что если вы отключились от ТД, что может происходить довольно часто в загруженном окружении, вам нужно заново ввести команду. Если вы не хотите делать это, вы можете просто использовать wpa_supplicant, который будет автоматически пытаться подключить вас, когда вы отключились.

Если вы выбрали самостоятельную работу с рассоединениями, то вы можете использовать iw connect как показано ниже.

Для подключения к ТД, у которой отключено шифрование, где SSID это foo:

iw wlan0 connect foo

Допустим у вас две ТД с SSID foo, и вы знаете, что та, к которой вы хотите подключиться, на частоте 2432, тогда вы можете указать частоту для использования:

iw wlan0 connect foo 2432

Для подключения к ТД, которая использует WEP, вы можете использовать:

iw wlan0 connect foo keys 0:abcde d:1:0011223344

Получение статистики станции

Для получение информации о статистике станции, такой как количество байт tx/rx, последний битрейт TX (включая величину MCS), вы можете сделать:

$ iw dev wlan1 station dump
Station 12:34:56:78:9a:bc (on wlan0)
        inactive time:  304 ms
        rx bytes:       18816
        rx packets:     75
        tx bytes:       5386
        tx packets:     21
        signal:         -29 dBm
        tx bitrate:     54.0 MBit/s

Получение статистики станции в отношении пира

Если вы хотите получить статистику по конкретному пиру с которым ваша станция осуществляет связь, вы можете использовать следующее:

sudo iw dev wlan1 station get <peer-MAC-address>

В выше приведённой STA (станции) <peer-MAC-address> - это MAC вашей ТД.

Изменение скорости передачи

iw поддерживает изменение битрейта TX, как устаревшего (legacy) варианта, так и скорости HT MCS. Это делается применение маски к разрешённым битрейтам, также позволено очищать маски.

Изменение устаревших (legacy) tx bitrates

Вы можете установить для передачи использование только конкретных устаревших скоростей. К примеру:

iw wlan0 set bitrates legacy-2.4 12 18 24

Здесь как включить то, что некоторые называют «Чистый G», при котором отключена ассоциация по 802.11b:

iw wlan0 set bitrates legacy-2.4 6 12 24

Изменение скорости tx HT MCS

Поддержка установки настроек для передачи используя MCS скорости заключается в возможности указать частоту и скорость MCS. Обратите внимание, что будет ли на самом деле устройство прислушиваться просьбам зависит от драйвера устройства и сотрудничества с прошивкой. К примеру:

iw dev wlan0 set bitrates mcs-5 4
iw dev wlan0 set bitrates mcs-2.4 10

Для очистки всех скоростей tx возвращения в нормальное состояние:

iw dev wlan0 set bitrates mcs-2.4
iw dev wlan0 set bitrates mcs-5

Установка мощности TX

Вы можете установить txpower используя имя интерфейса или соответствующее phy.

iw dev <devname> set txpower <auto|fixed|limit> []
iw phy <phyname> set txpower <auto|fixed|limit> []

Сбережение энергии

Для включения сохранения энергии по умолчанию вы можете использовать:

sudo iw dev wlan0 set power_save on

Для драйверов mac80211 это означает включение Dynamic Power Save.

Чтобы узнать текущие настройки сбережения энергии используйте:

iw dev wlan0 get power_save

Добавление интерфейса с iw

Поддерживается несколько режимов. Эти режимы:

  • monitor
  • managed [также station]
  • wds
  • mesh [также mp]
  • ibss [также adhoc]

Описание этих режимов можно найти на странице документации режимов.

К примеру, добавляем интерфейс в режиме монитора:

iw phy phy0 interface add moni0 type monitor

где вы можете заменить

monitor

на какой-то другой режим и

moni0

на имя интерфейса, и нужно заменить

phy0

наe PHY имя для вашего железа (обычно phy0 будет корректным именем, если вы не подключали «по горячему» или не перезагружали какие-либо модули.) Если ваш udev настроен неправильно, новосозданный виртуальный интерфейс может быть им сразу переименован, используйте

ip link

для вывода списков всех интерфейсов. Для создания нового интерфейса в управляемом режиме вам следует использовать:

iw phy phy0 interface add wlan10 type managed

Обратите внимание, что интерфейс автоматически переводится в режим ТД при использовании hostapd.

Если вы хотите создать интерфейс в режиме монитора, а он создаётся в управляемом режиме, то сразу после создания выполните команду:

ip link set moni0 down
iw moni0 set monitor control
ip link set moni0 up

Проверить можно так:

iw dev

Изменение флагов монитора интерфейса

Вы можете настроить тип монитора интерфейса, который вы создаёте. Это очень полезно в целях отладки на конечных пользовательских системах:

iw dev wlan0 interface add fish0 type monitor flags none

Затем вы можете попросить пользователя использовать tcpdump для сессии:

tcpdump -i fish0 -s 65000 -p -U -w /tmp/fishing.dump

Возможные флаги для интерфейса в режиме наблюдения

Можно указать следующие флаги:

  • none
  • fcsfail
  • plcpfail
  • control
  • otherbss
  • cook

Удаление интерфейсов с iw

Используйте

iw dev moni0 del

Поддержка vif (множественных виртуальных интерфейсов)

О поддержке виртуальных vif смотрите отдельную страницу iw vif.

Обновление вашего регулирующего домена

Команда следующая:

iw reg set alpha2

Где “alpha2” - это код страны ISO/IEC 3166 alpha2.

Вы также теперь можете использовать wpa_supplicant для изменения вашего регулирующего домена, чтобы это сделать, просто добавьте, к примеру, запись “COUNTRY=US” в вашу конфигурацию.

Рекомендуемые статьи:

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *