Настройка WiFi на Arch Linux с помощью netctl
.
В примере ниже выполняется настройка подключения к WiFi сети NetName_2.4Ghz , используя iw
и netctl
профайл на Arch Linux (не специфично для этой ОС, аналогично выполняется настройка на любой Linux-системе).
Помимо ручной настройки способо, описанным ниже — можно использовать wifi-menu
, который сгенерирует файл профиля в /etc/netctl
.
Устанавливаем iw
:
Находим интерфейсы, используя iw
(или обычным ifconfig
):
iw dev
phy#0
Unnamed/non-netdev interface
wdev 0x3
addr 10:f0:05:64:0a:74
type P2P-device
txpower 0.00 dBm
Interface wlp2s0
ifindex 3
wdev 0x1
addr 10:f0:05:64:0a:73
ssid NetName_2.4Ghz
type managed
channel 11 (2462 MHz), width: 20 MHz, center1: 2462 MHz
txpower 22.00 dBm
Находим список WiFi сетей:
sudo iw dev wlp2s0 scan | grep SSID
SSID: VB_Dev_Test_2.4Ghz
SSID: NetName_2.4Ghz
...
Копируем netctl
профайл:
sudo cp /etc/netctl/examples/wireless-wpa /etc/netctl/setevoy-gen
Создаём обфусцированный пароль (pre-shared-key ):
wpa_passphrase NetName_2.4Ghz
reading passphrase from stdin
pass
network={
ssid="NetName_2.4Ghz"
psk="pass"
psk=d09***9e6
}
Редактируем /etc/netctl/setevoy-gen
, в Key задаём ключ:
Description='A simple WPA encrypted wireless connection'
Interface=wlp2s0
Connection=wireless
Security=wpa
IP=dhcp
ESSID='NetName_2.4Ghz'
Key='d09***9e6'
Получаем список профилей:
Запускаем созданный профиль (если имеется активное подключение к сети — сначала выключаем его с помощью netctl stop profile-name
):
netctl start setevoy-gen
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ====
Authentication is required to start 'netctl@setevoy\x2dgen.service'.
Authenticating as: setevoy
Password:
==== AUTHENTICATION COMPLETE ====
Попингуем:
ping -c 1 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=48 time=36.2 ms
--- 8.8.8.8 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 36.274/36.274/36.274/0.000 ms
Добавляем в автозапуск при старте системы:
sudo netctl enable setevoy-gen
ln -s '/etc/systemd/system/netctl@setevoy\x2dgen.service' '/etc/systemd/system/multi-user.target.wants/netctl@setevoy\x2dgen.service'
Если при старте профиля в логах выдаётся ошибка авторизации:
systemctl status "netctl@setevoy\\x2dhome.service"
● netctl@setevoy\x2dhome.service - Networking for netctl profile setevoy-home
Loaded: loaded (/usr/lib/systemd/system/netctl@.service; static; vendor preset: disabled)
Active: failed (Result: exit-code) since Sat 2018-10-06 09:50:47 EEST; 6min ago
Docs: man:netctl.profile(5)
Main PID: 25465 (code=exited, status=1/FAILURE)
Oct 06 09:50:31 setevoy-arch-home systemd[1]: Starting A simple WPA encrypted wireless connection...
Oct 06 09:50:31 setevoy-arch-home network[25465]: Starting network profile 'setevoy-home'...
Oct 06 09:50:46 setevoy-arch-home network[25465]: WPA association/authentication failed for interface 'wlp13s0'
Oct 06 09:50:47 setevoy-arch-home network[25465]: Failed to bring the network up for profile 'setevoy-home'
Oct 06 09:50:47 setevoy-arch-home systemd[1]: netctl@setevoy\x2dhome.service: Main process exited, code=exited, status=1/FAILURE
Oct 06 09:50:47 setevoy-arch-home systemd[1]: netctl@setevoy\x2dhome.service: Failed with result 'exit-code'.
Oct 06 09:50:47 setevoy-arch-home systemd[1]: Failed to start A simple WPA encrypted wireless connection.
То можно поменять значение Key=
в файле профиля на пароль в открытом виде.
WiFi menu
Требует пакета dialog
:
Вместо того, что бы создавать файл профиля и редактировать его вручную — можно использовать wifi-menu
:
Он сгенерирует файл с именем профиля в виде имя_интерфейса-имя_сети в /etc/ntectl
:
ls -l /etc/netctl/
total 24
drwxr-xr-x 2 root root 4096 Oct 3 18:39 examples
drwxr-xr-x 2 root root 4096 Aug 7 21:11 hooks
drwxr-xr-x 2 root root 4096 Aug 7 21:11 interfaces
-rw-r--r-- 1 root root 439 Oct 6 09:48 setevoy-home
-rw------- 1 root root 147 Oct 5 19:00 wlp13s0-HOME397
-rw------- 1 root root 145 Oct 3 18:56 wlp13s0-setevoy
После чего останется только добавить его в автозагрузку через sudo netctl enable profile_name
.
Готово.