Arch linux wifi connection

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 .
Читайте также:  Light switch wifi controller

Подключение к сети через 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-клиентов.

Читайте также:  Mi wifi расширенные настройки

Чтобы активировать возможности 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

Смотрите также

Источник

Оцените статью
Adblock
detector