我以某种方式将我的 Mac 配置为将所有针对特定 IP 名称 (sample.com) 的请求路由到环回地址 (127.0.0.1)。现在我想删除它,但无法确定在哪里删除。
- /etc/hosts 下没有它的条目。
- 路由表显示它正在将 IP 名称映射到 Mac 的 IP 地址。
路由表输出如下:
互联网: 目标网关标志 Refs 使用 Netif 过期 默认 192.168.2.1 UGSc 4 1 en0 127 示例.com UCS 0 0 lo0 sample.com sample.com UH 1 7093 lo0 169.254 链接#4 UCS 0 0 en0 192.168.2 链接#4 UCS 6 0 en0 192.168.2.1 0:11:22:22:3f:fa UHLW 20 55565 en0 1070 192.168.2.15 tsema.org UHS 0 9 lo0 192.168.2.255 链接#4 UHLWb 4 84777 en0
任何帮助将不胜感激!
更新:注意 - 我可以删除到 192.168.2.15 地址的路由 - 但不能删除环回。我猜它需要在其他地方删除...
答案1
因此关键似乎在于这是一个主机别名。
我发现了一个有用的帖子
我检查了缓存中的主机
sudo dscacheutil -cachedump -entries 主机
我发现 /Local/Default 下列出了主机别名
我检查了目录服务:
sudo dscl localhost -list 本地/默认/主机
果然在那里!
我删了它:
sudo dscl localhost -删除 Local/Default/Hosts/sample.com
在某个时候我们会看看重启后它是否仍然消失,但现在,问题已经解决!
答案2
您也可以尝试刷新路由表!
# cf. http://ola-bini.blogspot.com/2008/05/faulty-routes-on-macos-x.html
sudo route flush
要删除特定路线,请使用:
sudo route delete <ipnum> 127.0.0.1
要获取默认路由使用:
route -n get default
netstat -rnf inet # ... and compare it with the Routing tables
作为最后的手段,请用下面的原始内容替换当前/etc/hosts
文件的内容,然后重新启动计算机。
# original /etc/hosts on Mac OS X 10.6
##
# 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
答案3
在终端中执行以下操作:route delete sample.com
答案4
正如在有用的帖子你会发现,OS X 现在读起来/etc/hosts
就像其他操作系统一样,所以不再需要调用 NetInfo 的 Cthulhoid 恐怖。