我有一台运行 Debian etch 的服务器。它运行邮件系统并发送邮件。邮件服务器工作正常,但奇怪的是服务器本身无法解析主机名。我可以正确使用 nslookup 和 dig。
#ping google.com
ping: unknown host google.com
#dig google.com
; <<>> DiG 9.2.4 <<>> google.com
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64443
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 4, ADDITIONAL: 4
;; QUESTION SECTION:
;google.com. IN A
;; ANSWER SECTION:
google.com. 300 IN A 209.85.229.104
google.com. 300 IN A 209.85.229.105
google.com. 300 IN A 209.85.229.106
google.com. 300 IN A 209.85.229.147
google.com. 300 IN A 209.85.229.99
google.com. 300 IN A 209.85.229.103
;; AUTHORITY SECTION:
google.com. 134830 IN NS ns1.google.com.
google.com. 134830 IN NS ns2.google.com.
google.com. 134830 IN NS ns3.google.com.
google.com. 134830 IN NS ns4.google.com.
;; ADDITIONAL SECTION:
ns1.google.com. 105732 IN A 216.239.32.10
ns2.google.com. 105732 IN A 216.239.34.10
ns3.google.com. 105732 IN A 216.239.36.10
ns4.google.com. 105732 IN A 216.239.38.10
;; Query time: 172 msec
;; SERVER: 212.175.236.100#53(212.175.236.100)
;; WHEN: Sun Dec 20 00:39:35 2009
;; MSG SIZE rcvd: 260
有一点我很怀疑,那就是有一个安装的包没有被另一个应用程序使用,叫做解析配置. 并创建一个符号链接至原始解析配置文件文件。
我的 iptables 列表是空的。
答案1
您的/etc/nsswitch.conf
文件应该包含类似这样的内容,以启用 DNS 查找。
hosts: files dns
Dig 是一个 DNS 实用程序,因此它会检查 DNS。qmail 也可能忽略 nsswitch.conf。大多数使用 C 库中的标准 DNS 调用的其他程序都遵守它。如果您的 dows 中不包含“dns”,则 DNS 查找在大多数情况下不起作用是很正常的。