我在我的一台机器上安装了 dnsmasq(它是 Kubuntu 12.04 LTS),仅支持/etc/hosts
(直到后来才连接到互联网)。现在,如果我dig mymachine
,我会得到 192.168.0.1,但如果我尝试nslookup mymachine
,我会得到:
>> connection timed out; no servers could be reached
也尝试过nslookup mymachine.mynicedomain.org
- 也没有用。ping (编辑:)成功。这种情况发生两个都在服务器机器本身上以及网络上的其他机器上。
如何让 DNS 查找正常工作?什么问题阻碍了 nslookup 成功?
附加信息
在服务器中/etc/hosts
:
192.168.0.1 mymachine
在服务器中nsswitch.conf
:
hosts: files mdns4_mininal [NOTFOUND=return] dns mdns4
(不可否认,这有点奇怪;但我也尝试过:
hosts: files dns
相反,效果是一样的)
在resolv.conf
(由 dnsmasq 生成):
nameserver 127.0.0.1
search mynicedomain.org
在服务器中/etc/hosts.allow
:
domain: ALL
在其他机器上/etc/resolv.conf
(由 DHCP 客户端设置):
nameserver 192.168.0.1
search mynicedomain.org
服务器上相关的netstat输出:
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN
tcp 0 0 192.168.0.1:53 0.0.0.0:* LISTEN
最后,这是ipconfig
网络上一台客户端机器的输出(运行 Windows 7):
Connection-specific DNS Suffix . : mynicedomain.org
Description . . . . . . . . . . . : Intel(R) 82579LM Gigabit Network Connection
Physical Address. . . . . . . . . : 12-34-56-78-9A-BC
DHCP Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes
IPv4 Address. . . . . . . . . . . : 192.168.0.50(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Lease Obtained. . . . . . . . . . : Sunday, October 20th 2013 16:20:25
Lease Expires . . . . . . . . . . : Sunday, October 20th 2013 18:20:24
Default Gateway . . . . . . . . . : 192.168.0.1
DHCP Server . . . . . . . . . . . : 192.168.0.1
DNS Servers . . . . . . . . . . . : 192.168.0.1
NetBIOS over Tcpip. . . . . . . . : Enabled
笔记:
- 可能与这个问题。
答案1
您是否已配置您的/etc/resolv.conf
?如果没有,则应如下:
search mynicedomain.org
nameserver 192.168.0.1
当您使用 BIND 或其他 DNS 服务器时,您应该/etc/nsswitch.conf
相应地更改文件。
有以下选项可用:
- 域名系统:使用域名系统 (DNS) 服务来解析地址。这仅适用于主机地址解析,不适用于网络地址解析。此机制使用 /etc/resolv.conf 文件。
- 文件:在本地文件中搜索主机或网络名称及其对应的地址。此选项使用传统的 /etc/hosts 和 /etc/network 文件。
您的/etc/nsswitch.conf
文件应该包含类似这样的内容,以启用 DNS 查找。
hosts: dns files