我正在运行 Ubuntu Server 14.04.2,我无法再与外部 http 地址通信。我可以ping google.com
,我可以wget https://google.com
,但我不能wget http://google.com
。
$ wget http://google.com
--2015-11-18 11:01:57-- http://google.com/
Resolving google.com (google.com)... 74.125.224.99, 74.125.224.100, 74.125.224.98, ...
Connecting to google.com (google.com)|74.125.224.99|:80... failed: Connection refused.
Connecting to google.com (google.com)|74.125.224.100|:80...
运行较新的 Ubuntu Server 14.04.3 的同一网络上的虚拟机没有此问题,并且可以成功 wget http 或 https 地址。
该问题导致composer update
错误,packagist 给出了以下响应:
[Composer\Downloader\TransportException]
The "http://packagist.org/p/provider-[idstring].json" file could not be downloaded: failed to open stream: Connection timed out
此网络没有代理。
我能想到的两台机器之间唯一真正的区别是,有问题的机器有一个静态 IP,而另一台机器使用 DHCP。
在执行 wget 到 google 的过程中,我监控了从两台机器通过网络防火墙的数据包,发现防火墙没有阻止任何东西。
谢谢阅读。
更新 我将静态 IP 更改为另一个静态 IP,它成功了。我能够在另一个 IP 上安装 traceroute,并在更改回来后运行它:
sudo traceroute -T -p 80 google.com
给我 30 行星星。
答案1
找到问题了。我们上周更改了公共 IP,防火墙中有一个服务对象分配了旧 IP,因此流量可能正常出去,只是回不来了。我将对象的 IP 更新为新的外部 IP,一切又开始正常了。