Подключение к WiFi без NetworkManager'a
Добавлено: 19 июн 2017, 20:49
Итак, выпилив сразу после установки системы все следы Networkmanager и networking.service жил спокойно и счастливо, пользуясь systemd-networkd. Ровно до того момнта как потребовалось зацепиться к беспроводной сетке
решение, разумеется нашлось, не прибегая к озвученным выше удаленным компонентам.
1. Определим необходимый нам интерфейс
У меня он оказался 
2. Активируем его c
3. Сканим доступные вокруг точки доступа (текстат там много, я сразу отгрепал по ESSID)
Меня тут интересует
4. Далее - подключаемся к выбранной точке
тут стоит оговориться, что точка используемая в этом примере - открытая, поэтому синтаксис для WPA2 будет чуть другой.
5. На этом почти все, осталось поднять адресацию. В моем случае, при испльзовании systemd-networkd - надо задать описание интерфейсу в
Завожу конфиг /etc/systemd/network/25-wireless.network с следующим содержимым
Тут все прозрачно, имя интерфейса и DHCP-адресация (можно завести и статику при желании)
6. Даем рестарт сетевой службе
7. Проверяем
Вуаля, вроде как все на месте
Но данная заметка была расчитана не на еще одну красноглазую инструкцию
(пусть ничего сложного тут и нет) - а на рассмотрение возможности алгоритмизации описанной выше последовательности для создания мышетыкательной оснастки без помощи NM.
Для начала думаю можно использовать zenity чтоб

решение, разумеется нашлось, не прибегая к озвученным выше удаленным компонентам.
1. Определим необходимый нам интерфейс
Код: Выделить всё
chocobo@desktop ~ $ ip l
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
link/ether 78:24:af:89:f7:cc brd ff:ff:ff:ff:ff:ff
3: wlx60e3271846e9: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DEFAULT group default qlen 1000
link/ether 60:e3:27:18:46:e9 brd ff:ff:ff:ff:ff:ff
wlx60e3271846e9
- какой чудесный нейминг 
2. Активируем его c
sudo ifconfig wlx60e3271846e9 up
3. Сканим доступные вокруг точки доступа (текстат там много, я сразу отгрепал по ESSID)
Код: Выделить всё
chocobo@desktop ~ $ sudo iwlist wlx60e3271846e9 scan | grep ESSID
ESSID:"Andreiko-smile"
ESSID:"homenet_"
ESSID:"DIR-300NRAlena"
ESSID:"Keenetic-2603"
ESSID:"WiFi-DOM.ru-4226"
ESSID:"WiFi-DOM.ru-7517"
ESSID:"DomRU-242"
ESSID:"win32"
homenet_
4. Далее - подключаемся к выбранной точке
Код: Выделить всё
sudo iwconfig wlx60e3271846e9 essid homenet_
5. На этом почти все, осталось поднять адресацию. В моем случае, при испльзовании systemd-networkd - надо задать описание интерфейсу в
/etc/systemd/network/
Завожу конфиг /etc/systemd/network/25-wireless.network с следующим содержимым
Код: Выделить всё
[Match]
Name=wlx60e3271846e9
[Network]
DHCP=ipv4
6. Даем рестарт сетевой службе
Код: Выделить всё
sudo systemctl restart systemd-networkd
Код: Выделить всё
chocobo@desktop ~ $ ip a
......
......
.....
3: wlx60e3271846e9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 60:e3:27:18:46:e9 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.104/24 brd 192.168.0.255 scope global dynamic wlx60e3271846e9
valid_lft 7138sec preferred_lft 7138sec
inet6 fe80::62e3:27ff:fe18:46e9/64 scope link
valid_lft forever preferred_lft forever
Код: Выделить всё
chocobo@desktop ~ $ ping -I wlx60e3271846e9 linuxmint.com.ru
PING linuxmint.com.ru (82.146.54.131) from 192.168.0.104 wlx60e3271846e9: 56(84) bytes of data.
64 bytes from linuxmint.com.ru (82.146.54.131): icmp_seq=1 ttl=57 time=52.2 ms
64 bytes from linuxmint.com.ru (82.146.54.131): icmp_seq=2 ttl=57 time=44.9 ms
64 bytes from linuxmint.com.ru (82.146.54.131): icmp_seq=3 ttl=57 time=110 ms
64 bytes from linuxmint.com.ru (82.146.54.131): icmp_seq=4 ttl=57 time=14.9 ms
64 bytes from linuxmint.com.ru (82.146.54.131): icmp_seq=5 ttl=57 time=48.8 ms
64 bytes from linuxmint.com.ru (82.146.54.131): icmp_seq=6 ttl=57 time=237 ms
^C
--- linuxmint.com.ru ping statistics ---
6 packets transmitted, 6 received, 0% packet loss, time 5007ms
rtt min/avg/max/mdev = 14.934/84.802/237.000/73.774 ms

Но данная заметка была расчитана не на еще одну красноглазую инструкцию

Для начала думаю можно использовать zenity чтоб
- спарсить и выдать список с выбором интефейса
- просканить и вывести для выбора доступные точки
- у выбранной проверить защиту, и при необходимости запросить пароль.
- спросить адресацию (по умолчанию наверное в 95% случаев будет DHCP, но тем не менее)
- сгенерить на основе этих данных команды подключения и конфиги