情况如下:
我们办公室里有几台电脑,但只有两台无法连接到我们公司的网站。两台都运行 Ubuntu。
总是这样:我可以正常连接到网站 3-4 次,然后所有 TCP 数据包都重新传输,但没有成功(见屏幕截图)。几分钟后,我无法连接到任何与 TCP 相关的东西。然后我可以连接。然后再次出现错误,循环。
FTP 发生了相同的错误 - 我可以连接到 FTP,它执行前几个命令时运行正常,但几分钟后就死机了。
我可以持续 ping 服务器而没有任何问题,我们更换了路由器,联系了 ISP,一切都正常。
这个问题很奇怪,因为有以下症状:
- 仅该网站出现问题多年来,互联网上的所有内容都运行良好,但另一方面,该网站在任何地方都可以运行,即使是在装有 Windows 的同一台计算机上也是如此。
- 当我连接到 SSH 时,我可以永远保持连接。即使我稍后收到重传错误...
- 但是如果我在连接到 SSH 之前收到重传错误,我就无法再连接到 SSH!
- Ping 总是很好,所以 traceroute/mtr
- 在 CentOS 服务器和办公室的 Windows 计算机上运行良好
- 在启动 Windows 时,在相同的 Ubuntu 机器上运行良好
- 我断开了除工作用的 Ubuntu 笔记本电脑之外的所有设备,试过了,问题仍然存在
这是我编写的用于检查是否存在问题的脚本:
#!/bin/bash
while :
do
if ! [ $(curl --silent --connect-timeout 1 "our-website.com" | wc -l) -eq 12 ]; then
echo "ERR"
else
echo "OK"
fi;
sleep 1
done
上次使用全新路由器进行测试时,结果为 648 x OK,562 x ERR
我们的 CentOS 服务器 100% 正常
这是在(Ubuntu 14.04.2 LTS)上测试的:
Linux 3.13.0-55-generic #94-Ubuntu SMP Thu Jun 18 00:27:10 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
和
Linux 3.16.0-41-generic #57~14.04.1-Ubuntu SMP Thu Jun 18 18:01:13 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
一台计算机使用默认网络管理器,另一台计算机使用 wicd 网络管理器。
我尝试了其他内核但没有成功。
我也尝试过改变
sysctl net.ipv4.tcp_sack
sysctl net.ipv4.tcp_syn_retries
/proc/sys/net/ipv4/tcp_retries1
但没有成功。这听起来像是服务器故障的问题,但错误只发生在 Ubuntu 上,所以我在这里提问。
您可能会说这是托管问题,但事实并非如此,我与托管方谈了很多,但都没有得到帮助。我们使用共享托管,他们的客户都没有遇到类似问题,而且我还可以确认它在其他地方都有效。
请帮忙。
我模糊了服务器的 IP 地址,但我决定发布服务器的 IP/URL,如下所示: http://88.198.241.36:2222- 浏览器刷新几次后就停止工作,每次
答案1
尝试在您的接口上设置较少的 MTU:
sudo ifconfig eth1 mtu 1492
我遇到了同样的问题,并且 MTU 大小的改变可以解决这个问题。