如果沒有指定 TLD,為什麼 getent 預設為 .station?
使用我目前的設置,我有一個
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
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
配置了域。(除非
resolve
配置為不使用正常 DNS,否則兩者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 客戶端。它可能可以從路由器的設置中更改。