📑 Как настроить wifi из командной строки в Ubuntu
Иногда бывает нужно настроить wifi в Ubuntu сервере, т.е. из командной строки, без графической оболочки (без X-ов). В принципе ничего сложного здесь нет. Рассмотрим подробно весь этот процесс.
В первую очередь необходимо проверить, установлены ли пакет wpasupplicant и wireless-tools. Эти пакеты обеспечивают подключения к к wifi сетям и в частности c с WPA и WPA2 аутентификацией.
Напомним, что технология WPA (Wi-Fi® Protected Access) — это спецификация шифрования данных для беспроводной сети. Она обеспечивает защиту доступа к сети за счет использования протокола EAP (Extensible Authentication Protocol), а также механизм шифрования для защиты данных при передаче.
Технология WPA предназначена для использования с сервером проверки подлинности 802.1X, который распределяет различные ключи каждому пользователю, однако её чаще всего используют без сервера, в менее безопасном режиме «Pre-Shared Key (PSK)». Ключ PSK предназначен для домашних сетей и сетей небольших офисов, где для всех пользователей используется одинаковый пароль.
Протокол WPA-PSK также называется WPA-Personal. Протокол WPA-PSK позволяет беспроводному устройству Brother обмениваться данными с точками доступа при помощи способа шифрования TKIP или AES. Более продвинутый протокол WPA2-PSK позволяет беспроводному устройству обмениваться данными с точками доступа при помощи способа шифрования AES.
Итак проверяем, установлены ли пакеты wpasupplicant и wireless-tools:
$ sudo dpkg -l | grep wpasupplicant $ sudo dpkg -l | grep wireless-tools
Если на выходе не получаем ничего, то пакеты нужно установить:
$ sudo apt-get install wpasupplicant wireless-tools
Кроме того иногда необходимо установить firmware для устройства wifi. Обычно это firmware-realtek, либо firmware-linux-free.
Когда все установлено можно посмотреть список доступных wifi сетей:
Далее необходимо создать файл /etc/wpa_supplicant/wpa_supplicant.conf:
$ sudo touch /etc/wpa_supplicant/wpa_supplicant.conf
и записать туда информацию о сети (SSID) и пароль wpa2-psk:
wpa_passphrase wireless-name password > /etc/wpa_supplicant/wpa_supplicant.conf
wireless-name и password необходимо поменять на свой SSID и пароль.
Затем правим файл /etc/network/interfaces:
$ sudo nano /etc/network/interfaces
auto lo iface lo inet loopback auto wlan0 iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
и лучше перегрузить компьютер. В этом примере все параметры сети — ip адрес, DNS и т.п. получаются по DHCP. Если необходимо использовать фиксированный IP адрес, то прописываем его явно:
auto lo iface lo inet loopback auto wlan0 iface wlan0 inet static address 192.168.10.7 netmask 255.255.255.0 dns-nameservers 8.8.8.8 gateway 192.168.10.1 wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
Естественно все адреса нужно подставить свои. Всё. Должно работать. Если что-то не работает, то нужно разбираться с драйверами wifi карты/устройства. Но это тема другой статьи.
- Установка remmina из ppa в Ubuntu 22.04 или Mint 21
- Исправляем: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg)
- Что такое зомби-процесс в Linux?
- Хитрости командной строки Bash, которые помогут вам работать быстрее
- Команда mkdir в Linux — подробно и с примерами
- Список непечатаемых символов Linux, MacOS или Windows
- Запуск нескольких команд Linux одной составной командой
- Ошибка NO_PUBKEY. Как найти GPG-ключ и добавить его в базу apt системы Ubuntu
- Установка драйвера wifi Asus wl-167g v3 (rtl8192) для Ubuntu 16.04 и 18.04
- Как настроить wifi из командной строки в Ubuntu
- Изменение имени сетевого интерфейса в Ununtu/Mint
- Настройка автозапуска скриптов в Linux Ubuntu/Mint
- Nscd — служба, которая кэширует запросы службы имён
- Почему в меню загрузки ubuntu нет memtest86
- Ethtool — программа изменения параметров сетевой платы в Ubuntu/Mint
- Работа с сервисами в Ubuntu 16.04
- Установка сервера точного времени NTP в Ubuntu 16.04
- Как отключить IPV6 в Ubuntu/Mint
- Отключаем Network Manager в Linux Ubuntu (Mint)
- Изменение разрешения экрана и шрифтов в консоли Ubuntu
- Создание и подключение swap файла
- Ошибка при обновлении ядра
- Блокирование атак при помощи null route или blackhole
- Добавление нового sudo пользователя
- Блокирование ip адреса при помощи iptables
- fail2ban для защиты WordPress
- Ротация логов — logrotate
- Шрифты Windows в Linux системах
- Защита сервера — Fail2Ban
- Изменение пароля в Ubuntu/Mint
- Защита phpMyAdmin
- Русская locale в Ubuntu Server
Настройка Wi-Fi точки доступа на Linux
17.08.2022
itpro
Linux, Ubuntu
комментариев 8
В этой статье мы рассмотрим, как создать точку доступа Wi-FI (Software AP) на любом компьютере или ноутбуке c Linux и беспроводным адаптером. Такую точку доступа можно использовать для организации беспроводной локальной сети в небольшом офисе или дома, или использовать для предоставления доступа в Интернет другим устройствам. В данном примере мы используем ноутбук с последней версией Ubuntu.
В первую очередь проверьте, что ваш Wi-Fi модуль поддерживает режим access point (AP). Для этого установите пакет iw:
Утилита iw используется настройки беспроводных интерфейсов (драйвер nl80211) из командной строки. Она поддерживает все новые драйверы, недавно добавленные в ядро. Старый инструмент iwconfig, использующий интерфейс Wireless Extensions, устарел, и настоятельно рекомендуется переключиться на iw и nl80211.
В открывшемся списке под пунктом Supported interface modes, находим:
Это означает, что ваша Wi-Fi адаптер поддерживает работу в режиме точки доступа.
Запуск Wi-Fi Hotspot из графического интерфейса Ubuntu
В Ubuntu 20.04 LTS и более новых версиях с GNOME (3.28+) вы можете запустить точку доступа Wi-Fi прямо из графического интерфейса. Это самый простой способ для рядового пользователя.
Щелкните по значку сетевых подключений и в панели с настройками Wi-Fi выберите в выпадающем меню опцию Turn On Wi-Fi Hotspot.
В появившемся диалоговом окне укажите имя точки доступа и пароль для подключения.
Должна появится надпись, что ваша точка доступа активна. В этом же окне содержится QR код для подключения к вашей точке доступа Wi-Fi.
Используем Network Manager (nmcli) для организации точки доступа на Linux
В большинстве современных дистрибутивов Linux (Ubuntu, Debian, Mint, Fedora, CentOS и т.д.) для управления сетевыми соединениями можно использовать Network Manager. В этом примере мы покажем, как создать программную точку доступа на Linux с помощью Network Manager и утилитой командной строки nmcli.
Сначала нужно получить имя вашего wifi адаптера в системе. Выполните команду:
В нашем примере имя устройства wifi адаптера – wlp4s0b1.
Если на вашем компьютере установлен dnsmasq (легковесный DHCP/DNS сервер), необходимо отключить его. Он будет вызывать конфликт с плагином dnsmasq в NetworkManager.
Чтобы создать точку доступа на интерфейсе wlp4s0b1 с именем сети MyHomeWiFI и ключом сети (паролем) SuperPass21, выполните команды:
# nmcli con add type wifi ifname wlp4s0b1 mode ap con-name MyHomeWiFI ssid MyHomeWiFI
# nmcli con modify MyHomeWiFI 802-11-wireless.band bg
# nmcli con modify MyHomeWiFI 802-11-wireless.channel 1
# nmcli con modify MyHomeWiFI 802-11-wireless-security.key-mgmt wpa-psk
# nmcli con modify MyHomeWiFI 802-11-wireless-security.proto rsn
# nmcli con modify MyHomeWiFI 802-11-wireless-security.group ccmp
# nmcli con modify MyHomeWiFI 802-11-wireless-security.pairwise ccmp
# nmcli con modify MyHomeWiFI 802-11-wireless-security.psk SuperPass21
# nmcli con modify MyHomeWiFI ipv4.method shared
Запустите вашу точку доступа
# nmcli con up MyHomeWiFI
Если вы хотите запустить точку доступа на частоте 5 Ггц и использовать более высокий канал, измените соответствующие команды на:
# nmcli con modify MyHomeWiFI 802-11-wireless.band a
# nmcli con modify MyHomeWiFI 802-11-wireless.channel 35
По умолчанию DHCP сервер в NetworkManager выдает клиентам адреса из диапазона 10.42.0.x/24 (при этом 10.42.0.1 это адрес вашей точки доступа). Вы можете изменить этот диапазон:
# nmcli con modify MyHomeWiFI ipv4.addr 192.168.31.1/24
Чтобы отключить точку доступа, выполните команду:
# nmcli con down MyHomeWiFI
Чтобы полностью удалить ее:
# nmcli con delete MyHomeWiFI
Создаем точку доступа Wi-Fi в Linux с помощью hostapd
Популярным средством для организации точки доступа Wi-Fi на Linux системах является пакет hostapd. Установите его:
Создайте копию оригинального конфигурационного файла (/etc/hostapd/hostapd.conf). Добавьте следующую конфигурацию в hostapd.conf:
$ sudo nano /etc/hostapd/hostapd.conf
interface= wlp4s0b1 # Драйвер nl80211 подходит для большинства адаптеров WiFi driver=nl80211 # Имя вашей точки доступа ssid=MyHomeAP # номер беспроводного канала (от 1 до 13). channel=11 #Выберите режим вашей точки доступа (a = IEEE 802.11a, b = IEEE 802.11b, g = IEEE 802.11g) hw_mode=g # 1=wpa, 2=wep, 3=both auth_algs=1 # разрешить подключение со всех MAC адресов, кроме занесенных в черный список. macaddr_acl=0 wpa=2 wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP CCMP #Устанавливаем пароль к точке доступа wpa_passphrase=MyPass92
ieee80211n=1 ht_capab=[HT40-][SHORT-GI-40]
Размаскируйте сервис hostpad:
$ sudo systemctl unmask hostapd
Далее в параметре DAEMON_CONF файла /etc/default/hostapd укажите путь к конфигурационному файлу:
$ sudo nano /etc/default/hostapd
DAEMON_CONF="/etc/hostapd/hostapd.conf"
Теперь нужно настроить параметры беспроводного сетевого интерфейса. Необходимо задать статический IP, DNS, режим и прочие настройки. Заходим в директорию /etc/network/interfaces и добавляем следующее:
auto wlp3s0 iface wlp3s0 inet static address 10.10.0.1 netmask 255.255.255.0
Это нужно в том числе, чтобы NetworkManager не трогал сетевой интерфейс Wi-Fi. После сохранения настроек перезапустите компьютер.
Осталось настроить DHCP сервер, который будет назначать IP адреса устройствам, которые подключаются к вашей точке доступа Linux. В нашем примере мы будем использовать легкий dnsmasq:
Отредактируйте конфигурационный файл dnsmasq.conf. Укажем, что dnsmasq будет работать на интерфейсе wlp4s0b1, и выдавать IP адреса из диапазона 10.10.0.x. В самом простом случае конфигурация может быть такой:
$ sudo nano /etc/dnsmasq/dnsmasq.conf
interface=wlp4s0b1 dhcp-range=10.10.0.2,10.10.0.100,12h #Задать сервер DNS server=/www.google.com/8.8.8.8
Чтобы ваш хост Linux маршрутизировал пакеты между Wi-Fi клиентами и внешним интернет подключением, нужно включить роутинг и добавить правило в iptables:
sysctl net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -o enp3s0 -j MASQUERADE
Также можно использовать интерфейс bridge для организации доступа клиентов из локальной сети в Интернет (этот пункт мы опустим, чтобы не загромождать статью).
# systemctl start dnsmasq.service
# systemctl start hosapd
Теперь вы можете подключиться к вашей точке доступа с любого клиента, проверить что он получил IP адрес из заданного диапазона и может выходить в интернет.
Предыдущая статья Следующая статья