В данном руководстве мы рассмотрим, как осуществить подключение к Wi-Fi сети через командную строку на сервере и настольной версии Ubuntu 16.04, применяя wpa_supplicant.
В современных домашних беспроводных сетях безопасность осуществляется с использованием WPA-PSK (предварительно общий ключ), в отличие от WPA-Enterprise, предназначенного для корпоративного использования. WPA-PSK также называется WPA-Personal. wpa_supplicant представляет собой реализацию компонента WPA supplicant. Суппликант в беспроводной локальной сети — это клиентское программное обеспечение, установленное на устройстве пользователя, которое должно пройти аутентификацию для доступа к сети.
Обратите внимание, что перед подключением к Wi-Fi необходимо установить программное обеспечение wpa_supplicant. Поэтому сначала следует подключиться к проводной сети Ethernet, и это нужно сделать всего один раз. Если этот способ вам не подходит, прошу прощения. Возможно, в будущем Ubuntu изменится.

Моя беспроводная карта имеет программное ограничение. Для её разблокировки введите следующую команду:
rfkill unblock wifi
Если вы работаете с десктопной версией Ubuntu, обязательно остановите Network Manager с помощью этой команды, иначе могут возникнуть проблемы с подключением при использовании wpa_supplicant.
sudo systemctl stop NetworkManager
Также требуется деактивировать автоматический запуск NetworkManager при загрузке, введя следующую команду.
sudo systemctl disable NetworkManager
Содержание статьи
- 1 Определите название вашего беспроводного интерфейса и имя сети Wi-Fi.
- 2 Подключение к Wi-Fi сети с помощью wpa_supplicant.
- 3 Подключение к невидимой Wi-Fi сети.
- 4 Автоматическое соединение при старте системы.
- 5 Разблокировка беспроводного интернета на Raspberry Pi
- 6 Несколько беспроводных сетей.
- 7 Заключение
Определите название вашего беспроводного интерфейса и имя сети Wi-Fi.
Используйте команду iwconfig, чтобы определить название вашего беспроводного интерфейса.
iwconfig
wlp3s0 — это название моего беспроводного интерфейса, хотя более известным является wlan0. Также заметно, что в данный момент он не подключён к ни одной сети.

Если ваш беспроводной интерфейс не виден, его, возможно, потребуется включить с помощью следующей команды.
sudo ifconfig wlp3s0 up
После этого выполните сканирование ближайших беспроводных сетей с помощью следующей команды, чтобы обнаружить название вашей сети. Не забудьте заменить wlp3s0 на имя вашего сетевого интерфейса. ESSID обозначает имя сети.
sudo iwlist wlp3s0 scan | grep ESSID

Подключение к Wi-Fi сети с помощью wpa_supplicant.
Теперь необходимо установить wpa_supplicant на Ubuntu 16.04.
sudo apt install wpasupplicant
Следует создать файл с названием wpa_supplicant.conf с помощью утилиты wpa_passphrase. Этот файл конфигурации содержит информацию о всех сетях, к которым пользователь планирует подключить свой компьютер. Для его создания выполните следующую команду, заменив ESSID и пароль от Wi-Fi на свои данные.
wpa_passphrase your-ESSID your-passphrase | sudo tee /etc/wpa_supplicant.conf

Учтите, что в приведённом выше скриншоте я об encил свой ESSID в двойные кавычки, так как он содержит пробелы.
Результат будет отправлен в tee, который сохранит его в файле /etc/wpa_supplicant.conf.После этого примените следующую команду, чтобы подключить вашу беспроводную карту к сети.
sudo wpa_supplicant - c /etc/wpa_supplicant.conf - i wlp3s0
По умолчанию wpa_supplicant запускается в интерактивном режиме. Когда соединение будет установлено, откройте новое окно терминала и введите команду.
iwconfig
Теперь вы заметите, что беспроводной интерфейс связан с точкой доступа.

Чтобы прервать текущий процесс wpa_supplicant и запустить его в фоновом режиме, нажмите CTRL+C и добавьте опцию — B.
sudo wpa_supplicant -B-c /etc/wpa_supplicant.conf - iwlp3s0
Несмотря на то что мы аутентифицированы и присоединены к Wi-Fi сети, IP-адрес пока не назначен. Для получения частного IP-адреса от DHCP-сервера выполните следующую команду:
sudo dhclient wlp3s0
Теперь ваш беспроводной интерфейс получил приватный IP-адрес, который можно отобразить с помощью:
ifconfig wlp3s0

