Как подключить Raspberry Pi 4 к скрытой WiFi-сети на Ubuntu Server 20.04?

Вопрос или проблема

У меня есть 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

Этот файл работает для открытых или видимых сетей, но не для скрытых. Чтобы обойти это ограничение, можно воспользоваться "хаками", как предложено в некоторых ресурсах.

Применение

  1. Установка wpasupplicant:
    Убедитесь, что wpasupplicant установлен, так как он необходим для работы с беспроводными сетями:

    sudo apt-get update
    sudo apt-get install wpasupplicant
  2. Изменение конфигурации 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 для ручного поиска и подключения к скрытой сети. Хотя это решение не является официальным, оно работает в некоторых случаях.

  3. Применение и проверка конфигурации:
    После изменения конфигурационного файла, выполните следующие команды для генерации и применения конфигурации:

    sudo netplan generate
    sudo netplan apply
  4. Перезагрузка системы:
    Для применения всех изменений и подготовки системы к работе с новой конфигурацией, выполните перезагрузку:

    sudo reboot
  5. Отладка:
    Если подключение к сети не работает, осмотрите логи системных сообщений следующей командой:

    journalctl -xe

    Это может помочь выявить другие проблемы с конфигурацией сети.

В заключение, при использовании Raspberry Pi для подключения к скрытой сети Wi-Fi, важно учесть особенности версии netplan и ограничения, связанные с поддержкой скрытых сетей. Для решения этой задачи может быть необходимо применить неофициальные решения. Это позволит убедиться, что ваше устройство полноценно работает в заданной сетевой архитектуре.

Оцените материал
Добавить комментарий

Капча загружается...