无法在Mac OS X Server上解析localhost


10

我有一台运行OS X Server 10.5的服务器,它无法将localhost解析为127.0.0.1。

当我尝试ping时,会发生以下情况:

> ping本地主机
ping:无法解析本地主机:未知主机

SSH和Web浏览器得到相似的结果(未知主机)。如果我尝试使用127.0.0.1或在LAN上分配的IP地址,则上述所有工作都可以进行。

这是我的/ etc / hosts文件的内容:

>猫/ etc / hosts
##
#主机数据库
#
#localhost用于配置环回接口
#系统启动时。不要更改此条目。
##
127.0.0.1本地主机
255.255.255.255广播主机
:: 1本地主机 
fe80 :: 1%lo0本地主机

我没有运行本地DNS服务。

有谁知道为什么会发生这种情况或如何解决?


1
将/ etc / hosts重命名为/etc/hosts.justworks
ta.speot.is是2010年

服务器盒上的DNS设置是什么?您正在运行DNS服务吗?
毛茸茸的青蛙,2010年

Answers:


6

我在Mountain Lion(10.8.2)中遇到了同样的问题。我通过在“安全性和隐私”->“防火墙”->“防火墙选项”中禁用“隐身模式”来解决此问题。


还修复了El Capitan 10.11的问题
嫌疑犯,2015年

3

这可能与您的原始问题无关,但是还有另一个问题可能会影响Mac OS X Lion中的DNS查找,特别是localhost您可能在其中进行的其他任何条目/etc/hosts

显然,/etc/hosts文件不再支持文件中每行的多个域,因此每个记录都需要自己的行:

127.0.0.1 localhost
127.0.0.1 some.site.local
127.0.0.1 some.site.dev

通过Justin Carmony的博客找到了这一点。如果您正在使用/etc/hosts,他会继续描述其他一些“有趣的”行为,因此,如果仍然有问题,请继续阅读。


1

我知道已经有点晚了,但就我而言,将行尾更改为UNIX,用空格替换制表符并将文件另存为UTF-8,使其可以在Mountain Lion(10.8.2)上运行

希望这项工作对别人有用。


1

编码可能是一个问题,我使用Sublime Text编辑了/ etc / hosts,这使我陷入了问题,使用vi重新对其进行了解决。确保cat输出内容。


这发生在我身上!谢谢我疯了
Asgaroth

1

在我的计算机上(症状相同),我的/etc/hosts文件被剪裁成使用Macintosh行尾(CR- 0x13)而不是Unix行尾(LF- 0x10)。该文件是正确的。

我的解决方案是:

brew install dos2unix
sudo dos2unix -c mac /etc/hosts

0

我也有同样的问题。我刚刚安装了一台新的Mac笔记本电脑,直到我从旧的笔记本电脑迁移过来之前,它一直在工作。现在ping localhost无法解析。我必须在某些地方更改某些设置,但是我不知道在哪里...

我发现了“ ping localhost”。作品。附加尾随点意味着绕过在其他搜索域中搜索名称“ localhost”。太酷了,但我仍然不明白为什么/ etc / hosts条目不起作用...

编辑:解决。

bash-3.2# dscl . read /Hosts/localhost    
AppleMetaNodeLocation: /Local/Default
RecordName: localhost
RecordType: dsRecTypeStandard:Hosts
bash-3.2# ping localhost
ping: cannot resolve localhost: Unknown host
bash-3.2# dscl . append /Hosts/localhost IPAddress 127.0.0.1
bash-3.2# dscl . read /Hosts/localhost
AppleMetaNodeLocation: /Local/Default
IPAddress: 127.0.0.1
RecordName: localhost
RecordType: dsRecTypeStandard:Hosts
bash-3.2# ping localhost
PING localhost (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.083 ms
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.140 ms

瞧!

不知何故,目录服务记录与/ etc / hosts文件不同步。当目录服务配置中没有IP地址时,尝试解析该名称,然后转到询问DNS的mDNSResponder。


0

最后,它再次开始工作。我在服务器上发现了一些非常规的(和不必要的)DNS配置,并将其更改为应有的配置,也许可以解决问题?但我不确定,因为当时我没有尝试解决localhost问题,所以之前和之后我都没有测试过localhost。


0

我用Sublime Text编辑了/ etc / hosts并遇到了同样的问题,尝试用vi或nano编辑和保存/ etc / hosts文件,这对我来说已经解决了。


0

务必确保阅读Apache错误日志,因为在启动服务时并非所有错误都会在控制台中抛出。即使语法正确,也可能存在问题。

默认情况下,它们应存储在/ var / log / apache2 /中,并且日志文件为error.log。

我遇到了完全相同的问题,可以解决主机问题,而apache在控制台中没有发现任何问题。简单的“问题”是,在更换外部驱动器后无法创建error.log定义我的虚拟主机配置。


-1

删除主机文件,然后查看会发生什么。也可以重新启动而不连接任何网络。


我讨厌删除/ etc / hosts,因为它与我的其他Mac上的/ etc / hosts文件完全相同(并且那些文件可以解析localhost)。另外,这是我们的生产服务器...我尝试过重新启动而不连接任何网络,但是它仍然无法解析本地主机。
iainbeeston

在另一台Mac上(没有此问题),我只是尝试将/ etc / hosts重命名为其他名称,然后重新启动。它没有任何明显的区别,但是os x并没有用新副本替换/ etc / hosts。再次重申,除非操作系统要重新生成文件,否则我很想删除文件。
iainbeeston

如果这是生产服务器,则应该有最近的备份。从备份还原。
乔什(Josh K)2010年

恐怕这不是最近的问题-就像这样已经一年多了(只要我一直在工作)。因此,从备份还原将很困难。无论如何,我都希望找到问题的原因,而不仅仅是将所有事情都寄予厚望,希望它再次开始起作用!
iainbeeston

您并不是要“大刀阔斧”,这是标准程序,尤其是对于服务器。如果您发现问题,但找不到源,则解决该问题的最简单最常用的方法是从备份中还原。我要做的第一件事就是修复它。让问题恶化并不能使它们消失。
乔什·K
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.