为什么wget挂?

从我的服务器之一wget到一个特定的url不断得到超时。 从这个盒子的所有其他url工作正常。 这个url可以从任何其他我有。 这是输出:

wget -T 10 http://www.fcc-fac.ca --2011-07-14 14:44:29-- http://www.fcc-fac.ca/ Resolving www.fcc-fac.ca... 65.87.238.35, 207.195.108.140 Connecting to www.fcc-fac.ca|65.87.238.35|:80... failed: Connection timed out. Connecting to www.fcc-fac.ca|207.195.108.140|:80... failed: Connection timed out 

你能告诉我什么可能是错的,我该如何解决它? 我使用Ubuntu 11.04(GNU / Linux 2.6.38-8-x86_64)

非常感谢你提前,并原谅我的noobish无知:)

ping,telnet,nc www.fcc-fac.ca 80 – 全部挂起。 然而,其他一些网站虽然只有部分主机是可以ping通的,

traceroute并没有告诉我很多:

 7 rx0nr-access-communications.wp.bigpipeinc.com (66.244.208.10) 148.834 ms 149.018 ms 148.940 ms 8 sw-1-research.accesscomm.ca (24.72.3.9) 158.901 ms 159.805 ms 160.162 ms 9 65.87.238.126 (65.87.238.126) 150.069 ms 148.861 ms 148.846 ms 10 * * * ... 30 * * * 

非常感谢您的答复!

我认为问题在于wget不能很好地处理IPv6地址,DNS服务器正在为该站点发送IPv6。 对不起,如果我误解了你的问题。 检查这些testing:

 hmontoliu@ulises:~$ wget -T10 http://www.fcc-fac.ca --2011-07-14 16:44:34-- http://www.fcc-fac.ca/ Resolving www.fcc-fac.ca... failed: Connection timed out. wget: unable to resolve host address `www.fcc-fac.ca' 

如果我强迫IPv6,因为我认为你的问题与它有关,它会失败:

 hmontoliu@ulises:~$ wget -6 http://www.fcc-fac.ca --2011-07-14 16:40:44-- http://www.fcc-fac.ca/ Resolving www.fcc-fac.ca... failed: No address associated with hostname. wget: unable to resolve host address `www.fcc-fac.ca' 

但是,如果我强迫使用IPv4它下载索引页面

 hmontoliu@ulises:~$ wget -4 http://www.fcc-fac.ca --2011-07-14 16:40:56-- http://www.fcc-fac.ca/ Resolving www.fcc-fac.ca... 65.87.238.35, 207.195.108.140 Connecting to www.fcc-fac.ca|65.87.238.35|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 6554 (6,4K) [text/html] Saving to: `index.html' 

看来wget无法连接到您的80端口的IP。

检查你的服务器是否可以ping通:

 ping 65.87.238.35 ping 207.195.108.140 

如果ip是可pingable的,请检查您是否可以使用telnet连接到端口80:

telnet 65.87.238.35 80

如果服务器不响应ping,则可能是源networking不可用或无法访问。

使用traceroute工具testing以查看连接失败的位置。

修复使用CURL库在PHP脚本中缓慢的DNSparsing。

从libcurl文档:

CURLOPT_IPRESOLVE

允许应用程序select在parsing主机名时使用何种types的IP地址。 这只在使用使用多个IP版本parsing地址的主机名称时才有意义。 允许的值是:

CURL_IPRESOLVE_WHATEVER

默认情况下,将地址parsing为系统允许的所有IP版本。

CURL_IPRESOLVE_V4

parsing为IPv4地址。

CURL_IPRESOLVE_V6

parsing为IPv6地址。

我相信这些可以被设定为环境variables。 至less在使用PHP时,这些设置对parsing器速度产生了巨大的影响。

运行nc www.fcc-fac.ca 80 ,inputGET /并按Enter两次。

遥远的景象可能会下降或阻止你。