Вопрос или проблема
У меня есть Raspberry Pi 4 с Ubuntu Server 20.04. Я хочу настроить WiFi-подключение. У меня есть две WiFi-сети (2.4 ГГц и 5 ГГц), обе скрытые и настроены с использованием WPA2-Personal.
В моем файле /etc/netpaln/50-cloud-init.yaml
следующая конфигурация:
network:
version: 2
ethernets:
eth0:
dhcp4: true
optional: true
wifis:
wlan0:
optional: true
access-points:
"MY_HIDEN_SID":
password: "MY_PASSWORD"
dhcp4: true
К сожалению, сетевое подключение не работает. Однако, если я настрою мобильную точку доступа на своем телефоне и изменю SID и пароль, он подключается успешно. Так что причина, вероятно, в скрытой сети.
Вопрос: Как подключить Raspberry Pi 4 к скрытой WiFi-сети на Ubuntu Server 20.04?
ОБНОВЛЕНИЕ: Оказывается, существует опция в netplan
для указания скрытых сетей. Но она доступна только с версии 0.100. В то же время невозможно определить, какая версия включена в дистрибутив 20.20 (это не самая последняя версия), потому что разработчики netplan удалили информацию о версии из вывода “netplan info”.
ОБНОВЛЕНИЕ 2 Этот хак помог решить проблему.
netplan
Файлы .yaml очень чувствительны к форматированию.
Используйте этот .yaml и сохраните интервал, отступы и отсутствие табуляций точно так же… отредактируйте в нем ваш SSID и пароль…
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: true
optional: true
wifis:
wlan0:
#hidden: true # только в netplan 0.100
dhcp4: true
access-points:
"MYREALSSID\"\n scan_ssid=1\n# \"hack!":
password: "MY_PASSWORD"
sudo netplan generate
sudo netplay apply
wpasupplicant
Ubuntu Server не поставляется с wpasupplicant
, который необходим для работы беспроводной сети. Мы установим его. Требуется рабочее проводное подключение или USB-накопитель.
sudo apt-get update
sudo apt-get install wpasupplicant
reboot
Обновление №1:
Хак для работы со скрытыми сетями находится здесь.
Правильный формат файла netplan для скрытых SSID на 20.04:
network:
version: 2
ethernets:
eth0:
dhcp4: true
optional: true
wifis:
wlan0:
optional: true
access-points:
"MY_HIDEN_SID":
password: "MY_PASSWORD"
hidden: true
dhcp4: true
Ответ или решение
Для подключения Raspberry Pi 4 с установленной Ubuntu Server 20.04 к скрытой сети Wi-Fi с протоколом шифрования WPA2-Personal, необходимо учесть несколько важных аспектов. Рассмотрим поэтапно необходимые шаги и решения возможных проблем.
Теория
Скрытые сети Wi-Fi не передают свое SSID (идентификатор сети), и для подключения к ним требуется непосредственное задание параметров сети. В случае с Ubuntu Server для описания сетевых конфигураций используется утилита netplan
. Однако в версии Ubuntu 20.04 netplan
не поддерживает параметр hidden
, который позволяет указывать, что сеть скрытая, если версия у вас ниже 0.100. Это может вызвать сложности, поскольку Raspberry Pi не может обнаружить и подключиться к такой сети без дополнительной настройки.
Также, чтобы Wi-Fi работал на Ubuntu Server, необходимо установить wpasupplicant
— это демонт, обеспечивающий поддержку беспроводных сетей.
Пример
Рассмотрим файл конфигурации netplan
, который у вас имеется:
network:
version: 2
ethernets:
eth0:
dhcp4: true
optional: true
wifis:
wlan0:
optional: true
access-points:
"MY_HIDEN_SID":
password: "MY_PASSWORD"
dhcp4: true
Этот файл работает для открытых или видимых сетей, но не для скрытых. Чтобы обойти это ограничение, можно воспользоваться "хаками", как предложено в некоторых ресурсах.
Применение
-
Установка
wpasupplicant
:
Убедитесь, чтоwpasupplicant
установлен, так как он необходим для работы с беспроводными сетями:sudo apt-get update sudo apt-get install wpasupplicant
-
Изменение конфигурации
netplan
:
Необходимо использовать обходной метод ("хак") для указания скрытой сети. Предлагается следующий метод:network: version: 2 renderer: networkd ethernets: eth0: dhcp4: true optional: true wifis: wlan0: dhcp4: true access-points: "MYREALSSID\"\n scan_ssid=1\n# \"hack!": password: "MY_PASSWORD"
Подробнее о методе "хака": так как
netplan
не поддерживает параметрhidden
в версиях ниже 0.100, используется внедрение параметраscan_ssid=1
для ручного поиска и подключения к скрытой сети. Хотя это решение не является официальным, оно работает в некоторых случаях. -
Применение и проверка конфигурации:
После изменения конфигурационного файла, выполните следующие команды для генерации и применения конфигурации:sudo netplan generate sudo netplan apply
-
Перезагрузка системы:
Для применения всех изменений и подготовки системы к работе с новой конфигурацией, выполните перезагрузку:sudo reboot
-
Отладка:
Если подключение к сети не работает, осмотрите логи системных сообщений следующей командой:journalctl -xe
Это может помочь выявить другие проблемы с конфигурацией сети.
В заключение, при использовании Raspberry Pi для подключения к скрытой сети Wi-Fi, важно учесть особенности версии netplan
и ограничения, связанные с поддержкой скрытых сетей. Для решения этой задачи может быть необходимо применить неофициальные решения. Это позволит убедиться, что ваше устройство полноценно работает в заданной сетевой архитектуре.