Это руководство шаг за шагом продемонстрирует, как подключиться к WiFi сети в командной строке Linux.
Будем использовать:
- wpa_supplicant
- iw
- ip
- ping
iw — основной инструмент для сетевых задач, связанных с WiFi, таких как нахождение имени устройства WiFi, поиска точек доступа.
wpa_supplicant — беспроводной инструмент для подключения к сети WPA / WPA2.
ip — используется для включения / выключения устройства, а также поиска информации об интерфейсе в сети.
Шаги для подключения к WPA/WPA2 сети такие:
- Узнайте имя вашего WiFi устройства.
12345$ /sbin/iw devphy#0Interface wlan0ifindex 3type managed
Выше видно, что система имеет одну физическую WiFi карту, обозначенную как phy0. Имя устройства wlan0. Тип определяет режим работы беспроводного устройства. managed означает устройство беспроводной станции или клиент, который подключается к точке доступа. - Убедитесь, что устройство активно.
123$ ip link show wlan03: wlan0: (BROADCAST,MULTICAST) mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 1000link/ether 74:e5:43:a1:ce:65 brd ff:ff:ff:ff:ff:ff
Должно быть ‘UP‘ внутри скобок в первой строке вывода.В приведенном выше примере, wlan0 не активен. Выполните следующую команду, чтобы активировать его
12$ sudo ip link set wlan0 up[sudo] password for peter:Если вы запустите команду show снова, вы убедитесь, что wlan0 теперь UP.
123$ ip link show wlan03: wlan0: (NO-CARRIER,BROADCAST,MULTICAST,UP) mtu 1500 qdisc mq state DOWN mode DEFAULT qlen 1000link/ether 74:e5:43:a1:ce:65 brd ff:ff:ff:ff:ff:ff - Проверяем статус.
12$ /sbin/iw wlan0 linkNot connected.
Выше вывод показывает, что вы не подключены к сети.
- Сканируем сеть на предмет обнаружения доступных WiFi точек.
1234567891011$ sudo /sbin/iw wlan0 scanBSS 00:14:d1:9c:1f:c8 (on wlan0)... sniped ...freq: 2412SSID: zeka_wifiRSN: * Version: 1* Group cipher: CCMP* Pairwise ciphers: CCMP* Authentication suites: PSK* Capabilities: (0x0000)... sniped ...
В выводе две важные части: SSID и протокол безопасности (WPA / WPA2 vc WEP). SSID из приведенного выше примера это zeka_wifi. Протокол безопасности РСН, который также называют WPA2. Протокол безопасности важен, потому что он определяет, какой инструмент вы используете для подключения к сети.
- Подключаемся к WPA/WPA2 WiFi сети. Для этого выполняем два действия. Сначала вы генерируете конфигурационный файл для wpa_supplicant, который содержит pre-shared key («пароль») для WiFi сети.
1234$ sudo -s[sudo] password for peter:$ wpa_passphrase gorilla >> /etc/wpa_supplicant.conf...type in the passphrase and hit enter...
wpa_passphrase принимает SSID единственным аргументом. Вы должны ввести пароль к WiFi сети zeka_wifi после запуска команды. Используя эту информацию, wpa_passphrase запишет конфигурацию в /etc/wpa_supplicant.conf.
1234567$ cat /etc/wpa_supplicant.conf# reading passphrase from stdinnetwork={ssid="zeka_wifi"#psk="testttest"psk=4dfe1c985520d26a13e932bffacb1d4580461dd854ed79ad1a88ec221a802061}Далее выполняем wpa_supplicant с новым конфигурационным файлом.
1$ sudo wpa_supplicant -B -D wext -i wlan0 -c /etc/wpa_supplicant.conf-B — запустить wpa_supplicant в фоновом режиме
-D — определяет беспроводной драйвер. wext это универсальный драйвер.
-c — путь к файлу конфигурации.
Выполните iw, чтобы проверить, что вы действительно подключены к SSID.
123456789101112$ /sbin/iw wlan0 linkConnected to 00:14:d1:9c:1f:c8 (on wlan0)SSID: zeka_wififreq: 2412RX: 63825 bytes (471 packets)TX: 1344 bytes (12 packets)signal: -27 dBmtx bitrate: 6.5 MBit/s MCS 0bss flags: short-slot-timedtim period: 0beacon int: 100 - Получить IP-адрес по DHCP
1$ sudo dhclient wlan0
Используйте команду ip для проверки. Здесь ip 192.168.1.113.
123456$ ip addr show wlan03: wlan0: <broadcast,multicast,up,lower_up> mtu 1500 qdisc mq state UP qlen 1000link/ether 74:e5:43:a1:ce:65 brd ff:ff:ff:ff:ff:ffinet 192.168.1.113/24 brd 192.168.1.255 scope global wlan0inet6 fe80::76e5:43ff:fea1:ce65/64 scope linkvalid_lft forever preferred_lft forever - Добавьте правило маршрутизация по умолчанию. Это последний шаг конфигурации.
12$ ip route show192.168.1.0/24 dev wlan0 proto kernel scope link src 192.168.1.113
Приведенная выше таблица маршрутизации содержит только одно правило, которое перенаправляет весь трафик, предназначенный для локальной подсети (192.168.1.x) к интерфейсу wlan0. Вы можете добавить правило маршрутизации по умолчанию, чтобы пройти весь трафик через wlan0.
1234$ sudo ip route add default via 192.168.1.254 dev wlan0$ ip route showdefault via 192.168.1.254 dev wlan0192.168.1.0/24 dev wlan0 proto kernel scope link src 192.168.1.113 - ping-аем внешний IP-адрес, чтобы проверить связь
123456789$ ping 8.8.8.8PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.64 bytes from 8.8.8.8: icmp_req=1 ttl=48 time=135 ms64 bytes from 8.8.8.8: icmp_req=2 ttl=48 time=135 ms64 bytes from 8.8.8.8: icmp_req=3 ttl=48 time=134 ms^C--- 8.8.8.8 ping statistics ---3 packets transmitted, 3 received, 0% packet loss, time 2000msrtt min/avg/max/mdev = 134.575/134.972/135.241/0.414 ms
Выше серия шагов с очень подробным объяснением, как подключить WiFi сеть WPA / WPA2. Некоторые шаги могут быть пропущены, когда вы подключаетесь к той же точке доступа во второй раз. Например, вы уже знаете, имя Wi-Fi устройства, и файл конфигурации уже установлен. Процесс должен быть адаптирован в соответствии с ситуацией.