我有一个 D-Link WiFi 扩展器 DAP-1320,不知何故,当它插入时,它使我的 Linux 盒子能够解析dlinkap.local
其 IP 地址。我不必添加任何东西/etc/hosts
。
在过去,一切都在/etc/hosts
和 的基础上进行/etc/resolv.conf
,但现在看看/etc/resolv.conf
,我看到“解析器”管理该文件,我所做的任何更改都将被覆盖。
我有点怀念 Linux 的旧时光:)
无论如何,设备允许其插入的网络通过名称来识别它的机制是什么?是 Bonjour 还是 UPnP?它是如何工作的?
答案1
DHCP 客户端通常将其名称发送到 DHCP 服务器。该名称通常记录在租用文件中,并且可以作为默认域下的条目添加到本地 DNS 服务器。 (有些路由器会使用.local
,尽管.localnet
会更合适。)如果您有注册域,请考虑将路由器上的域设置为子域,例如lan.example.com
.
该.local
域通常用于自动发现。它们是用于此服务的几个名称,例如mdns
、bonjour
和avahi
。现代解析器通常会从此服务返回名称。
根据操作系统,您可以使用nslookup
或host
命令检查 DNS 条目。仅当名称从 DNS 返回时,才会返回一个值。解析器库使用多个源,包括 DNS、/etc/hosts
以及可选的其他源,包括 mDNS、NIS、LDAP 等。在 Linux 上,这些应该在文件中列出etc/nsswitch.conf
。
avahi-daemon
您可以使用命令检查进程ps -ef | grep [a]vahi
。该命令avahi-resolve --name
可用于使用自动发现服务查找完全限定名称。
答案2
您可以通过浏览已知主机列表轻松检查它是否是组播 DNS (bonjour)。
$ avahi-browse -a