主机文件似乎被忽略

我有几乎新鲜的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 之前所使用的。

dignslookup也是如此 – 它们也是DNS特定的。

host命令(与dignslookup )是bind DNS实用程序的一部分。 作为一个DNSparsing程序实用程序,它单独执行DNSparsing。

如果您有兴趣从任何libnss驱动的数据存储中获取条目,则可以使用getent程序。 例如,要获取主机条目,请使用以下命令:

 getent hosts google.com 

这遵循hosts:下的parsing顺序hosts:/etc/nsswitch.conf中按顺序,其中包括/etc/hosts如果“files”被作为选项之一)。

对于我来说这个问题是由于不正确的文件权限。 只有root可以读取/ etc / hosts。 该文件应该是世界可读的。