一位朋友新安装了CentOS 5.4,这是他所在大学的代理背后的错误行为。如果他把这台机器带回家直接连接到互联网上,它就能正常工作。如果他在机器上安装了其他操作系统(甚至是较旧版本的CentOS),那么它在代理之后就能正常工作。只有当它在代理后面,并且只有当它运行CentOS 5.4时,它才有看似随机的连接超时和极差的吞吐量。
我让他拿了个小包来看看发生了什么。事实就是这样:
9291 532.192095 10.74.88.99 161.112.232.22 TCP 40560 > ndl-aas [ACK] Seq=206 Ack=74213 Win=3328 Len=0 TSV=3733959 TSER=77264420
9292 532.193750 161.112.232.22 10.74.88.99 TCP [TCP segment of a reassembled PDU]
9293 532.193812 161.112.232.22 10.74.88.99 TCP [TCP segment of a reassembled PDU]
9295 532.234080 10.74.88.99 161.112.232.22 TCP 40560 > ndl-aas [ACK] Seq=206 Ack=77109 Win=384 Len=0 TSV=3734001 TSER=77264424
9296 532.658579 161.112.232.22 10.74.88.99 TCP [TCP Window Full] [TCP segment of a reassembled PDU]
9297 532.658666 10.74.88.99 161.112.232.22 TCP [TCP ZeroWindow] 40560 > ndl-aas [ACK] Seq=206 Ack=77493 Win=0 Len=0 TSV=3734426 TSER=77264471
9298 533.091240 161.112.232.22 10.74.88.99 TCP [TCP ZeroWindowProbe] [TCP segment of a reassembled PDU]
9299 533.091407 10.74.88.99 161.112.232.22 TCP [TCP ACKed lost segment] 40560 > ndl-aas [ACK] Seq=206 Ack=77494 Win=2176 Len=0 TSV=3734859 TSER=77264514
9300 533.092361 161.112.232.22 10.74.88.99 TCP [TCP segment of a reassembled PDU]
9301 533.092397 161.112.232.22 10.74.88.99 HTTP HTTP/1.0 200 OK (application/x-rpm)(161.112.232.22为代理,10.74.88.99为CentOS盒,ndl为端口3128,端口squid在代理上运行)
假设这会导致所有应用程序(FireFox、yum更新等)中的连接超时,我想知道为什么这只会发生在这台CentOS 5.4机器上,而只发生在Squid之后。
代理是squid/3.0.STABLE19运行在Linux1跳转网络上,并在客户端显式配置(通过设置http_proxy env变量或适当的应用程序特定配置)。
有人帮忙吗?
发布于 2010-02-04 11:46:38
这个问题已经解决了。这个问题与代理(它正在运行SunOS)有关。使用运行Linux的备用代理解决了问题。
发布于 2010-01-28 21:27:01
您可以在/proc中检查与TCP窗口缩放相关的下列值:
/proc/sys/net/core/rmem_default
/proc/sys/net/core/rmem_max
/proc/sys/net/core/wmem_default
/proc/sys/net/core/wmem_max
/proc/sys/net/ipv4/tcp_window_scaling查看这些值在与代理一起正常工作的机器和您要设置的机器之间是否有所不同。
另外,我不知道这是否相关,但您可能需要考虑的是,默认情况下,CentOS 5有SELinux。这给我带来了许多棘手的诊断问题,您可能希望将其设置为允许的或禁用的,以便进行测试。(参考文献:http://wiki.centos.org/HowTos/SELinux)
ps:这是一个更多的评论,然后是一个“答案”?我还不能发表评论。
https://serverfault.com/questions/107312
复制相似问题