- iwd (Русский)
- Установка
- Использование
- iwctl
- Подключение к сети
- Подключение к сети через WPS/WSC
- Отключение от сети
- Информация об устройстве и соединении
- Ранее посещённые сети
- Настройка сети
- WPA-PSK
- WPA Enterprise
- EAP-PWD
- EAP-PEAP
- TTLS-PAP
- Eduroam
- Прочие случаи
- Дополнительные настройки
- Отключение автоподключения к сети
- Отключение сканирования сетей
- Включение встроенной настройки сети
- Поддержка IPv6
- Статический IP-адрес в настройках сети
- Выбор DNS-менеджера
- Запрет на модификацию настроек из консоли
- Решение проблем
- Подробная отладка TLS
- Проблемы с подключением после перезагрузки
- udev не переименовывает беспроводное устройство
- Смотрите также
- Connecting to Wi-Fi with the iNet wireless daemon (iwctl)
- Good stuff? Want more?
- About Josh
iwd (Русский)
Состояние перевода: На этой странице представлен перевод статьи iwd. Дата последней синхронизации: 10 июля 2021. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.
iwd (iNet wireless daemon) — беспроводной демон для Linux, созданный компанией Intel. Разработчики постарались снизить число внешних библиотек-зависимостей и использовать по максимуму возможности ядра Linux.
iwd может работать как отдельно, так и в паре с сетевым менеджером вроде ConnMan, systemd-networkd или NetworkManager.
Установка
Использование
Пакет iwd содержит клиентскую программу iwctl , демон iwd и утилиту для мониторинга Wi-Fi сетей iwmon .
Запустите/включите службу iwd.service . Для управления службой используется команда iwctl .
iwctl
Запуск в интерактивном режиме:
В интерактивном режиме приглашение командной строки имеет вид [iwd]# .
- В интерактивном режиме работает автодополнение команд и названий устройств по нажатию клавиши Tab .
- Для выхода из интерактивного режима отправьте EOF комбинацией Ctrl+d .
- Все команды можно использовать как аргументы командной строки в неинтерактивном режиме. Пример: iwctl device wlan0 show .
Вывести список доступных команд:
Подключение к сети
Если вы не знаете название своего беспроводного интерфейса, запросите список всех Wi-Fi устройств:
[iwd]# station устройство scan
После этого можно вывести список обнаруженных сетей:
[iwd]# station устройство get-networks
Наконец, подключитесь к сети:
[iwd]# station устройство connect SSID
Совет: Пользовательский интерфейс позволяет использовать автодополнение. Например, введите station и нажмите Tab Tab — отобразится список доступных устройств; введите первую букву названия устройства и нажмите Tab для завершения. Аналогично, connect Tab Tab выведет список доступных сетей, а Tab при частично введённом названии завершит его.
Если для подключения к сети необходим пароль, то появится соответствующий запрос. В неинтерактивном режиме его можно передать в виде аргумента:
$ iwctl --passphrase пароль station устройство connect SSID
- iwd автоматически сохраняет пароли в каталоге /var/lib/iwd и использует их для автоподключения в будущем. См. #Настройка сети.
- Если SSID содержит пробелы, то его необходимо обернуть двойными кавычками.
- iwd поддерживает только PSK-пароли, от 8 до 63 ASCII-символов. В противном случае вы увидите сообщение об ошибке: PMK generation failed. Ensure Crypto Engine is properly configured .
Подключение к сети через WPS/WSC
Если ваша сеть поддерживает подключение по нажатию клавиши (Википедия:Wi-Fi Protected Setup), убедитесь, что сетевое устройство тоже может использовать эту возможность.
После этого, если ваше устройство было в списке, выполните
[iwd]# wsc устройство push-button
и нажмите кнопку на маршрутизаторе. В принципе кнопку можно нажать и до этого (но не ранее, чем за 2 минуты).
Если при таком способе подключения сеть требует подтверждения PIN, изучите вывод команды help на предмет подходящих опций для команды wsc .
Отключение от сети
[iwd]# station устройство disconnect
Информация об устройстве и соединении
Вывести подробности о Wi-Fi устройстве (например, MAC-адрес):
[iwd]# device устройство show
Вывести состояние подключения, в том числе сети, подключённые к устройству:
[iwd]# station устройство show
Ранее посещённые сети
Вывести список сетей, к которым вы подключались в прошлом:
[iwd]# known-networks SSID forget
Настройка сети
По умолчанию iwd хранит настройки сети в каталоге /var/lib/iwd . Файл настроек именуется по схеме сеть.тип , где сеть — SSID сети, а, соответственно, тип — её тип (open, wep, psk или 8021x). В файле хранится зашифрованный PreSharedKey , а также (опционально) Passphrase открытым текстом. Файл можно создать вручную, не вызывая iwctl . Кроме того, в файле можно указывать и другие настройки, подробнее см. iwd.network(5) .
WPA-PSK
Пример минимального файла настроек для подключения к сети WPA-PSK или WPA2-PSK с SSID «spaceship» и паролем «test1234»:
[Security] PreSharedKey=aafb192ce2da24d8c7805c956136f45dd612103f086034c402ed266355297295
Примечание: В качестве имени файла используется SSID сети, но только если последний состоит из цифр, букв и символов — _ . При наличии иных символов имя файла имеет вид hex-строки, начинающейся с символа = , после которого идёт зашифрованный SSID.
PreSharedKey можно вычислить одним из двух методов:
[Security] Passphrase=test1234
Ключ будет добавлен в файл при первом подключении:
[Security] Passphrase=test1234 PreSharedKey=aafb192ce2da24d8c7805c956136f45dd612103f086034c402ed266355297295
- Вычислив на основе SSID и пароля утилитами wpa_passphrase (входит в wpa_supplicant ) или wpa-pskAUR . Подробнее см. wpa_supplicant#Connecting with wpa_passphrase.
WPA Enterprise
EAP-PWD
Для подключения к производственным сетям с EAP-PWD защитой создайте файл essid.8021x в каталоге /var/lib/iwd со следующим содержимым:
/var/lib/iwd/essid.8021x
[Security] EAP-Method=PWD EAP-Identity=ваш_email_на_предприятии EAP-Password=ваш_пароль [Settings] AutoConnect=True
Если автоподключение к точке доступа не требуется, измените значение последней опции на False. После этого подключаться к сети придётся вручную командой iwctl . То же самое касается пароля — если вы не хотите хранить его в файле в открытом виде, то просто удалите соответствующую опцию и подключайтесь вручную.
EAP-PEAP
Как и в случае EAP-PWD, создайте файл essid.8021x . Предварительно выясните, какой CA-сертификат использует на вашем предприятии. Для работы MSCHAPv2 необходимо также установить ppp (см. MS-CHAPv2). Ниже дан пример файла настроек с MSCHAPv2-аутентификацией:
/var/lib/iwd/essid.8021x
[Security] EAP-Method=PEAP EAP-Identity=anonymous@realm.edu EAP-PEAP-CACert=/path/to/root.crt EAP-PEAP-ServerDomainMask=radius.realm.edu EAP-PEAP-Phase2-Method=MSCHAPV2 EAP-PEAP-Phase2-Identity=johndoe@realm.edu EAP-PEAP-Phase2-Password=hunter2 [Settings] AutoConnect=true
TTLS-PAP
Как и в случае EAP-PWD, создайте файл essid.8021x . Предварительно выясните, какой CA-сертификат использует на вашем предприятии. Ниже дан пример файла настроек с PAP-аутентификацией:
/var/lib/iwd/essid.8021x
[Security] EAP-Method=TTLS EAP-Identity=anonymous@uni-test.de EAP-TTLS-CACert=cert.pem EAP-TTLS-ServerDomainMask=*.uni-test.de EAP-TTLS-Phase2-Method=Tunneled-PAP EAP-TTLS-Phase2-Identity=user EAP-TTLS-Phase2-Password=password [Settings] AutoConnect=true
Eduroam
Eduroam имеет утилиту для настройки (configuration assistant tool, CAT), но она, к сожалению, не поддерживает iwd. Тем не менее, загружаемый установщик представляет собой обычный Python-сценарий. Из него нетрудно извлечь необходимые параметры настройки, включая сертификат и маску домена.
В таблице ниже приведены значения параметров iwd, которые используются в переменных установочного сценария CAT.
Опция iwd | Переменная сценария CAT |
---|---|
имя файла | один из Config.ssids |
EAP-Method | Config.eap_outer |
EAP-Identity | Config.anonymous_identity |
EAP-PEAP-CACert | Config.CA |
EAP-PEAP-ServerDomainMask | один из Config.servers |
EAP-PEAP-Phase2-Method | Config.eap_inner |
EAP-PEAP-Phase2-Identity | имя_пользователя@ Config.user_realm |
- Ваш провайдер может не требовать параметр EAP-Identity , в этом случае укажите для него значение anonymous или anonymous@Config.user_realm .
- Если ваш EAP-PEAP-ServerDomainMask начинается с DNS: , используйте только часть после DNS: .
Прочие случаи
В репозитории разработчиков можно найти много дополнительных примеров.
Дополнительные настройки
Для хранения большинства настроек вполне подойдёт файл /etc/iwd/main.conf . См. iwd.config(5) .
Отключение автоподключения к сети
Создайте/отредактируйте файл /var/lib/iwd/сеть.тип :
/var/lib/iwd/spaceship.psk (для примера)
[Settings] AutoConnect=false
Отключение сканирования сетей
По умолчанию, если iwd не подключён, он периодически выполняет сканирование в поиске доступных сетей. Чтобы это отключить (и сканировать вручную при необходимости), создайте/отредактируйте файл /etc/iwd/main.conf :
[Scan] DisablePeriodicScan=true
Включение встроенной настройки сети
С версии 0.19 iwd может выполнять привязку IP-адресов и настраивать маршруты с помощью встроенного DHCP-клиента или в соответствии со статической конфигурацией. Это неплохая альтернатива использованию отдельных DHCP-клиентов.
Чтобы активировать возможности iwd по настройке сети, добавьте следующие строки в /etc/iwd/main.conf :
[General] EnableNetworkConfiguration=true
Также можно задать параметр маршрутизации RoutePriorityOffset :
[Network] RoutePriorityOffset=300
Поддержка IPv6
С версии 1.10 iwd имеет поддержку IPv6, но по умолчанию она отключена. Для включения добавьте следующие строки в файл настроек:
Эта настройка необходима, если вы желаете использовать DHCPv6 или статическую IPv6-конфигурацию. Её также можно задать для отдельной сети.
Статический IP-адрес в настройках сети
Добавьте следующие строки в файл /var/lib/iwd/сеть.тип :
[IPv4] Address=192.168.1.10 Netmask=255.255.255.0 Gateway=192.168.1.1 Broadcast=192.168.1.255 DNS=192.168.1.1
Выбор DNS-менеджера
На данный момент iwd поддерживает два DNS-менеджера — systemd-resolved и resolvconf.
Настройки для systemd-resolved :
[Network] NameResolvingService=systemd
[Network] NameResolvingService=resolvconf
Запрет на модификацию настроек из консоли
По умолчанию D-Bus интерфейс iwd позволяет любым (в том числе обычным, не-root) пользователям подключаться к демону iwd через консоль и изменять настройки.
Если вы хотите, чтобы пользователи могли только читать выходную информацию, но не изменять настройки, создайте файл настроек D-Bus:
/etc/dbus-1/system.d/iwd-strict.conf
Решение проблем
Подробная отладка TLS
Это может пригодиться при решении проблем с MSCHAPv2 или TTLS. Задайте следующую переменную окружения с помощью drop-in файла:
/etc/systemd/system/iwd.service.d/tls-debug.conf
[Service] Environment=IWD_TLS_DEBUG=TRUE
После этого проверьте логи iwd, выполнив journalctl -u iwd.service с правами root.
Проблемы с подключением после перезагрузки
Низкая энтропия системы может вызвать проблемы с подключением, особенно после перезагрузки. Рекомендации по увеличению энтропии можно найти в статье Random number generation.
udev не переименовывает беспроводное устройство
С версии 1.0 iwd отключает присвоение беспроводным интерфейсам предсказуемых имён. Для этого используется link-файл systemd, который запрещает udev присваивать беспроводным интерфейсам типовые имена wlp#s# :
/usr/lib/systemd/network/80-iwd.link
[Match] Type=wlan [Link] NamePolicy=keep kernel
В результате после перезагрузки интерфейсы будут иметь имена wlan# . Это позволяет избежать ситуации гонок между iwd и udev при переименовании интерфейсов.
Если это привело к каким-то нежелательным последствиям, link-файл можно замаскировать с помощью символической ссылки:
# ln -s /dev/null /etc/systemd/network/80-iwd.link
Смотрите также
Connecting to Wi-Fi with the iNet wireless daemon (iwctl)
Part of the Arch Linux appeal is how minimal it is. With this minimalism comes adopting command-line tools to do the basic things we take for granted, like connecting to Wi-Fi.
While this isn’t necessarily the case if you install a desktop environment like GNOME or KDE, but it definitely comes into play during the installation of Arch Linux, which is as stripped down as it gets.
Since I don’t reinstall Arch very often, maybe once a year or so less, I tend to forgot how to connect to the Internet during the initial setup. Previously this was done with netctl by way of the wifi-menu command. It was straight forward (execute it and run through the dialog), but doesn’t seem to be included in the base image any longer.
What is included is the iNet wireless daemon ( iwd ) which gives us the iwctl command. Upon running iwctl you are dropped into the iwd interactive prompt:
From the prompt you will need figure out your device name, and assuming you know the SSID of your wireless network, go ahead and connect like so:
[iwd]# device list # You should see something like this: # # Devices # ------------------------------------------------------------- # Name Address Powered Adapter Mode # ------------------------------------------------------------- # wlan0 . on . . [iwd]# station YOURDEVICE connect YOURSSID
For a secured wireless network, you will be prompted for it and you’ll be off to the races!
Of course, if you don’t know the SSID for the network you’re connecting to, you can scan for available networks:
[iwd]# station YOURDEVICE scan
And when you’re all done and would like to disconnect, simply run:
[iwd]# station YOURDEVICE disconnect
Good stuff? Want more?
100% Fresh, Grade A Content, Never Spam.
About Josh
Husband. Father. Pug dad. Musician. Founder of Holiday API, Head of Engineering and Emoji Specialist at Mailshake, and author of the best damn Lorem Ipsum Library for PHP.