我正在使用 Ubuntu 12.04。我可以连接到一个无线网络(例如 A)并使用互联网,但无法连接到另一个网络(例如 B)。我可以连接到 B 并获取 IP 地址。
当我 ping 127.0.0.1 时,它可以工作。当我 ping 192.168.1.1 时,它也可以工作,但当我 ping 8.8.8.8 时,我得到无法访问目标主机的信息。
我尝试在 /etc/NetworkManager/NetworkManager.conf 中注释掉 dns=dnsmasq,但没有作用,然后重新启动网络管理器。
我也尝试使用 ip route flush cache 来刷新缓存,但是也没有用。
任何帮助,将不胜感激。
谢谢
答案1
另一个网络(网络 B)很可能有一个防火墙已实施,配置为阻止 ICMP 数据包(ping)。如果网络位于大学、工作场所,甚至可能是(智能)咖啡店,则最有可能出现这种情况。
当您 时ping 8.8.8.8
,您收到的消息中应该会提到一个 IP。我敢打赌那个 IP 是 192.168.1.1,所以错误应该是这样的reply: 192.168.1.1 destination host unreachable
。此外,为了更确定,您可以执行路由追踪。这会向您显示 ping 所经过的路径,以便我们能够准确找到它停止的位置。因此,如果您运行该命令traceroute -n 8.8.8.8
,您可能会得到类似以下内容:
我认为您可能需要使用 安装 traceroute sudo apt-get install traceroute
。
alaa@aa-UBUNTU:~$ traceroute -n 8.8.8.8
traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
1 192.168.1.1 1.204 ms 1.953 ms 2.101 ms
2 * * *
3 * * *
...那些星星会一直出现。这意味着你 ping 到了 192.168.1.1,但后来它停了下来,撞到了墙上,所以你永远无法 ping 8.8.8.8。
此外,这与 DNS 无关,因为您正在 ping 一个 IP,而不是像 google.com 这样的主机名。DNS 是一个仅将单词转换google.com
为类似 的系统74.125.236.105
。如果您的 DNS 设置有问题,ping google.com
将返回类似以下内容:ping: unknown host google.com
,但ping 8.8.8.8
不会,因为您已经在 ping 直接 IP。
我建议您恢复对 NetworkManager.conf 所做的更改。