Ubuntu использует «avahi» для поиска имени хоста в локальной сети, что позволяет мне находить другие компьютеры, просто добавляя «.local» к имени, например, laptop.local или desktop.local.
Однако, похоже, что avahi не выполняет обратный поиск IP-адресов компьютеров в локальной сети. Поэтому, когда приложения ищут IP-адреса для локальных компьютеров, запрос отправляется на интернет-DNS-сервер в Интернете, который возвращает NXDOMAIN (имя не существует).
Возможно ли, что avahi выполняет обратный поиск для IP-адресов? Если это так, как мне это сделать?
dig также может выполнять обратный поиск DNS, используя avahi:
dig -x 192.168.0.1 @224.0.0.251 -p 5353
Для этого есть команда avahi: avahi-resolve-address
. Например :
avahi-resolve-address 192.168.0.1
Или эквивалентный вариант:
avahi-resolve --address 192.168.0.1
Да, avahi поддерживает обратный поиск IP-адресов для имен .local, которые зарегистрированы в локальной сети. Однако большинство команд для выполнения тестовых запросов связываются с DNS-серверами напрямую, без использования avahi. Чтобы подтвердить, что это работает в командной строке, вы должны использовать команду getent hosts
вместо nslookup
, dig
или host
.
Например, вы можете искать IP-адрес, используя следующие команды:
$ nslookup 192.168.0.1
$ dig -x 192.168.0.1
$ host 192.168.0.1
$ getent hosts 192.168.0.1
Только команда getent hosts
вернет соответствующее имя, потому что это единственная команда, которая использует avahi для выполнения обратный поиск.
(На самом деле, это также относится к поиску имен, но обычно проще просто набрать ping hostname.local
, который выполняет поиск по имени с помощью DNS или avahi и одновременно проверяет подключение.)