Теперь у вас есть возможность подключиться к сети. Чтобы освободить личный IP-адрес, выполните следующую команду.
sudo dhclient wlp3s0 - r
Подключение к невидимой Wi-Fi сети.
Если ваша беспроводная сеть не отображает SSID, добавьте следующую строку в файл /etc/wpa_supplicant.conf.
scan_ssid=1
network=
Автоматическое соединение при старте системы.
Для автоматического подключения к Wi-Fi при загрузке необходимо внести изменения в файл wpa_supplicant.service. Рекомендуется скопировать его из каталога /lib/systemd/system/ в /etc/systemd/system/, а затем произвести редактирование, чтобы новая версия wpa_supplicant не затерла изменения.
Чтобы использовать mDNS, нужно установить avahi-daemon — это открытая реализация mDNS/DNS-SD.
sudo apt install avahi-daemon
Активируйте услугу.
sudo systemctl start avahi-daemon
Активируйте автоматический запуск при старте системы.
sudo systemctl enable avahi-daemon
Avahi-daemon работает на порту UDP 5353, поэтому необходимо разрешить этот порт в брандмауэре. Если вы используете UFW, выполните следующую команду.
sudo ufw allow 5353/udp
Затем задайте уникальное имя хоста для вашего компьютера с Ubuntu, используя команду hostnamectl. Замените «ubuntubox» на желаемое имя хоста, убедившись, что оно не используется другими устройствами в вашей локальной сети.
sudo hostnamectl set-hostname ubuntubox
Теперь необходимо перезапустить avahi-daemon.
sudo systemctl restart avahi-daemon
Если вы выполните проверку статуса с использованием
systemctl status avahi-daemon
Вы сможете увидеть mDNS-имя устройства, оканчивающееся на. local.

На компьютере клиента также требуется установить программу mDNS/DNS-SD.
- Пользователям Linux рекомендуется установить avahi-daemon.
- Для пользователей Windows требуется активировать службу Bonjour, установив Bonjour Print Service или iTunes.
- На macOS Bonjour установлен по умолчанию.
Вы теперь легко можете использовать сервисы, просто вводя имя хоста ubuntubox. local, без необходимости каждый раз проверять и вводить IP-адрес.
Разблокировка беспроводного интернета на Raspberry Pi
Операционная система Ubuntu ARM для Raspberry Pi по умолчанию отключает беспроводной интерфейс. Чтобы его активировать, выполните следующую команду:
sudo rfkill unblock wifi
Для разблокировки его во время загрузки необходимо внести изменения в системный юнит wpa_supplicant.service.
sudo nano /etc/systemd/system/wpa_supplicant.service
Измените значение параметра ExecStart на следующее.
ExecStart=/bin/bash - c '/usr/sbin/rfkill unblock wifi && /sbin/wpa_supplicant - u - s - c /etc/wpa_supplicant.conf - i wlan0'
Сохраните файл и закройте его.
Если это не даст результата, вы можете скрыть юнит systemd-rfkill. socket.
sudo systemctl mask systemd-rfkill. socket
Создайте файл rc. local.
sudo nano /etc/rc. local
Включите указанные строки в данный файл.
#!/bin/bash /usr/sbin/rfkill unblock wifi exit 0
Сделайте его выполняемым.
sudo chmod +x /etc/rc. local
В моем тесте команда
rfkill unblock
, используемая в системном юните, не сработала, но успешно функционировала в файле
/etc/rc. local
. Это может быть обусловлено временными настройками. Команду
rfkill unblock
следует выполнять после команды
wpa_supplicant
.
Имейте в виду, что если у вас есть установленная среда рабочего стола, возможно, активен сетевой диспетчер, который может препятствовать подключению. Рекомендуется его отключить. Например, я использую легковесную среду LXQT на Raspberry Pi и мне требуется деактивировать службу connman.service.
sudo systemctl disable connman.service
Советуем для ознакомления
- Использование Systemd в Linux: управление службами, уровнями загрузки и логами.
Несколько беспроводных сетей.
Конфигурационный файл /etc/wpa_supplicant.conf способен содержать информацию о нескольких сетях Wi-Fi. wpa_supplicant будет автоматически определять наиболее подходящую сеть, опираясь на последовательность блоков сетей в конфигурации, уровень безопасности и мощность сигнала.
Для подключения второй сети Wi-Fi выполните следующие шаги.
wpa_passphrase your-ESSID your-wifi-passphrase | sudo tee - a /etc/wpa_supplicant.conf
Не забудьте применить параметр — a к команде tee, чтобы внести новую сеть Wi-Fi в файл, сохраняя при этом все существующие данные.
Заключение
Надеюсь, данный урок оказал вам помощь в настройке Wi-Fi на сервере с Ubuntu 16.04 через командную строку. Если вам понравилась эта статья, не забудьте подписаться на нашу бесплатную рассылку новостей. Вы также можете следить за нами в Google+, Twitter или поставить лайк нашей странице на Facebook.

