Вопрос или проблема
У меня есть Raspberry Pi 5 с именем raspberrypi
. Я могу получить к нему доступ с хоста Windows 10, используя имя raspberrypi.local
.
Доступ к этому имени из гостевой системы VirtualBox с Arch Linux завершается с ошибкой: “имя или сервис недоступен”.
Как подключиться к raspberrypi.local
из виртуальной машины с Arch Linux?
Хост – Windows 10 22H2 (AMD60) сборка 19045.4046.
Я использую Virtualbox 7.0.18 с актуальной установкой Arch Linux.
Ответ или решение
Теория
Проблема, описанная в вашем вопросе, связана с невозможностью разрешить доменные имена через протокол mDNS (Multicast DNS) из виртуальной машины под управлением Arch Linux в VirtualBox, находящейся в одной сети с Raspberry Pi, именуемым как raspberrypi.local
. В Windows 10 это имя доступно благодаря системе Bonjour, встроенной в ОС. Однако, в Linux такой функционал по умолчанию отсутствует, что может вызвать проблему с разрешением mDNS.
Пример
Распространённым примером решения этой проблемы является установка и настройка Avahi – это реализация модуля мDNS для Linux. Avahi позволяет Linux-системам участвовать в сетях, где используется протокол ZeroConfiguration для обнаружения служб, что и используют современные десктопные операционные системы для подключения к устройствам без предварительной настройки (например, к принтерам или сетевым накопителям).
Применение
Для разрешения проблемы необходимо следовать следующим шагам:
-
Установка Avahi:
Откройте терминал в вашем Arch Linux и выполните следующую команду для установки Avahi:sudo pacman -S avahi nss-mdns
-
Изменение конфигурации NSSwitch:
Настройте/etc/nsswitch.conf
, чтобы убедиться, что mDNS-домены могут быть разрешены. Найдите строку, начинающуюся сhosts:
и добавьтеmdns
передresolve
илиdns
, например:hosts: files mdns4_minimal [NOTFOUND=return] dns myhostname
-
Запуск и включение Avahi:
Выполните следующие команды, чтобы запустить и настроить Avahi так, чтобы он автоматически запускался при загрузке системы:sudo systemctl start avahi-daemon sudo systemctl enable avahi-daemon
-
Проверка подключения:
После выполнения этих шагов попробуйте снова подключиться кraspberrypi.local
с вашей виртуальной машины. Для этого откройте терминал и введите:ping raspberrypi.local
Если имя успешно разрешено, пинг должен начать отвечать от адреса Raspberry Pi.
Следуя этим рекомендациям, вы настроите Arch Linux на виртуальной машине для поддержания mDNS и сможете успешно подключаться к Raspberry Pi по имени raspberrypi.local
.