为什么我无法从 Ubuntu 访问 imgur.com 和 gravatar.com 但可以从 Windows 访问?

为什么我无法从 Ubuntu 访问 imgur.com 和 gravatar.com 但可以从 Windows 访问?

我遇到了这个奇怪的问题,我无法从 Ubuntu 访问 imgur.com!

我检查了/etc/hosts文件,似乎没有与 imgur 相关的条目。我可以从 Windows 访问它(相同的连接)。

我无法 ping 或 traceroute 它,我甚至无法 ping imgur 的 IP。我也清除了 iptables,这可能是什么原因?

我也无法访问 gravatar.com !!我刚注意到,抱歉。

运行主机 imgur.com(与谷歌的 dns 服务器的输出相同)

gowtham@gowtham-hacktohell:~$ host imgur.com
imgur.com has address 23.23.110.58
imgur.com has address 23.23.110.81
imgur.com has address 54.243.128.92
imgur.com mail is handled by 5 alt1.aspmx.l.google.com.
imgur.com mail is handled by 1 aspmx.l.google.com.
imgur.com mail is handled by 10 aspmx2.googlemail.com.
imgur.com mail is handled by 5 alt2.aspmx.l.google.com.
imgur.com mail is handled by 10 aspmx3.googlemail.com.

运行 tcptraceroute

gowtham@gowtham-hacktohell:~$ tcptraceroute imgur.com
Selected device ppp0, address 117.199.141.54, port 44995 for outgoing packets
Tracing the path to imgur.com (54.243.128.92) on TCP port 80 (http), 30 hops max
 1  117.199.128.1  17.534 ms  17.764 ms  17.896 ms
 2  218.248.171.102  93.272 ms  26.393 ms  109.985 ms
 3  115.114.130.49.STATIC-Chennai.vsnl.net.in (115.114.130.49)  49.442 ms  47.180 ms  46.981 ms
 4  * * *
 5  ix-0-100.tcore2.MLV-Mumbai.as6453.net (180.87.39.25)  70.085 ms  69.712 ms  70.361 ms
 6  if-2-2.tcore1.MLV-Mumbai.as6453.net (180.87.38.1)  186.862 ms  186.434 ms  185.515 ms
 7  if-9-5.tcore1.WYN-Marseille.as6453.net (80.231.217.17)  181.965 ms  182.963 ms  184.682 ms
 8  if-8-1600.tcore1.PYE-Paris.as6453.net (80.231.217.6)  186.152 ms  184.483 ms  182.950 ms
 9  if-12-2.tcore1.PVU-Paris.as6453.net (80.231.154.70)  191.271 ms  189.655 ms  188.606 ms
10  if-3-2.tcore1.FR0-Frankfurt.as6453.net (80.231.153.54)  187.245 ms  186.013 ms  193.808 ms
11  xe-0-1-0-6.r02.frnkge03.de.bb.gin.ntt.net (129.250.9.57)  288.412 ms  281.124 ms  281.011 ms
12  ae-2.r20.frnkge04.de.bb.gin.ntt.net (129.250.5.217)  352.432 ms  357.071 ms  357.256 ms
13  ae-1.r21.asbnva02.us.bb.gin.ntt.net (129.250.3.20)  391.405 ms  394.961 ms  391.812 ms
14  ae-2.r00.asbnva02.us.bb.gin.ntt.net (129.250.3.114)  378.128 ms  381.786 ms  385.697 ms
15  ae-4.amazon.asbnva02.us.bb.gin.ntt.net (168.143.232.50)  370.938 ms  353.306 ms  351.793 ms
16  72.21.220.55  361.004 ms * 364.525 ms
17  205.251.245.55  368.187 ms  380.907 ms  375.333 ms
18  * * *
19  * * *
20  * * *

我使用 PPoE 拨号连接。

通过 Wireshark 捕获流,我看到了这一点


(来源:akamaihd.net

运行 curl

gowtham@gowtham-hacktohell:~$ curl -I http://imgur.com
HTTP/1.1 200 OK
Server: nginx
Date: Fri, 11 Jan 2013 12:24:01 GMT
Content-Type: text/html
Connection: keep-alive
Cache-Control: max-age=5, s-maxage=5, must-revalidate
X-Cached: EXPIRED

以及远程登录,

gowtham@gowtham-hacktohell:~$ telnet imgur.com 80
Trying 23.23.110.58...
Connected to imgur.com.
Escape character is '^]'.
HEAD / HTTP/1.0


HTTP/1.1 200 OK
Server: nginx
Date: Fri, 11 Jan 2013 12:25:11 GMT
Content-Type: text/html
Connection: close
Cache-Control: max-age=5, s-maxage=5, must-revalidate
X-Cached: HIT

Connection closed by foreign host.

答案1

这可能是 MTU 路径发现问题。这可能会导致某些网站无法正常工作,即使其他网站都正常工作。它会显示为超时而不是连接被拒绝。它只会在相当大的传输(如整个网页)时出现 - telnet 可能不会发送任何需要分段的数据包。它也会影响传出的 ssh。

解决方法是降低网络设备上的 MTU,以便超过一定大小的数据包始终被分段。例如:

http://tldp.org/HOWTO/Adv-Routing-HOWTO/lartc.cookbook.mtu-discovery.html

具体来说,当您通过互联网发送数据时,它会被拆分成数据包。互联网上任何地方的这些数据包的最大大小为 1460 字节(不包括标头)。如果您发送的消息大于该大小,则必须将其拆分或分段。

现在,如果您的消息通过某些类型的互联网链接,则必须将其封装在另一个协议中。这意味着包含标头的数据包将被包裹在另一个数据包中。这显然会增加数据包的大小,因此如果您的数据包已经是最大大小,则必须再次拆分。但是,由于可以利用这一点进行 DDoS 攻击,因此许多路由器不会自动对未创建的数据包进行分段。因此,您的最大大小数据包不会穿过这些路由器。

为了避免这个问题,MTU 路径发现被发明了。如果数据包对于路由器来说太大,它会发回一条消息,要求发送较小的数据包。然而,事实证明这也可以被利用,所以很多路由器也不会这样做。

因此,解决这个问题的方法是始终发送略小于绝对最大值的数据包。这就是 MTU 设置的用途。其理念是将其设置得足够小,以使任何额外开销都不会超出限制。当然,您不知道这个值有多小,因此您必须通过实验找到最佳值(仍然有效的最大值)。

答案2

从我所看到的您的 curl 输出来看,您可以访问它。

如果您在浏览器上看不到它,请尝试使用其他浏览器。

我的 curl 输出。

curl -I http://imgur.com
HTTP/1.1 200 OK
Server: nginx
Date: Sat, 12 Jan 2013 03:21:00 GMT
Content-Type: text/html
Connection: keep-alive
Cache-Control: max-age=5, s-maxage=5, must-revalidate
X-Cached: HIT

相关内容