- Linux Ubuntu 20.04 автоподключение WiFi до входа в систему
- Настройка Wifi в Ubuntu
- Установка драйвера Wifi
- Подключение к Wifi в Ubuntu
- Подключение к Wifi в Ubuntu через терминал
- Выводы
- iwd (Русский)
- Contents
- Установка
- Использование
- iwctl
- Подключение к сети
- Подключение к сети через WPS/WSC
- Отключение от сети
- Информация об устройстве и соединении
- Ранее посещённые сети
- Настройка сети
- WPA-PSK
- WPA Enterprise
- EAP-PWD
- EAP-PEAP
- TTLS-PAP
- Eduroam
- Прочие случаи
- Дополнительные настройки
- Отключение автоподключения к сети
- Отключение сканирования сетей
- Включение встроенной настройки сети
- Поддержка IPv6
- Статический IP-адрес в настройках сети
- Выбор DNS-менеджера
- Запрет на модификацию настроек из консоли
- Решение проблем
- Подробная отладка TLS
- Проблемы с подключением после перезагрузки
- udev не переименовывает беспроводное устройство
Linux Ubuntu 20.04 автоподключение WiFi до входа в систему
Недавно столкнулся с ситуацией, что ПК с Ubuntu 20.04 разрывает и не поднимает WiFi соединение при перезагрузке ПК или перезагрузке роутера. Происходит это если не осуществлялась авторизация или ПК ушел на локскрин. Причем если залогиниться — автоматически сеть подхватывалась. В сети почти нет информации на этот счет, поэтому публикую рабочее решение.
В первую очередь нужно отредактировать файл /etc/netplan/01-network-manager-all.yaml
sudo nano /etc/netplan/01-network-manager-all.yaml
Комментируем текущие строки, вместо них добавляем новые (отступы делать строго пробелами):
network:
ethernets:
%LANADAPTERNAME%:
dhcp4: true
optional: true
version: 2
wifis:
%WIFIADAPTERNAME%:
dhcp4: true
optional: true
access-points:
«%WIFINETNAME%»:
password:
«%WIFINETPASSWORD%»
renderer: networkd
%LANADAPTERNAME% — имя вашего LAN адаптера, посмотреть можно командой sudo ifconfig (у меня это enp3s0)
%WIFIADAPTERNAME% — имя вашего WiFi адаптера, посмотреть можно командой sudo ifconfig (у меня это wlx1cbfce579c8d)
%WIFINETNAME% — Имя вашей WiFi сети, он же SSID
%WIFINETPASSWORD% — пароль от вашей WiFi сети
Далее выполняем команду генерации, отслеживаем вывод ошибок, при необходимости их исправляем (перед debug две -, а не одна как отображает сайт)
Источник
Настройка Wifi в Ubuntu
В наше время проводное подключение ноутбука к интернету используется всё реже. Наиболее распространенный вариант — провод подключён к роутеру, а он уже раздает Wifi на весь дом. Технологию Wifi поддерживают большинство современных ноутбуков, и это удобно — можно взять его с собой на кровать, не боясь переломить шнур, или очень легко перенести его в другую комнату.
Но тут кроется одна проблема: не всегда и не на всех устройствах Wifi поддерживается из коробки. Да, есть такие ноутбуки Linux, в которых настройка Wifi в Ubuntu не нужна: после установки всё работает, вы можете подключаться к сетям или даже создавать точки доступа. Но это не так уж часто. В этой статье будет рассмотрена настройка Wifi в Ubuntu. Мы возьмём самую последнюю версию дистрибутива Ubuntu 16.04 с ядром Linux 4.4. Тут самую важную роль играет ядро, поскольку именно оно отвечает за поддержку оборудования. Я буду предполагать, что у вас не работает Wifi Ubuntu из коробки, если же вас интересует, как подключиться к сети, листайте ниже.
Установка драйвера Wifi
Если вы попробовали подключиться к сети Wifi, и у вас не получилось, хотя пароль был правильный, или у вас даже не определяется системой присутствие сетевой карты Wifi, становится понятно, что из коробки не работает Wifi Ubuntu и нужна дополнительная настройка. Wifi-адаптеров и их производителей очень много. В этой статье мы будем рассматривать только Broadcom, потому что всё не охватить. Но я попытаюсь объяснить так, чтобы вы смогли разобраться, даже если у вас другой производитель адаптера Wifi Ubuntu.
Для начала, давайте посмотрим какой у вас производитель сетевой платы, для этого выполните:
sudo lspci | grep Network
Самые популярные сейчас — Broadcom, Atheros, Intel, Realtek. В этом примере мы рассмотрим Broadcom. Для каждого из этих производителей было реализовано по несколько открытых драйверов, которые вы можете установить. Но, скорее всего, все они вам не подойдут, нужно подобрать драйвер только для вашей карты. Для этого откройте сайт https://wireless.wiki.kernel.org/en/users/drivers. Это официальный сайт драйверов ядра Linux. На этой странице есть таблица со всеми драйверами Wifi, которые есть в ядре.
Для нашего Broadcom-адаптера есть четыре драйвера, смотрим только те, для которых в последней колонке есть PCI; наш адаптер подключён через эту шину. Это b43, b43-legasy и brcmfmac и brcmcmac.
Дальше выбираем лучший драйвер: смотрим на колонки cfg80211, AP, IBSS, mesh, monitor, PHY modes. Собственно, поддержка протокола сап80211, поддержка режима точки доступа, поддержка IBSS, Mesh, поддержка режима прослушивания (для перехвата пакетов) и поддержка расширений протокола b/g/n/a.
Для нас сейчас лучший драйвер по этим параметрам — b43. Открываем его и смотрим, поддерживает ли он нашу карту:
Кроме названия, здесь приводится PCI ID карты, чтобы точно определить совместимость. Для Broadcom его можно посмотреть командой:
lspci -nn -d 14e4:
Находим нашу карту BCM4313 и в колонке Supported видим No — жаль, но этим драйвером она не поддерживается. Такого PCI ID здесь тоже в помине нет. Но настройка Wifi в Ubuntu ещё не закончена. Возвращаемся назад, и смотрим другой драйвер. Следующий по возможностям драйвер brcmsmac, он не поддерживает Mesh и IBSS, но нам и не нужно.
Открываем, смотрим и видим, что в первой же строчке есть наша карта:
Вот теперь мы нашли нужный драйвер и уже даже знаем, какие режимы он поддерживает. Подобным образом можно подобрать драйвер для любого другого адаптера.
Обратите внимание, что перед тем, как запускать драйвер, для него, возможно, необходимо будет установить прошивки. Установка драйвера Wifi Ubuntu не нужна, поскольку он вшит в ядро. Информация о прошивке находится ниже на странице:
В нашем случае нужно скачать и скопировать файлы brcm/bcm43xx-0.fw и brcm/bcm43xx_hdr-0.fw to в отдельную папку. Вот они — эти файлы, на вкладке tree, скачиваем и копируем в папку, которая указана в инструкции:
sudo cp bcm43* /lib/firmware/brcm/
Как видите, всё немного сложно, но на самом деле там все действия описаны, и все ссылки есть, нужно только внимательно смотреть. Теперь осталось установить драйвер Wifi Ubuntu, для этого мы просто загрузим модуль ядра. Но перед этим нужно добавить в чёрный список все другие модули, которые ядро может загружать автоматически:
sudo modprobe -r wl
$ sudo modprobe -r b43
$ sudo modprobe -r b43-legaxy
Добавляем их в чёрный список:
blacklist b43
blacklist b43-legacy
blacklist wl
Теперь запускаем наш выбранный драйвер:
sudo modprobe brcmsmac
Вот и всё, теперь Wifi работает. Теперь вы знаете, как установить драйвер Wifi в Ubuntu, как его найти, как определить необходимую версию для вашей карты. Хотя мы рассмотрели способ для Broadcom, с другими адаптерами нужно работать похожим образом. Загружаем выбранный драйвер, запрещаем все остальные доступные. И не забудьте установить прошивку. Даже если Ubuntu не видит Wifi, вы сможете разобраться.
Подключение к Wifi в Ubuntu
После того, как установка драйвера Wifi Ubuntu завершена, подключиться к сети не составит труда, это намного легче, по сравнению с тем, через что вы уже прошли. На панели теперь появился такой значок:
Когда не работает Wifi Ubuntu, его нет. Точнее он есть, но выглядит по-другому. Кликните по этому значку и выберите из списка нужную сеть. Осталось ввести пароль:
Готово, подключить Wifi Ubuntu не так уж сложно, и вы можете пользоваться интернетом.
Подключение к Wifi в Ubuntu через терминал
Иногда случаются ситуации, когда графический интерфейс не работает. Тогда тоже может понадобиться интернет. Дальше мы рассмотрим, как подключить Wifi Ubuntu через терминал. Как вы знаете, для обмена данными в сети Wifi используется шифрование, это WEB, WPA и WPA2. Мы не будем рассматривать WEP, потому что это слишком просто, и это шифрование не безопасное — его можно взломать за несколько минут.
Остановимся на WPA. Настройка Wifi в Ubuntu через терминал состоит из нескольких этапов:
- Просканировать сеть и найти доступные точки
- Подключиться к точке, используя wpa_supplicant
- Получить IP-адрес по DHCP
- Настроить DNS-серверы, чтобы сайты открывались корректно
В графическом интерфейсе всё происходит автоматически, но поскольку мы выбрали этот путь, нужно будет действовать вручную.
Сканируем сеть с помощью специальной утилиты:
sudo iwlist scan
Была обнаружена одна сеть с ESSID H30_CE550. Отлично, теперь мы будем использовать эту точку, чтобы подключить Wifi Ubuntu. Выполните команду:
wpa_passphrase H30_CE550 > wpa.conf
После этого введите пароль и нажмите Enter, утилита создаст файл конфигурации для подключения. Файл можно было создать вручную, но так ведь проще.
Для самого же подключения будем использовать утилиту wpa_supplicant. Рассмотрим её синтаксис:
$ wpa_supplicant -D драйвер -i интерфейс -c файл_содениения
Драйверов, которые задаются опцией -D всего два: это устаревший wext и новый драйвер Wifi Ubuntu nl80211. Не стоит путать эти драйверы с драйверами устройств. Это универсальная прослойка между этими драйверами и системой. Пробуйте сначала второй, а если не работает, то тогда уже первый. Интерфейс вы можете посмотреть из вывода утилиты iwlist scan, в моём случае это wlp3s0b1, но скорее всего у вас будет wlan0. А имя файла — это тот файл, который мы только что создали. Запускаем:
sudo wpa_supplicant -Dnl80211 -iwlp3s0b1 -cwpa.conf
Готово, второй этап подключения Wifi в Ubuntu завершён: мы в сети. Осталось получить IP-адрес и DNS, чтобы полноценно работать. Оставьте этот терминал в покое и откройте новый. Вообще, можно было запустить wpa_supplicant с опцией -B, но тогда бы мы потеряли над ней контроль. Если бы настройка Wifi Ubuntu 16.04 пошла не так, нам бы пришлось искать и убивать процесс, к тому же, у нас не было бы вывода программы.
Для получения IP по протоколу DHCP воспользуемся утилитой dhclient. Сначала найдём все доступные DHCP-серверы в сети:
sudo dhclient -r
Затем просто запросим адрес для нашего интерфейса:
sudo dhclient -i wlp3s0b1
На получение IP-адреса уйдет несколько секунд. После этого, выполнив ifconfig, мы можем убедиться, что у нас уже есть IP:
sudo ifconfig wlp3s0b1
А также проверить сеть с помощью ping:
Готово. Подключение к Wifi в Ubuntu через терминал завершено. На случай, если вы надумаете тестировать это при запущенном NetworkManager, снимите галочку с управления Wifi в апплете, чтобы программа не мешала.
После этого интерфейс будет программно заблокирован, разблокировать его можно командой:
sudo rfkill unblock wlan
Теперь можете выполнять подключение Wifi в Ubuntu через консоль. Всё будет работать. При следующем подключении вам не нужно создавать файл конфигурации заново, вы можете даже написать небольшой скрипт, чтобы соединение выполнялось автоматически.
Выводы
Надеюсь, что после прочтения этой статьи вы стали лучше понимать, как работает Wifi в Ubuntu, как выполняется установка драйвера и что делать, если Ubuntu не видит Wifi. Настройка Wifi Ubuntu 16.04 — довольно сложная задача, особенные трудности может вызвать поиск прошивок и подбор драйвера. Если у вас остались вопросы, спрашивайте в комментариях!
Источник
iwd (Русский)
iwd (iNet wireless daemon) — беспроводной демон для Linux, созданный компанией Intel. Разработчики постарались снизить число внешних библиотек-зависимостей и использовать по максимуму возможности ядра Linux.
iwd может работать как отдельно, так и в паре с сетевым менеджером вроде ConnMan, systemd-networkd или NetworkManager.
Contents
Установка
Использование
Пакет iwd содержит клиентскую программу iwctl , демон iwd и утилиту для мониторинга Wi-Fi сетей iwmon .
Запустите/включите службу iwd.service . Для управления службой используется команда iwctl .
iwctl
Запуск в интерактивном режиме:
В интерактивном режиме приглашение командной строки имеет вид [iwd]# .
Вывести список доступных команд:
Подключение к сети
Если вы не знаете название своего беспроводного интерфейса, запросите список всех Wi-Fi устройств:
После этого можно вывести список обнаруженных сетей:
Наконец, подключитесь к сети:
Если для подключения к сети необходим пароль, то появится соответствующий запрос. В неинтерактивном режиме его можно передать в виде аргумента:
Подключение к сети через WPS/WSC
Если ваша сеть поддерживает подключение по нажатию клавиши (Википедия:Wi-Fi Protected Setup), убедитесь, что сетевое устройство тоже может использовать эту возможность.
После этого, если ваше устройство было в списке, выполните
и нажмите кнопку на маршрутизаторе. В принципе кнопку можно нажать и до этого (но не ранее, чем за 2 минуты).
Если при таком способе подключения сеть требует подтверждения PIN, изучите вывод команды help на предмет подходящих опций для команды wsc .
Отключение от сети
Отключиться от сети:
Информация об устройстве и соединении
Вывести подробности о Wi-Fi устройстве (например, MAC-адрес):
Вывести состояние подключения, в том числе сети, подключённые к устройству:
Ранее посещённые сети
Вывести список сетей, к которым вы подключались в прошлом:
«Забыть» известную сеть:
Настройка сети
По умолчанию iwd хранит настройки сети в каталоге /var/lib/iwd . Файл настроек именуется по схеме сеть.тип , где сеть — SSID сети, а, соответственно, тип — её тип (open, wep, psk или 8021x). В файле хранится зашифрованный PreSharedKey , а также (опционально) Passphrase открытым текстом. Файл можно создать вручную, не вызывая iwctl . Кроме того, в файле можно указывать и другие настройки, подробнее см. iwd.network(5) .
WPA-PSK
Пример минимального файла настроек для подключения к сети WPA-PSK или WPA2-PSK с SSID «spaceship» и паролем «test1234»:
PreSharedKey можно вычислить одним из двух методов:
- Указав пароль в явном виде в файле настроек:
Ключ будет добавлен в файл при первом подключении:
WPA Enterprise
EAP-PWD
Для подключения к производственным сетям с EAP-PWD защитой создайте файл essid.8021x в каталоге /var/lib/iwd со следующим содержимым:
Если автоподключение к точке доступа не требуется, измените значение последней опции на False. После этого подключаться к сети придётся вручную командой iwctl . То же самое касается пароля — если вы не хотите хранить его в файле в открытом виде, то просто удалите соответствующую опцию и подключайтесь вручную.
EAP-PEAP
Как и в случае EAP-PWD, создайте файл essid.8021x . Предварительно выясните, какой CA-сертификат использует на вашем предприятии. Для работы MSCHAPv2 необходимо также установить ppp (см. MS-CHAPv2). Ниже дан пример файла настроек с MSCHAPv2-аутентификацией:
TTLS-PAP
Как и в случае EAP-PWD, создайте файл essid.8021x . Предварительно выясните, какой CA-сертификат использует на вашем предприятии. Ниже дан пример файла настроек с PAP-аутентификацией:
Eduroam
Eduroam имеет утилиту для настройки (configuration assistant tool, CAT), но она, к сожалению, не поддерживает iwd. Тем не менее, загружаемый установщик представляет собой обычный Python-сценарий. Из него нетрудно извлечь необходимые параметры настройки, включая сертификат и маску домена.
В таблице ниже приведены значения параметров iwd, которые используются в переменных установочного сценария CAT.
Опция iwd | Переменная сценария CAT |
---|---|
имя файла | один из Config.ssids |
EAP-Method | Config.eap_outer |
EAP-Identity | Config.anonymous_identity |
EAP-PEAP-CACert | Config.CA |
EAP-PEAP-ServerDomainMask | один из Config.servers |
EAP-PEAP-Phase2-Method | Config.eap_inner |
EAP-PEAP-Phase2-Identity | имя_пользователя@ Config.user_realm |
Прочие случаи
В репозитории разработчиков можно найти много дополнительных примеров.
Дополнительные настройки
Для хранения большинства настроек вполне подойдёт файл /etc/iwd/main.conf . См. iwd.config(5) .
Отключение автоподключения к сети
Создайте/отредактируйте файл /var/lib/iwd/сеть.тип :
Отключение сканирования сетей
По умолчанию, если iwd не подключён, он периодически выполняет сканирование в поиске доступных сетей. Чтобы это отключить (и сканировать вручную при необходимости), создайте/отредактируйте файл /etc/iwd/main.conf :
Включение встроенной настройки сети
С версии 0.19 iwd может выполнять привязку IP-адресов и настраивать маршруты с помощью встроенного DHCP-клиента или в соответствии со статической конфигурацией. Это неплохая альтернатива использованию отдельных DHCP-клиентов.
Чтобы активировать возможности iwd по настройке сети, добавьте следующие строки в /etc/iwd/main.conf :
Также можно задать параметр маршрутизации RoutePriorityOffset :
Поддержка IPv6
С версии 1.10 iwd имеет поддержку IPv6, но по умолчанию она отключена. Для включения добавьте следующие строки в файл настроек:
Эта настройка необходима, если вы желаете использовать DHCPv6 или статическую IPv6-конфигурацию. Её также можно задать для отдельной сети.
Статический IP-адрес в настройках сети
Добавьте следующие строки в файл /var/lib/iwd/сеть.тип :
Выбор DNS-менеджера
На данный момент iwd поддерживает два DNS-менеджера — systemd-resolved и resolvconf.
Настройки для systemd-resolved :
Запрет на модификацию настроек из консоли
По умолчанию D-Bus интерфейс iwd позволяет любым (в том числе обычным, не-root) пользователям подключаться к демону iwd через консоль и изменять настройки.
Если вы хотите, чтобы пользователи могли только читать выходную информацию, но не изменять настройки, создайте файл настроек D-Bus:
Решение проблем
Подробная отладка TLS
Это может пригодиться при решении проблем с MSCHAPv2 или TTLS. Задайте следующую переменную окружения с помощью drop-in файла:
После этого проверьте логи iwd, выполнив journalctl -u iwd.service с правами root.
Проблемы с подключением после перезагрузки
Низкая энтропия системы может вызвать проблемы с подключением, особенно после перезагрузки. Рекомендации по увеличению энтропии можно найти в статье Random number generation.
udev не переименовывает беспроводное устройство
С версии 1.0 iwd отключает присвоение беспроводным интерфейсам предсказуемых имён. Для этого используется link-файл systemd, который запрещает udev присваивать беспроводным интерфейсам типовые имена wlp#s# :
В результате после перезагрузки интерфейсы будут иметь имена wlan# . Это позволяет избежать ситуации гонок между iwd и udev при переименовании интерфейсов.
Если это привело к каким-то нежелательным последствиям, link-файл можно замаскировать с помощью символической ссылки:
Источник