![除了在 CentOS 中使用 nslookup/dig 外,无法解析主机名](https://linux22.com/image/573484/%E9%99%A4%E4%BA%86%E5%9C%A8%20CentOS%20%E4%B8%AD%E4%BD%BF%E7%94%A8%20nslookup%2Fdig%20%E5%A4%96%EF%BC%8C%E6%97%A0%E6%B3%95%E8%A7%A3%E6%9E%90%E4%B8%BB%E6%9C%BA%E5%90%8D%20.png)
我无法解析主机名,除非使用 dig/nslookup。声明 hosts可以正常工作。DNSmasq 和 bind 均未运行。以下是运行时/etc/hosts
的输出:tcpdump port 53
dig google.com
21:02:49.269083 IP txxxxxx1.corp.mxxxxxxs.com.39872 > dxxxxxx3.corp.mxxxxxs.com.domain: 7362+ A? google.com. (28)
21:02:49.269614 IP dxxxxxx3.corp.mxxxxxxs.com.domain > txxxxxx1.corp.mxxxxxxs.com.39872: 7362 5/0/0 A ord08s07-in-f19.1e100.net,[|domain]
21:02:49.270506 IP txxxxxx1.corp.mxxxxxxs.com.33316 > dxxxxxx3.corp.mxxxxxxs.com.domain: 30910+ PTR? 83.225.125.74.in-addr.arpa. (44)
21:02:49.303321 IP dxxxxxx3.corp.mxxxxxxs.com.domain > txxxxxx1.corp.mxxxxxxs.com.33316: 30910*- 1/0/0 (83)
运行结果如下ping google.com
:
21:03:05.027197 IP txxxxxx1.corp.mxxxxxxs.com.59151 > dxxxxxx3.corp.mxxxxxxs.com.domain: 56092+ A? google.com. (28)
21:03:05.029069 IP dxxxxxx3.corp.mxxxxxxs.com.domain > txxxxxx1.corp.mxxxxxxs.com.59151: 56092 5/0/0 A ord08s07-in-f18.1e100.net,[|domain]
21:03:05.029309 IP txxxxxx1.corp.mxxxxxxs.com.58238 > dxxxxxx3.corp.mxxxxxxs.com.domain: 10345+ PTR? 82.225.125.74.in-addr.arpa. (44)
21:03:05.065058 IP dxxxxxx3.corp.mxxxxxxs.com.domain > txxxxxx1.corp.mxxxxxxs.com.58238: 10345*- 1/0/0 (83)
与主机名一起使用时,Ping 不会返回任何数据包。上面的结果从给出命令时起延迟了约 5 秒。我 ping IP 没有任何问题。
内容/etc/resolv.conf
:
nameserver 10.100.52.11
nameserver 10.100.52.13
这两个名称服务器与 dig 一起使用时都会得到良好的结果。
结果route -n
:
Destination Gateway Genmask Flags Metric Ref Use Iface
10.xxx.131.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
0.0.0.0 10.xxx.131.1 0.0.0.0 UG 0 0 0 eth0
内容/etc/hosts
:
127.0.0.1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
10.xxx.131.xxx txxxxxx1.corp.mxxxxxxs.com ast01
10.xxx.32.xxx mail.mxxxxxxs.com
UseDNS
如果设置为“是”,SSHD 甚至不允许登录。NSCD 正在运行: nscd 28525 0.0 0.0 233652 2900 ? Ssl 20:10 0:00 /usr/sbin/nscd
。
谢谢!
。 。 。 编辑
我解决了这个问题。 /etc/nsswitch.conf
有这样一行:
hosts: files wins dns
我将其改为:
hosts: dns files wins
现在一切都正常了。奇怪的是,直到上周一切都还运行正常。什么都没有改变,当然 DNS 也没有改变。希望这对某些人有帮助。
答案1
运行 ping 时,您是否依赖主机名补全(或 Windows 世界中的“dns 后缀附加”)来获取完全限定域名?如果是这样,则您/etc/resolv.conf
缺少domain
and/orsearch
选项。
nameserver 10.100.52.11
nameserver 10.100.52.13
domain corp.mxxxxxxs.com
这应该会自动将 corp.mxxxxxxs.com 附加到 $HOST,以便您拥有一个可以正确解析的 FQDN。
查看手册页更多细节。