我怎么会损坏我的 Mac OS X 主机呢?

我怎么会损坏我的 Mac OS X 主机呢?

不久前,我将主机中的 reddit.com 设置为 127.0.0.1,因为这太耗时了。我不记得具体是怎么设置的了——我只记得我遇到了一些麻烦,在找到“正确”的方法之前尝试了几种不同的方法,所以我可能做了一些奇怪的事情。

现在,无论我做什么,我都无法取消设置它或将其设置为其他值 - 它以某种方式“卡”在 127.0.0.1 上。

$ sudo nano /etc/hosts
Password:

我添加了以下两行:

208.96.53.70 reddit.com
208.96.53.70 reddit2.com

保存,退出,然后:

$ dscacheutil -flushcache
$ ping reddit.com
PING reddit.com (127.0.0.1): 56 data bytes
$ ping reddit2.com
PING reddit2.com (208.96.53.70): 56 data bytes

如果我根本没有指定 reddit.com,也会发生同样的情况。

我遗漏了什么??我的 hosts 文件中没有 reddit.com 的其他条目。这不是路由器或 ISP 的问题 - 同一路由器上的其他计算机都很好。它还能在哪里定义?

为了完整起见,我清理了主机中的所有内容,其中仅包含以下内容:

##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1       localhost
255.255.255.255 broadcasthost
::1             localhost
fe80::1%lo0     localhost

答案1

听起来你可能在 DSLocal 中创建了主机条目,而不是 /etc/hosts。要找出原因,请运行:

dscl /Search -read /Hosts/reddit.com

它应该返回如下内容:

AppleMetaNodeLocation: /Local/Default
IPAddress: 127.0.0.1
RecordName: reddit.com
RecordType: dsRecTypeStandard:Hosts

看到 AppleMetaNodeLocation 了吗?它告诉你它从哪里获取信息。如果它显示/BSD/local,它位于 /etc/hosts 中;如果它显示/Local/Default(我怀疑它会显示),那就是默认的本地目录节点,又名 DSLocal。如果它显示<dscl_cmd> DS Error: -14136 (eDSRecordNotFound),那么我不知道你做了什么。

无论如何,假设该条目来自 DSLocal,则很容易删除:

sudo dscl /Local/Default -delete /Hosts/reddit.com

答案2

尝试

dscacheutil -flushcache
ping reddit.com

并汇报。

答案3

看来你需要运行

sudo niload -v -m hosts . < /etc/hosts

如果您希望更改生效,请在更新 hosts 文件后进行。

相关内容