更新

更新

我不明白为什么最后会收到“错误的目标地址”。

DNS 工作原理:

root@pc:~# nslookup foo.bar.local
Server:     127.0.1.1
Address:    127.0.1.1#53

Name:   foo.bar.local
Address: 10.100.71.28

跟踪路由到 IP 的工作原理:

root@pc:~# tcptraceroute 10.100.71.28 443
Selected device eth1, address 172.17.6.82, port 34878 for outgoing packets
Tracing some path to 10.100.71.28 on TCP port 443 (https), 30 hops max
 1  172.17.6.254  0.401 ms  0.510 ms  0.402 ms
 2  10.130.4.2  0.941 ms  0.893 ms  0.800 ms
 3  * * *
 4  * * *
 5  10.100.63.11  17.915 ms  20.109 ms  17.054 ms
 6  10.100.71.28 [open]  22.654 ms  17.680 ms  21.081 ms

Tcptraceroute 到主机名不起作用???

root@pc:~# tcptraceroute foo.bar.local 443
Bad destination address: foo.bar.local

更新

其他命令(例如 ping 或 traceroute)也无法访问 foo.bar.local。

我没有得到任何输出:

getent hosts foo.bar.local

答案1

问题中的命令表明 DNS 正在运行并且 IP 网络正在运行。

怎么了? :-)

您的操作系统不像 nslookup 那样直接连接到 DNS。

名称服务交换机在操作系统向 DNS 询问该命令是否tcptraceroute foo.bar.local运行之前确实会发生这种情况。

我这样修复了它:

diff -r /var/tmp/etc-saved/nsswitch.conf /etc/nsswitch.conf
11c11
< hosts:          files mdns4_minimal [NOTFOUND=return] dns
---
> hosts:          files dns

相关内容