我在 Ubuntu 上使用 shell。
$ sudo apt-get install emacs
运行正常,下载了软件包和所有内容。另一方面:
$ ping www.google.com
不起作用:
PING www.google.com (74.125.230.240) 56(84) bytes of data.
^C
--- www.google.com ping statistics ---
7 packets transmitted, 0 received, 100% packet loss, time 6008ms
我真的不明白这是怎么可能的。
我正在使用代理,这应该是正确的,因为我可以通过浏览器访问网络。
我错过了什么?
答案1
许多企业环境在防火墙级别阻止 ICMP“回显请求”和“回显回复”数据包。如果您在企业网络上(正如您在代理后面所暗示的那样),这可能是原因。如果不允许 ICMP 数据包,“traceroute www.google.com”也将不起作用。
答案2
如果您的 /etc/resolve.conf 不为空(即包含有效的 dns 名称服务器地址),则另一个可能的原因是 netfilter 防火墙。要停用它,您可以运行(以 root 身份)iptables -F
。我不确定 Ubuntu 是否默认配置任何规则(或使用一些常见的防火墙包,但值得一试)。如果是这种情况,您将不得不在 Ubuntu wiki 上搜索有关如何配置 netfilter(iptables)的说明。
ping 不工作的其他原因包括您所在网络的防火墙限制,正如您所建议的那样。并且总是存在您正在 ping 的主机配置为丢弃外部 ping 的情况,但 google 的情况并非如此。
任何 http 代理设置都不会影响 ping 程序,因为 HTTP 使用 IP/TCP 而 ping 使用 UDP/ICMP。