在我当前的设置中,我有一个dnsmasq
在我的家庭服务器 (Void Linux) 上运行的实例和 3 个使用它作为默认 dns 的 GNU/Linux 设备(1 个 Manjaro、1 个 Arch、1 个 Linux Mint 20.1)。
由于看似不相关的问题,我正在使用 测试 mdns 名称解析getent
,并且我注意到,通过查看dnsmasq
日志和运行,如果尚未指定域,strace getent
它getent
会自动附加顶级域。.station
getent hosts home-server
结果是
dnsmasq[24671]: query[AAAA] home-server.station from 192.168.0.6
dnsmasq[24671]: forwarded home-server.station to 9.9.9.9
dnsmasq[24671]: query[AAAA] home-server.station from 192.168.0.6
dnsmasq[24671]: forwarded home-server.station to 9.9.9.9
dnsmasq[24671]: query[AAAA] home-server.station from 192.168.0.6
dnsmasq[24671]: forwarded home-server.station to 9.9.9.9
dnsmasq[24671]: forwarded home-server.station to 95.216.24.230
dnsmasq[24671]: forwarded home-server.station to 89.233.43.71
dnsmasq[24671]: forwarded home-server.station to 78.46.244.143
dnsmasq[24671]: forwarded home-server.station to 146.255.56.98
dnsmasq[24671]: forwarded home-server.station to 78.46.244.143
dnsmasq[24671]: forwarded home-server.station to 146.255.56.98
dnsmasq[24671]: forwarded home-server.station to 78.46.244.143
dnsmasq[24671]: forwarded home-server.station to 146.255.56.98
dnsmasq[24671]: forwarded home-server.station to 45.90.57.121
dnsmasq[24671]: forwarded home-server.station to 80.67.169.40
dnsmasq[24671]: forwarded home-server.station to 104.244.78.231
dnsmasq[24671]: reply home-server.station is NXDOMAIN
dnsmasq[24671]: query[AAAA] home-server from 192.168.0.6
在 dnsmasq 日志上和
socket(AF_INET, SOCK_DGRAM|SOCK_CLOEXEC|SOCK_NONBLOCK, IPPROTO_IP) = 4
setsockopt(4, SOL_IP, IP_RECVERR, [1], 4) = 0
connect(4, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("192.168.0.100")}, 16) = 0
poll([{fd=4, events=POLLOUT}], 1, 0) = 1 ([{fd=4, revents=POLLOUT}])
sendto(4, "\2\17\1\0\0\1\0\0\0\0\0\0\vhome-server\7station"..., 37, MSG_NOSIGNAL, NULL, 0) = 3
呼叫getent
与strace
.
我无法找到有关.station
TLD 的任何信息。
有谁知道为什么getent
会有这种默认行为,它.station
来自哪里?
我/etc/nsswitch.conf
hosts
在 Manjaro 上的线路
hosts: files mymachines mdns4_minimal [NOTFOUND=return] resolve dns mdns4 myhostname
在薄荷
hosts: files mdns4_minimal [NOTFOUND=return] dns myhostname
答案1
getent hosts
hosts
执行 行nsswitch.conf
告诉它执行的操作。表示strace
它正在向 192.168.0.100 发送单播 DNS 查询。
您有两个可以使用单播 DNS 的主机名解析服务:resolve
和dns
。其中之一或两者显然已被配置(可能由您的 DHCP 客户端)用作station
您的 DNS 默认域。
对于resolve
,运行resolvectl status
。对于dns
,运行cat /etc/resolv.conf
。这应该告诉您哪个 DNS 解析服务station
配置了域。
(除非配置为不使用常规 DNS,否则两者一起resolve
使用有点像腰带式配置:通常您只需要其中之一。)resolve
dns
如果您使用 NetworkManager 配置网络接口并使用 DHCP,您可能会查看最新的*.lease
文件(或同等文件;这可能取决于 NetworkManager 配置使用的 DHCP 客户端)以/var/lib/NetworkManager
查看哪个 DHCP 服务器实际为您提供了 IP地址以及随之而来的附加 DHCP 选项。
查看 DHCP 服务器提供的 DHCP 选项的另一种方法是运行nmcli c show
以列出已配置的连接,查找活动连接的名称,然后使用nmcli c show <name of active connection> | grep DHCP..OPTION
.
由于 Vodafone Power Station 是您的路由器,因此它很可能还充当您家庭网络的 DHCP 服务器。.station
可能只是 DNS 域的出厂默认设置,它会将该设置传播到所有 DHCP 客户端。它可能可以通过路由器的设置进行更改。
答案2
由于不相关的问题,我最终检查了/etc/resolv.conf
,它是由NetworkManager
我用作客户端的所有发行版创建的。
根据@Kusalananda的建议,似乎沃达丰发电站导致网络管理员将选项添加search station
到文件中,并将其IP地址作为DNS服务器;删除这一行会导致http://vodafone.station
Firefox 上的名称解析失败(这本身很奇怪,因为该名称仍然由该站的 DNS 解析)