/etc/hosts 文件被忽略

/etc/hosts 文件被忽略

显然,我的主机文件被忽略了。

它包含了:

127.0.0.1 localhost.localdomain localhost
127.0.0.1 mydomain.com
127.0.0.1 无处

如果我 ping localhost 或“无处可去”,我会收到“未知主机”错误。如果我 ping mydomain.com,ping 成功,但它会报告 mydomain.com 的互联网 IP 地址(来自外部名称服务器)。

服务器正在运行 ubuntu hardy。有没有办法禁用(并重新启用)/etc/hosts 文件?

答案1

我发现了问题。

/etc/hosts 文件的权限过于严格 -rw------ (我相信是八进制 600)。将其更改为模式 644 解决了该问题。

我使用普通权限进行 ping 测试,结果主机文件无法读取。我最初的问题是让 postgresql 正确启动;它以 root 权限启动,但在启动其子进程进行自动清理等操作之前显然会放弃权限,因此当它需要解析域时,它无法读取主机文件。

感谢所有回复的人。这很有启发。

答案2

检查 /etc/nsswitch.conf

你应该有如下一行:

hosts: files dns

如果缺少“文件”部分,则不会检查 /etc/hosts。

答案3

某些发行版上的 hosts 文件有时很奇怪,请尝试将所有 localhost 别名放在同一行中

像这样 :

127.0.0.1 localhost.localdomain localhost mydomain.com nowhere

答案4

不确定 ubuntu 的具体情况,但似乎您的本地解析器配置不正确。您应该尝试man resolv.confman nslookup了解如何配置它。

相关内容