Вопрос или проблема
Я использую VMBox 7.0.18 с установленной на нем гостевой Ubuntu. Я пробовал различные способы связи с моими .local сервисами из гостевой системы, но безуспешно. Конфигурация NAT и мостовая настройка не помогли.
Мне нужен DNS-SD в точном исполнении (без обходных путей, таких как проброс портов или доступ по IP), потому что инструмент, который я использую, зависит от DNS-SD, и он доступен на системах Linux.
Как я могу этого достичь?
Вот некоторые, возможно, полезные команды:
$ uname -a
Linux Ubuntu 6.8.0-45-generic #45~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Wed Sep 11 15:25:05 UTC 2 x86_64 x86_64 x86_64 GNU/Linux
$ nslookup rpipicow.local
;; Получен ответ SERVFAIL от 127.0.0.53
Сервер: 127.0.0.53
Адрес: 127.0.0.53#53
** сервер не может найти rpipicow.local: SERVFAIL
$ ifconfig
enp0s8: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.100.173 netmask 255.255.255.0 broadcast 192.168.100.255
inet6 fe80::f2d7:1072:a8d5:2566 prefixlen 64 scopeid 0x20<link>
ether 08:00:27:a5:ec:d7 txqueuelen 1000 (Ethernet)
RX пакеты 7216 байты 7622267 (7.6 MB)
RX ошибки 0 потеряно 2 переполнений 0 кадров 0
TX пакеты 2076 байты 188481 (188.4 KB)
TX ошибки 0 потеряно 0 переполнений 0 carrier 0 коллизий 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX пакеты 196 байты 18448 (18.4 KB)
RX ошибки 0 потеряно 0 переполнений 0 кадров 0
TX пакеты 196 байты 18448 (18.4 KB)
TX ошибки 0 потеряно 0 переполнений 0 carrier 0 коллизий 0
Оказалось, что nslookup
— это неправильная команда для обнаружения локальных сервисов mDNS, теперь я протестировал с avahi-browse -a
, и она успешно их обнаруживает.
Испытанный сетевой адаптер — мостовой.
Ответ или решение
Для успешного поиска локальных сервисов на Ubuntu-госте в VirtualBox с Windows хостом, вам действительно нужно использовать корректные инструменты для работы с mDNS (Multicast DNS), такой как avahi
. Рассмотрим все необходимые шаги для обеспечения корректной работы.
Настройка сети в VirtualBox
-
Выбор сетевого адаптера: Вы правильно отметили, что используете режим "Bridged". Это наиболее подходящий вариант для вашего случая, так как он позволяет виртуальной машине (VM) находиться в одной сети с хостом.
- Откройте настройки вашей виртуальной машины в VirtualBox.
- Перейдите на вкладку "Сеть".
- Убедитесь, что адаптер включен и выбран режим "Сетевой мост" (Bridged Adapter).
- Выберите сетевой адаптер, который используется вашим Windows хостом (например, Ethernet или Wi-Fi).
-
Перезапустите сеть на виртуальной машине:
После изменения настроек сети вам необходимо перезапустить сетевой интерфейс на Ubuntu-госте. Выполните следующие команды в терминале:sudo systemctl restart network-manager
Установка и настройка Avahi
-
Убедитесь, что Avahi установлен:
Если Avahi не установлен, выполните команду:sudo apt update sudo apt install avahi-daemon avahi-utils
-
Запустите Avahi:
Убедитесь, что сервис Avahi запущен:sudo systemctl start avahi-daemon sudo systemctl enable avahi-daemon
-
Проверка работы Avahi:
Чтобы проверить, что ваши службы mDNS доступны, используйте:avahi-browse -a
Эта команда отобразит все доступные сетевые услуги, которые могут быть обнаружены через mDNS.
Проверка конфигурации
-
Проверка IP-адреса:
Убедитесь, что ваш Ubuntu-гость получил IP-адрес из той же подсети, что и ваш хост. Вы можете использовать командуifconfig
илиip a
для проверки адреса. -
Анализ конфигурации DNS:
Убедитесь, что DNS-серверы настроены правильно. Использованиеsystemd-resolve
может помочь определить, работают ли ваши запросы DNS корректно. Для проверки текущих DNS-ресолверов выполните:systemd-resolve --status
Проблемы с nslookup
nslookup
действительно не является корректным инструментом для работы с mDNS. Используйте avahi-browse
или другие инструменты, такие как dns-sd
(в зависимости от установленного программного обеспечения).
Заключение
Если вы выполните вышеуказанные шаги, у вас не должно возникнуть проблем с обнаружением локальных сервисов в Ubuntu-госте через Avahi. Если, несмотря на это, у вас останутся трудности, возможно, стоит проверить настройки фаервола или другие сетевые параметры как на хосте, так и на госте.
Если у вас есть дополнительная информация или вопросы, пожалуйста, сообщите, и я с радостью помогу.