Подключение к Wi-Fi через терминал в Ubuntu может показаться сложной задачей для новичков, но на практике это один из самых надёжных способов управления сетевыми соединениями. Графический интерфейс NetworkManager иногда даёт сбои, особенно при работе с нестандартными конфигурациями роутеров или после обновлений системы. Терминал же позволяет гибко настраивать подключение, диагностировать проблемы и даже автоматизировать процесс через скрипты.
В этой статье вы найдёте пошаговую инструкцию по подключению к Wi-Fi через командную строку, включая сканирование доступных сетей, сохранение пароля, управление профилями и устранение типичных ошибок. Мы рассмотрим как стандартные инструменты вроде nmcli и nmtui, так и низкоуровневые утилиты типа wpa_supplicant для опытных пользователей. Если вы когда-либо сталкивались с проблемами подключения после сна или перезагрузки, или просто хотите понять, как работает сеть в Linux на глубоком уровне — этот гайд для вас.
Прежде чем приступить, убедитесь, что ваш Wi-Fi-адаптер распознаётся системой. Для этого введите команду lspci | grep -i network (для PCI-устройств) или lsusb (для USB-адаптеров). Если адаптер не определяется, может потребоваться установка драйверов — эту тему мы также кратко затронем.
1. Проверка сетевого адаптера и драйверов
Перед подключением к Wi-Fi необходимо убедиться, что ваш сетевой адаптер корректно определяется системой и для него установлены драйверы. В Ubuntu большинство современных адаптеров поддерживаются"из коробки", но некоторые модели (особенно от Broadcom или Realtek) могут требовать дополнительных действий.
Чтобы проверить наличие адаптера, выполните:
lspci -knn | grep -iA3 net
Для USB-адаптеров используйте:
lsusb
Если в выводе вы видите строку с Network controller, но рядом указано Kernel driver in use: none, это означает, что драйвер не загружен. В таком случае:
- 🔧 Установите проприетарные драйверы через
Дополнительные драйверы(software-properties-gtk) или вручную: - 📦 Для Broadcom:
sudo apt install firmware-b43-installer - 🔄 Для Realtek (например, RTL8821CE): клонируйте репозиторий с GitHub и скомпилируйте драйвер.
⚠️ Внимание: Если после установки драйверов адаптер перестал определяться, попробуйте откатить изменения или использовать более старую версию ядра. Некоторые драйверы конфликтуют с последними обновлениями Ubuntu.
После установки драйверов перезагрузите систему или вручную загрузите модуль ядра:
sudo modprobe -r {название_модуля} && sudo modprobe {название_модуля}
2. Сканирование доступных Wi-Fi сетей
Чтобы увидеть список доступных сетей, можно использовать несколько инструментов. Самый простой способ — утилита nmcli (часть NetworkManager), которая предоставляет удобный интерфейс для управления соединениями.
Выполните команду для сканирования:
nmcli device wifi list
Если NetworkManager отключён, активируйте его:
sudo systemctl start NetworkManager
sudo systemctl enable NetworkManager
Альтернативный метод — использование iwlist (устаревший, но работающий во всех дистрибутивах):
sudo iwlist wlan0 scan | grep ESSID
Здесь wlan0 — имя вашего Wi-Fi интерфейса. Узнать его можно командой ip a или iwconfig.
| Команда | Описание | Пример вывода |
|---|---|---|
nmcli d wifi |
Показывает статус Wi-Fi (вкл/выкл) | enabled или disabled |
nmcli d wifi rescan |
Принудительное повторное сканирование | Successfully requested a Wi-Fi scan. |
iw dev wlan0 scan | grep"SSID:" |
Сканирование с выводом только названий сетей | SSID: MyWiFi_2.4G |
⚠️ Внимание: Если командаnmcli device wifi listвозвращает пустой список, проверьте, не заблокирован ли Wi-Fi аппаратным переключателем (на некоторых ноутбуках) или софтверно черезrfkill. Разблокировать можно командойsudo rfkill unblock wifi.
3. Подключение к Wi-Fi через nmcli
Утилита nmcli — самый простой способ подключиться к Wi-Fi из терминала. Она позволяет сохранять пароли, управлять профилями и даже настраивать статические IP. Рассмотрим базовый сценарий подключения к сети с паролем.
Шаг 1. Подключитесь к сети (пароль будет сохранён в NetworkManager):
nmcli device wifi connect"ИМЯ_СЕТИ" password"ПАРОЛЬ"
Шаг 2. Если сеть скрытая (не транслирует SSID), добавьте флаг hidden yes:
nmcli device wifi connect"ИМЯ_СЕТИ" password"ПАРОЛЬ" hidden yes
Шаг 3. Чтобы подключиться к сети без сохранения пароля (одноразовое подключение), используйте:
nmcli connection add type wifi con-name"TempWiFi" ifname wlan0 ssid"ИМЯ_СЕТИ"
nmcli connection modify TempWiFi wifi-sec.key-mgmt wpa-psk
nmcli connection modify TempWiFi wifi-sec.psk"ПАРОЛЬ"
nmcli connection up TempWiFi
Для управления существующими подключениями:
- 📋 Посмотреть все сохранённые сети:
nmcli connection show - 🔄 Переподключиться к сети:
nmcli connection up"ИМЯ_ПОДКЛЮЧЕНИЯ" - 🗑️ Удалить сохранённую сеть:
nmcli connection delete"ИМЯ_ПОДКЛЮЧЕНИЯ"
Пинг до роутера (ping 192.168.1.1)
Пинг до Google DNS (ping 8.8.8.8)
Проверка DNS (nslookup ubuntu.com)
Проверка скорости (speedtest-cli)
-->
4. Подключение через wpa_supplicant (для опытных пользователей)
Если NetworkManager недоступен или вы предпочитаете ручную настройку, можно использовать wpa_supplicant — низкоуровневую утилиту для управления Wi-Fi подключениями. Этот метод требует прав суперпользователя и знания основ работы с конфигурационными файлами.
Шаг 1. Отредактируйте файл конфигурации:
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
Добавьте блок для вашей сети (пример для WPA2-PSK):
network={
ssid="ИМЯ_СЕТИ"
psk="ПАРОЛЬ"
key_mgmt=WPA-PSK
}
Шаг 2. Подключитесь к сети:
sudo wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf
sudo dhclient wlan0
Здесь dhclient запрашивает IP-адрес у роутера. Если нужно указать статический IP, используйте ifconfig или ip addr.
Шаг 3. Для автоматического подключения при загрузке добавьте wpa_supplicant в автозагрузку:
sudo systemctl enable wpa_supplicant
⚠️ Внимание: Файлwpa_supplicant.confсодержит пароли в открытом виде. Убедитесь, что права доступа к файлу ограничены:sudo chmod 600 /etc/wpa_supplicant/wpa_supplicant.conf. В противном случае любой пользователь системы сможет увидеть ваши сетевые пароли.
Что делать, если wpa_supplicant не подключается?
Если после запуска wpa_supplicant сеть не подключается, проверьте:
1. Правильность указанного SSID и пароля (регистр важен!).
2. Поддержку типа шифрования вашим адаптером (например, некоторые старые адаптеры не работают с WPA3).
3. Логи ошибок: journalctl -u wpa_supplicant -f.
4. Возможные помехи на канале (попробуйте подключиться к сети на другом канале 2.4/5 ГГц).
5. Устранение типичных ошибок
Даже при правильном вводе команд подключение к Wi-Fi через терминал может завершаться ошибками. Рассмотрим наиболее распространённые проблемы и их решения.
Ошибка:"Device not managed" или"unmanaged"
Это означает, что NetworkManager не управляет вашим Wi-Fi интерфейсом. Решение:
sudo nmcli device set wlan0 managed yes
sudo systemctl restart NetworkManager
Ошибка:"Activation of network connection failed"
Чаще всего вызвана неверным паролем или несовместимым типом шифрования. Проверьте:
- 🔐 Правильность пароля (вводите его в кавычках, если он содержит спецсимволы).
- 📡 Тип безопасности сети (например,
WPA2-PSKvsWPA3). - 🔄 Перезагрузку роутера (иногда помогает сбросить временные блокировки).
Ошибка:"No secrets were provided"
Это означает, что wpa_supplicant или nmcli не получили пароль. Убедитесь, что:
- 🔑 Пароль передан в правильном формате (например, для
nmcliиспользуйте флагpassword). - 📄 Конфигурационный файл
wpa_supplicant.confотредактирован без синтаксических ошибок.
| Ошибка | Возможная причина | Решение |
|---|---|---|
Connection activated, but no IP address |
DHCP-сервер не выдаёт IP | Проверьте настройки роутера или назначьте IP вручную |
SSID not found |
Сеть скрытая или вне зоны действия | Добавьте флаг hidden yes или проверьте антенну |
Authentication timeout |
Несовместимость типов шифрования | Попробуйте изменить тип безопасности на роутере |
6. Автоматизация подключения через скрипты
Если вам часто приходится подключаться к одной и той же сети, можно автоматизировать процесс с помощью bash-скрипта. Это особенно удобно для серверов или систем без графического интерфейса.
Пример скрипта для подключения через nmcli:
#!/bin/bash
SSID="MyWiFi"
PASSWORD="mysecurepassword"
Проверяем, подключены ли мы уже
if nmcli connection show --active | grep -q"$SSID"; then
echo"Уже подключены к $SSID"
exit 0
fi
Подключаемся
nmcli device wifi connect"$SSID" password"$PASSWORD"
Проверяем результат
if ip a show wlan0 | grep -q"inet"; then
echo"Успешно подключено к $SSID"
echo"IP-адрес: $(ip a show wlan0 | grep"inet" | awk'{print $2}')"
else
echo"Ошибка подключения"
exit 1
fi
Сохраните скрипт в файл (например, connect_wifi.sh), сделайте его исполняемым и запускайте при необходимости:
chmod +x connect_wifi.sh
./connect_wifi.sh
Для автоматического запуска при загрузке добавьте скрипт в crontab:
crontab -e
Добавьте строку:
@reboot /путь/к/скрипту/connect_wifi.sh
Важно: Хранение пароля в открытом виде в скрипте небезопасно. Для производственных систем используйте wpa_supplicant с зашифрованными конфигурационными файлами или инструменты вроде pass для управления паролями.
7. Альтернативные инструменты: nmtui и iwd
Помимо nmcli и wpa_supplicant, в Ubuntu доступны другие инструменты для управления Wi-Fi.
nmtui (Text User Interface для NetworkManager)
Это текстовый интерфейс, удобный для пользователей, которые не хотят запоминать команды nmcli. Запустите его командой:
nmtui
В меню выберите Activate a connection, затем найдите свою сеть и введите пароль.
iwd (Intel Wireless Daemon)
Лёгкий демон для управления Wi-Fi, разработанный Intel. Он потребляет меньше ресурсов, чем wpa_supplicant, и поддерживает современные стандарты вроде WPA3. Установите его:
sudo apt install iwd
Отключите wpa_supplicant и активируйте iwd:
sudo systemctl disable wpa_supplicant
sudo systemctl enable iwd
sudo systemctl start iwd
Подключение через iwd:
sudo iwctl
station wlan0 scan
station wlan0 get-networks
station wlan0 connect"ИМЯ_СЕТИ"
Сравнение инструментов:
| Инструмент | Плюсы | Минусы |
|---|---|---|
nmcli |
Простота, интеграция с NetworkManager |
Требует запущенного NetworkManager |
wpa_supplicant |
Гибкость, работает без NetworkManager |
Сложная конфигурация, ручное управление IP |
iwd |
Лёгкий, поддерживает WPA3 |
Меньше документации, не все адаптеры поддерживаются |
8. Безопасность: как защитить своё подключение
Подключение к Wi-Fi через терминал требует особого внимания к безопасности, так как пароли могут сохраняться в конфигурационных файлах в открытом виде. Вот несколько рекомендаций:
1. Шифрование конфигурационных файлов
Если вы используете wpa_supplicant, зашифруйте файл с паролями:
gpg -c /etc/wpa_supplicant/wpa_supplicant.conf
Это создаст зашифрованную копию, которую можно расшифровать только при помощи вашего GPG-ключа.
2. Ограничение прав доступа
Убедитесь, что конфигурационные файлы доступны только root:
sudo chmod 600 /etc/wpa_supplicant/wpa_supplicant.conf
sudo chown root:root /etc/wpa_supplicant/wpa_supplicant.conf
3. Использование VPN
Если вы подключаетесь к публичным сетям, всегда используйте VPN для шифрования трафика. Установите OpenVPN или WireGuard:
sudo apt install openvpn
sudo openvpn --config client.ovpn
4. Отключение ненужных сетей
Регулярно очищайте список сохранённых сетей, чтобы избежать автоматического подключения к небезопасным точкам доступа:
nmcli connection delete"НЕНУЖНАЯ_СЕТЬ"
Дополнительные меры:
- 🔒 Используйте сложные пароли (не менее 12 символов с букв, цифр и спецсимволов).
- 🛡️ Отключите
WPSна роутере — этот протокол уязвим к брутфорс-атакам. - 🔄 Регулярно обновляйте прошивку роутера и пакеты
NetworkManager/wpa_supplicant.
⚠️ Внимание: Никогда не подключайтесь к сетям с подозрительными именами (например,Free_WiFiилиStarbucks_Free) без дополнительной защиты. Злоумышленники часто создают фейковые точки доступа для перехвата трафика.
FAQ: Частые вопросы
Можно ли подключиться к Wi-Fi без пароля (открытая сеть)?
Да, для открытых сетей используйте команду:
nmcli device wifi connect"ИМЯ_СЕТИ" --ask
При запросе пароля просто нажмите Enter. Для wpa_supplicant укажите в конфиге:
network={
ssid="ИМЯ_СЕТИ"
key_mgmt=NONE
}
Обратите внимание, что открытые сети небезопасны — ваш трафик может быть перехвачен.
Как подключиться к сети с Enterprise-аутентификацией (WPA2-Enterprise)?
Для сетей с 802.1X (например, в университетах или офисах) используйте:
nmcli connection add type wifi con-name"EnterpriseWiFi" ifname wlan0 ssid"ИМЯ_СЕТИ"
nmcli connection modify EnterpriseWiFi wifi-sec.key-mgmt wpa-eap
nmcli connection modify EnterpriseWiFi 802-1x.eap peap
nmcli connection modify EnterpriseWiFi 802-1x.phase2-auth mschapv2
nmcli connection modify EnterpriseWiFi 802-1x.identity"ВАШ_ЛОГИН"
nmcli connection modify EnterpriseWiFi 802-1x.password"ВАШ_ПАРОЛЬ"
nmcli connection up EnterpriseWiFi
Замените peap на ttls, если требуется другой метод аутентификации.
Почему после сна/гибернации Wi-Fi не подключается автоматически?
Это распространённая проблема, связанная с управлением питанием. Решения:
- Отключите автоотключение Wi-Fi:
sudo sed -i's/wifi.powersave = 3/wifi.powersave = 2/' /etc/NetworkManager/conf.d/default-wifi-powersave-on.confsudo systemctl restart NetworkManager
- Добавьте скрипт в
pm-utilsдля переподключения:sudo nano /etc/pm/sleep.d/10_wifiВставьте:
#!/bin/shcase"$1" in
resume|thaw)
nmcli radio wifi on
nmcli connection up"ИМЯ_ПОДКЛЮЧЕНИЯ"
esac
Сделайте исполняемым:
sudo chmod +x /etc/pm/sleep.d/10_wifi
Как подключиться к 5 ГГц сети, если она не видна в списке?
Некоторые адаптеры по умолчанию сканируют только 2.4 ГГц. Чтобы включить поддержку 5 ГГц:
- Проверьте, поддерживает ли адаптер 5 ГГц:
iw list | grep"5 GHz" - Принудительно установите страну (например,
USдля максимального количества каналов):sudo iw reg set USsudo systemctl restart NetworkManager
- Вручную укажите канал при сканировании:
sudo iw dev wlan0 scan freq 5180(5180 — пример канала для 5 ГГц)
Если адаптер не поддерживает 5 ГГц, рассмотрите покупку USB-адаптера с поддержкой 802.11ac.
Можно ли управлять Wi-Fi подключениями через SSH?
Да, все описанные команды (nmcli, wpa_supplicant) работают через SSH. Однако:
- Убедитесь, что на удалённой машине запущен SSH-сервер (
sudo apt install openssh-server). - Для
wpa_supplicantможет потребоваться передача переменных окружения (например,DBUS_SESSION_BUS_ADDRESS). - Используйте
screenилиtmux, чтобы сессия не прерывалась при разрыве SSH:sudo apt install tmuxtmux new -s wifi_session
выполняйте команды внутри tmux
для отключения: Ctrl+B, затем D
для возврата: tmux attach -t wifi_session