Как публиковать имена хостов машин Ubuntu с помощью Avahi
Как настроить Avahi в Ubuntu для автоматической трансляции и обнаружения информации DNS для каждого сервера Linux в локальной сети?
Я запустил это на моем локальном хосте (hostname mylocalhost
) и тестовый сервер (hostname mytestserver
), но все поиски имени хоста все еще терпят неудачу:
$ sudo apt-get install avahi-daemon
$ sudo nano /etc/avahi/avahi-daemon.conf
-#host-name=foo
+host-name=<hostname>
-#publish-addresses=yes
+publish-addresses=yes
$ sudo service avahi-daemon restart
$ sudo update-rc.d avahi-daemon defaults
$ avahi-daemon --check
$ host mytestserver
Host mytestserver not found: 3(NXDOMAIN)
$ host mytestserver.local
Host mytestserver.local not found: 3(NXDOMAIN)
$ ping mytestserver
ping: unknown host mytestserver
$ ping mytestserver.local
ping: unknown host mytestserver.local
Я подтвердил, что мой брандмауэр отключен, поэтому его не следует блокировать. Я также прочитал вики-страницу Ubuntu по Zeroconf и mDNS, но это не помогло.
Что я делаю неправильно?
1 ответ
$ host mytestserver
Host mytestserver not found: 3(NXDOMAIN)
$ ping mytestserver
ping: unknown host mytestserver
Имя хостаmytestserver
не в/etc/hosts
ни настройка локального/LAN DNS. Это не имеет ничего общего с авахи.
$ host mytestserver.local
Host mytestserver.local not found: 3(NXDOMAIN)
$ ping mytestserver.local
ping: unknown host mytestserver.local
Это связано с авахи, проверьте ниже.
В/etc/nsswitch.conf
,hosts
строка должна быть следующей:
hosts: files mdns4_minimal [NOTFOUND=return] dns
files
означает проверку /etc/hosts, затемmdns4_minimal
значит проверь авахи.
Есть несколько вещей, которые стоит проверить./etc/avahi/avahi-daemon.conf
.
Вserver
раздел,allow-interfaces
должен быть отключен/закомментирован или иметь интерфейс, который вы намеревались использовать avahi:
#allow-interfaces=
Использоватьnetstat
чтобы проверить, еслиavahi
прослушивает все интерфейсы:
# netstat -npl|grep avahi
udp 0 0 0.0.0.0:5353 0.0.0.0:* 696/avahi-daemon: r
udp6 0 0 :::5353 :::* 696/avahi-daemon: r
Я столкнулся с несколькими случаями, когда строка была раскомментирована и содержала неправильный интерфейс, что блокировало avahi в целевой сети.
Вpublish
раздел, наборpublish-workstation
на да (по умолчанию нет):
publish-workstation=yes
В общем,publish-addresses=yes
, который используется по умолчанию, должно быть достаточно. Однако при отсутствии запущенной службы общего доступа (vnc/samba/etc) иногда (по прошлому опыту) avahi не публикует/объявляет машину. Итак, мы включаемpublish-workstation=yes
заставить его.
И последнее замечание: иногда авахи требуется от 2 до 5 минут, чтобы забрать чужие коробки.