今天我们安装的所有 Ubuntu 12.04 都出现了一个奇怪的错误。无论何时尝试通过浏览器(已测试 Chrome 和 Firefox)、apt-get/Software Centre 或 wget/curl 访问互联网,都会出现“连接被拒绝”错误。
它可能时断时续;如果我断开并重新连接网络,它会工作一两次然后就死机了。HTTPS 似乎也能正常工作,或者至少故障较少。
4 台 Ubuntu 机器都存在同样的问题;我们在同一个网络上安装了 Mint(11 和 13)和 Windows(Server 2003、XP、Vista 和 7),它们运行正常。这完全是 Ubuntu 独有的。
我尝试过的事情:
- 所有 Ubuntu 安装都没有安装类似的非核心软件包,而且似乎在过去三天内都没有更新过(问题在过去 10 小时内的某个时间开始出现)
- 日志中没有报告任何错误
- Netstat -s(见下文)报告大量失败的连接尝试,这是我能追踪到的唯一“错误”
- DNS 解析 100% 正常,这似乎不是一个问题(如果我尝试直接访问 IP,它们会显示相同的错误)。
- 需要注意的是,本地主机名是完全可访问的(例如,server1.theoffice.domain 可以访问,但不能通过其 IP 访问)
- 硬件没有通用性,网络基础设施已被替换为已知工作套件
- 我运行了 wireshark 看看能否发现错误。一切似乎都正常(即正确发送数据包)。我确实看到很多(ACK、RST)数据包返回,但无法确定这是否是一个重大问题。
我遗漏了什么吗?过去一天左右出现了什么已知问题吗?
TCP 的 Netstat 输出:
Tcp:
3325 active connections openings
3 passive connection openings
2393 failed connection attempts
167 connection resets received
4 connections established
52388 segments received
36962 segments send out
246 segments retransmited
0 bad segments received.
230 resets sent
TcpExt:
153 TCP sockets finished time wait in fast timer
1045 delayed acks sent
Quick ack mode was activated 126 times
5 packets directly queued to recvmsg prequeue.
10 bytes directly received in process context from prequeue
36099 packet headers predicted
2718 acknowledgments not containing data payload received
1136 predicted acknowledgments
5 times recovered from packet loss by selective acknowledgements
Detected reordering 1 times using time stamp
1 congestion windows fully recovered without slow start
1 congestion windows partially recovered using Hoe heuristic
96 congestion windows recovered without slow start after partial ack
6 TCP data loss events
TCPLostRetransmit: 1
1 timeouts after SACK recovery
10 fast retransmits
5 forward retransmits
13 retransmits in slow start
156 other TCP timeouts
126 DSACKs sent for old packets
44 DSACKs received
42 connections reset due to unexpected data
30 connections reset due to early user close
8 connections aborted due to timeout
TCPDSACKIgnoredNoUndo: 16
TCPSpuriousRTOs: 3
TCPSackShifted: 4
TCPSackMerged: 14
TCPSackShiftFallback: 23
IPReversePathFilter: 92
更多信息
- 端口 80 上的 Telnet 有同样的问题(连接被拒绝)。
答案1
步骤1
我假设您已经对 . 和 进行了成功的测试ping
。traceroute
telnet
确保telnet somehost 80
http服务的可达性。
如果一切正常,那么问题应该是代理问题。假设非 ubuntu 安装正常运行,则 ubuntu 安装本地会发生代理配置错误。
第2步
失败的 telnet 表明问题出在应用层。Ping 是否正常工作?
您可以使用 来检查nmap
哪些端口可以访问?
您可以使用 来检查本地防火墙规则ufw status
。
解决
“所有设备的防火墙均已禁用,ping 正常运行,nmap 未显示任何异常。我们将其追溯到应用程序层的一个错误,该错误会产生格式错误的数据包,导致我们的网络滥用监视器拦截 HTTP 请求并停止它们。发现这一点差点要了我的命!感谢您的回复”