Как публиковать имена хостов машин 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 минут, чтобы забрать чужие коробки.

Другие вопросы по тегам