显然,我的主机文件被忽略了。
它包含了:
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.conf
或man nslookup
了解如何配置它。