我无法登录 Facebook,因此我 ping 了域名并得到了以下结果:
ping www.facebook.com
使用 32 字节数据 Ping www.facebook.com [69.171.228.14]:
请求超时。
来自 204.15.23.57 的回复:目标网络不可达。
但是我ping这个IP是可以访问的。
使用 32 字节数据对 204.15.23.57 进行 ping 操作:
来自 204.15.23.57 的回复:字节=32 时间=190ms TTL=51
我意识到我的电脑出了问题,因为我尝试过使用不同的网络(在同一网络上其他设备可以连接到 Facebook)、重置路由器的路由表、清除我的电脑 arp 缓存……但这些都不起作用。
有人有什么主意吗?
答案1
您的命令显示的内容如下:
- 您的计算机已将 www.facebook.com 地址解析为 69.171.228.14
- 它正在尝试向其发送 ping 数据包
- 在数据包传输过程中,路由器(可能是你的路由器,地址为 204.15.23.57)无法找到通往 69.171.228.14 的路由
- 为了让您了解这一点,路由器 204.15.23.57 正在通过 ICMP 回复消息“目标网络不可达”通知您有关此情况。
在第二个命令中,您正在 ping 向您提供网络无法访问答复的路由器,而不是 Facebook 主机,因此毫不奇怪,您会收到它的答复。
正如您所指出的 - 这是由于 hosts 文件混乱造成的。如果您使用 nslookup 直接查询 DNS 服务器,您也可能会看到此问题:
nslookup
server 8.8.4.4
www.facebook.com
这将向您显示 Facebook 主机的实际地址,并且您会注意到它与给您的地址(69.171.228.14)不同,因此您会知道在 hosts 文件中查找,因为计算机通过 hosts 文件或 DNS 查询解析 IP 地址。
话虽如此,病毒能够更新 hosts 文件并不是一件好事,因为该文件只能由超级用户/系统(管理员、系统或 Linux 上的 root)写入。因此,这意味着病毒/木马对系统具有高级访问权限。
答案2
目标网络不可达是当您的设备发出的 ping 数据包无法找到到 IP 地址/域名的网络地址的路由时,命令提示符上显示的常见 ICMP 错误代码。
我已阅读您的评论,您通过清除计算机上的 Hosts 文件解决了此问题。是的,Windows Hosts 文件上的错误条目可能是导致此问题的众多原因之一。
您的计算机可能已受到攻击,并且某些恶意程序已获得足够的控制权来写入主机文件条目。在计算机上安装防病毒软件以防止此类攻击非常重要。
出现目标网络无法访问错误的最常见原因是计算机或路由器本身的路由表出现故障。如果是家庭网络,最好的解决方案是关闭网络上的路由器、调制解调器、集线器和 PC,然后在 2 分钟后重新启动它们。这称为电源循环,大多数情况下都有效。
来源: https://www.corenetworkz.com/2009/05/destination-net-unreachable-icmp-error.html
答案3
转到记事本C:\Windows\System32\drivers\etc\
并hosts
用记事本打开。
删除所有条目,如下所示:
173.252.110.27 facebook.com
173.252.112.23 www.facebook.com
173.252.112.23 login.facebook.com
69.171.242.27 upload.facebook.com
66.220.152.19 graph.facebook.com
173.252.101.48 pixel.facebook.com
173.252.100.27 apps.facebook.com
保存文件。
答案4
就我而言,我必须禁用 IPv6 才能解决此问题。出于某种原因,所有 ping 请求都默认为 IPv6。
如果我执行“ping google.com -4”,我会得到回复。这会强制它使用 IPv4。如果我执行不带 -4 的 ping,它将无法工作,其他任何东西(浏览器、电子邮件等)也无法工作。
虽然可能有更好的解决方案,但目前我只是在 NIC 属性中禁用了 IPv6,这立即解决了问题。