我有一个问题,即使主机名存在于 /etc/hosts 中,也会从 DNS 中查找主机名。
我有以下配置:
/etc/host.conf:
order hosts,bind
Run Code Online (Sandbox Code Playgroud)
/etc/nsswitch.conf:
hosts: files dns
Run Code Online (Sandbox Code Playgroud)
/etc/resolv.conf:
nameserver <nameserver one>
nameserver <nameserver two>
Run Code Online (Sandbox Code Playgroud)
主机上运行的应用程序会发出一些内部和外部 API 请求。
从 tcpdump 中,我看到了对 /etc/hosts.conf 中列出的一些内部服务主机名的 DNS 查询。我正在使用的 tcpdump 命令是:
tcpdump -tqAlU -s0 port 53 and host <nameserver one>
Run Code Online (Sandbox Code Playgroud)
在转储中,我看到如下请求:
IP 10.0.80.11.domain > app004-private.51308: UDP, length 102
E...I2..>...
.P.
.........I.1E...:...Q.. localhost............ ..@.a.root-servers.net..nstld.verisign-grs.com.w..
IP app004-private.33828 > 10.0.80.11.domain: UDP, length 39
E..Ca.@.@.B.
.2.
.P..$.5./..3e.......... localhost.site.com.....
IP 10.0.80.11.domain > app004-private.33828: UDP, length 96
E..|....>.T;
.P.
.2..5.$.hU.3e.......... localhost.site.com................-.ns10.dnshost.com...dns.8w.............u.....
Run Code Online (Sandbox Code Playgroud)
请注意,localhost 正在发送到 DNS 以及 …