[已解决]ubuntu feisty有的网站(例如google)能上、有的网站不能上的终极解决方案和原因分析

包含网卡/无线网的网络问题和ADSL/校园网/宽带拨号支持及代理/共享等网络使用问题
回复
bigben446
帖子: 108
注册时间: 2007-09-12 14:45
送出感谢: 8 次
接收感谢: 1 次

[已解决]ubuntu feisty有的网站(例如google)能上、有的网站不能上的终极解决方案和原因分析

#1

帖子 bigben446 » 2008-07-24 22:18

我不能上百度,sudo sysctl net.ipv4.tcp_window_scaling=0就好了,详细见下

zz from http://bluefire.wordpress.com.cn/2008/0 ... %E7%BB%88/


ubuntu feisty有的网站(例如google)能上、有的网站不能上的终极解决方案和原因分析
13 02月 2008

Manpage of TCP:

tcp_window_scaling Enable RFC1323 TCP window scaling. It is enabled by default. This feature allows the use of a large window (> 64K) on a TCP connection, should the other end support it. Normally, the 16 bit window length field in the TCP header limits the window size to less than 64K bytes. If larger windows are desired, applications can increase the size of their socket buffers and the window scaling option will be employed. If tcp_window_scaling is disabled, TCP will not negotiate the use of window scaling with the other end during connection setup.

评注:安装了ubuntu feisty之后就发现上网的问题了,是那个经典的只能上google的问题:能够访问部分网站,比如www.google.cn,可是其他网站都打不开。而且能够ping通网关哎。花费好多小时来搜索解决方案,发现:
很多人说是ipv6或者tcp_cen的问题,关闭就好了。但是我实验后无效。(注:其实ipv6问题只是会影响速度,不会导致上面这个症状)
有人说是firefox的问题。
甚至有人说是双系统的问题——难道另外一个windows xp心灵感应?!
老外的一篇帖子也说ipv6和firefox的问题。

最后终于发现了事实的真相(上面引用的那段英文)和解决方案(下面这个命令):
sudo sysctl net.ipv4.tcp_window_scaling=0

简单解释一下吧,其实这个问题不能算是ubuntu的问题,而是因为我所在网络的router太破了,不支持RFC1323标准规定的tcp窗口扩展(扩展到大于64K可以提高网络性能)。因为“It is enabled by default”,ubuntu就傻傻的默认开启了这个设置,但是却忘记了“should the other end support it”,你看看,这样一来,如果人家路由器不支持这个设置,ubuntu热脸贴上冷屁股,就干着急了,哈哈。为啥有的网站能上呢?可能是那些 package都小于64K吧,双方都能接受。。。我猜的。
回复

回到 “网卡问题以及网络和拨号”