Iwctl connect to wifi

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), убедитесь, что сетевое устройство тоже может использовать эту возможность.

Читайте также:  Поиск пароля от wifi

После этого, если ваше устройство было в списке, выполните

[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-сценарий. Из него нетрудно извлечь необходимые параметры настройки, включая сертификат и маску домена.

Читайте также:  Командная строка windows вай фай

В таблице ниже приведены значения параметров 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.

Читайте также:  Tele2 связь через wifi

Проблемы с подключением после перезагрузки

Низкая энтропия системы может вызвать проблемы с подключением, особенно после перезагрузки. Рекомендации по увеличению энтропии можно найти в статье 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.

Источник

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