如何在 OS X 10.5 中删除路线

如何在 OS X 10.5 中删除路线

我以某种方式将我的 Mac 配置为将所有针对特定 IP 名称 (sample.com) 的请求路由到环回地址 (127.0.0.1)。现在我想删除它,但无法确定在哪里删除。

  1. /etc/hosts 下没有它的条目。
  2. 路由表显示它正在将 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

因此关键似乎在于这是一个主机别名。

  1. 我发现了一个有用的帖子

  2. 我检查了缓存中的主机

    sudo dscacheutil -cachedump -entries 主机

  3. 我发现 /Local/Default 下列出了主机别名

  4. 我检查了目录服务:

    sudo dscl localhost -list 本地/默认/主机

  5. 果然在那里!

  6. 我删了它:

    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 恐怖。

相关内容