我有几乎新鲜的Ubuntu桌面盒。 操作系统是在两周前安装的,并由业界知识库更新。 上周我没有问题与DNS。 但是这周有些事情已经改变了。 我不知道什么时候,什么时候不知道我是否改变了任何configuration。
所以现在我有一些非常奇怪的情况。 根据日志名称parsing应该正常工作。
/ etc / hosts文件
127.0.0.1 localhost test 127.0.1.1 desktop
是/etc/host.conf
order hosts,bind multi on
在/etc/resolv.conf
# Generated by NetworkManager search search servers obtained via DHCP nameserver 192.168.0.3
/etc/nsswitch.conf中
passwd: compat group: compat shadow: compat hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4 networks: files protocols: db files services: db files ethers: db files rpc: db files netgroup: nis
但如果事实不是。
用户@testing〜> pingtesting
PING localhost (127.0.0.1) 56(84) bytes of data. [skip]
Pinging是好的。
用户@testing〜>主机testing
test.mydomain.com has address xx.xxx.161.201
我怀疑NetworkManager可能会导致这种不当行为,但不知道从哪里开始检查它。 任何想法,build议?
使用此configuration,大多数应用程序将愉快地从/etc/hosts 。
但是host不看/etc/nsswitch.conf 。 这是devise,而不是偶然,因为host是专门的DNS查找程序。 /etc/hosts不是DNS,它(主要)是我们在使用DNS 之前所使用的。
dig和nslookup也是如此 – 它们也是DNS特定的。
host命令(与dig和nslookup )是bind DNS实用程序的一部分。 作为一个DNSparsing程序实用程序,它单独执行DNSparsing。
如果您有兴趣从任何libnss驱动的数据存储中获取条目,则可以使用getent程序。 例如,要获取主机条目,请使用以下命令:
getent hosts google.com
这遵循hosts:下的parsing顺序hosts:在/etc/nsswitch.conf中按顺序,其中包括/etc/hosts如果“files”被作为选项之一)。
对于我来说这个问题是由于不正确的文件权限。 只有root可以读取/ etc / hosts。 该文件应该是世界可读的。