在 Mac OS X 10.5.8 中出现“无路由到主机”

在 Mac OS X 10.5.8 中出现“无路由到主机”

我网络上的一台计算机出现了问题。这是一台运行 OS X 10.5.8 的 iMac。

问题是无法访问某些网站。例如,计算机无法连接的网站之一是 farmville.com。

当我 ping farmville.com 时,它返回“没有到主机的路由”:

$ ping farmville.com
PING farmville.com (50.16.253.102): 56 个数据字节
ping:sendto:没有到主机的路由
ping:sendto:没有到主机的路由
ping:sendto:没有到主机的路由

当我跟踪 farmville 的路由时:

$ traceroute farmville.com
traceroute:警告:farmville.com 有多个地址;使用 50.16.253.109
跟踪路由至 farmville.com (50.16.253.109),最大 64 跳,40 字节数据包
traceroute:sendto:没有到主机的路由
  1 traceroute:写入 farmville.com 40 个字符,ret=-1

跟踪 farmville 的 ip 地址: 50.16.253.109

$ 跟踪路由 50.16.253.109
跟踪路由至 farmville.com (50.16.253.109),最大 64 跳,40 字节数据包
traceroute:sendto:没有到主机的路由
  1 traceroute:写入 farmville.com 40 个字符,ret=-1

现在有趣的部分我在另一台电脑(运行 Ubuntu 10.10)上访问这个网站没有任何问题。这说明问题不在于互联网连接。我也禁用了路由器上的防火墙,但无济于事。

mac 中的 /etc/hosts 文件如下。/private/etc/hosts 文件为空:

##
# 主机数据库
#
# localhost 用于配置环回接口
# 在系统启动时。请勿更改此条目。
##
127.0.0.1 本地主机
#255.255.255.255 广播主机
::1 本地主机
fe80::1%lo0 本地主机

任何帮助都将受到赞赏。

非常感谢

答案1

我猜这与 ICMP 被阻止无关。如果是这种情况,响应将只是超时,而不会导致“无路由到主机”消息。“无路由到主机”的意思正是:当 ICMP 消息的目标不在本地子网上时,它将被转发到机器的默认网关以供其处理。如果没有默认网关,或者网关的路由表中没有转发数据包的信息,您将看到“无路由到主机”。

您的 ping 和 traceroute 命令都将域名解析为 IP 地址(尽管是不同的地址),因此看起来 DNS 解析可能工作正常。因此,我首先要仔细检查您的默认网关是否相同/在 iMac 上是否配置正确。

此外,据我所知,当两者都连接时,OS X 似乎更倾向于使用 WiFi 而不是有线连接。检查您是否只连接了一个(如果您恰好同时使用两个),然后看看它是否正常工作。

答案2

ICMP 可能在某处被阻止(但不是您的防火墙,因为您已禁用它),一些 ISP 仍然会出于各种原因这样做(例如,他们运行的操作系统存在利用 ICMP 的安全漏洞,错误地认为 ICMP 存在安全风险,等等)。

尝试运行 traceroute 并从其他站点执行 ping 操作,看看是否有效。我尝试从 Shaw.CA 网络 ping 第一个 IP 地址,并得到了相当快的回复。

答案3

这里有奇怪的东西吗?ping 到50.16.243.102。您的 Traceroute 到 呢50.16.243.109

现在,我已在此处运行了两个 IP,并且运行正常。但很简单,在类似情况下,验证两台计算机的 DNS 和网关。

确保它们的 DNS 服务器相同,并确保两台计算机的默认网关相同。

Asmus 和 Gordon 的建议都很重要,并且对于进一步调试这个问题非常有帮助。

相关内容