Как подключиться к Wi-Fi через терминал в Ubuntu: полное руководство

Подключение к Wi-Fi через терминал в Ubuntu может показаться сложной задачей для новичков, но на практике это один из самых надёжных способов управления сетевыми соединениями. Графический интерфейс NetworkManager иногда даёт сбои, особенно при работе с нестандартными конфигурациями роутеров или после обновлений системы. Терминал же позволяет гибко настраивать подключение, диагностировать проблемы и даже автоматизировать процесс через скрипты.

В этой статье вы найдёте пошаговую инструкцию по подключению к Wi-Fi через командную строку, включая сканирование доступных сетей, сохранение пароля, управление профилями и устранение типичных ошибок. Мы рассмотрим как стандартные инструменты вроде nmcli и nmtui, так и низкоуровневые утилиты типа wpa_supplicant для опытных пользователей. Если вы когда-либо сталкивались с проблемами подключения после сна или перезагрузки, или просто хотите понять, как работает сеть в Linux на глубоком уровне — этот гайд для вас.

Прежде чем приступить, убедитесь, что ваш Wi-Fi-адаптер распознаётся системой. Для этого введите команду lspci | grep -i network (для PCI-устройств) или lsusb (для USB-адаптеров). Если адаптер не определяется, может потребоваться установка драйверов — эту тему мы также кратко затронем.

📊 Какой способ подключения к Wi-Fi вы используете чаще?
Графический интерфейс
Терминал (nmcli/wpa_supplicant)
Автоматические скрипты
Не знаю, как подключаться

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-PSK vs WPA3).
  • 🔄 Перезагрузку роутера (иногда помогает сбросить временные блокировки).

Ошибка:"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 не подключается автоматически?

Это распространённая проблема, связанная с управлением питанием. Решения:

  1. Отключите автоотключение Wi-Fi:
    sudo sed -i's/wifi.powersave = 3/wifi.powersave = 2/' /etc/NetworkManager/conf.d/default-wifi-powersave-on.conf
    

    sudo systemctl restart NetworkManager

  2. Добавьте скрипт в pm-utils для переподключения:
    sudo nano /etc/pm/sleep.d/10_wifi

    Вставьте:

    #!/bin/sh
    

    case"$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 ГГц:

  1. Проверьте, поддерживает ли адаптер 5 ГГц:
    iw list | grep"5 GHz"
  2. Принудительно установите страну (например, US для максимального количества каналов):
    sudo iw reg set US
    

    sudo systemctl restart NetworkManager

  3. Вручную укажите канал при сканировании:
    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 tmux
    

    tmux new -s wifi_session

    выполняйте команды внутри tmux

    для отключения: Ctrl+B, затем D

    для возврата: tmux attach -t wifi_session