我在使用 SSH 时遇到了一个奇怪的问题。当我尝试通过它发送大量文本时,它经常会断开连接(“对等方重置连接”)。这种情况不是每次都发生,但经常发生,非常烦人。我不知道从哪里开始寻找解决方案。我在不同的机器上尝试了多个客户端,结果相同。我目前正在使用 PUTTY。此外,如果它相关的话,当它死机时,它似乎开始发回数据行,然后任意死机。
有什么想法吗?如果您能给我一些提示,我可以发布更多详细信息,我真的不知道还能在这里发布什么。
OpenSSH_5.5p1 Debian-4ubuntu6,OpenSSL 0.9.8o 2010 年 6 月 1 日
谢谢!〜查理
答案1
这听起来确实像是某种深度数据包检测系统对不确定的流量进行严厉检查。当所有事情都进展顺利时,远端会重置连接的想法似乎有点奇怪。
诊断此问题的第一步是获取tcpdump
以下对象的捕获:两端同时断开连接。这样您就可以关联两端的数据包并确保它们匹配。如果我的 DPI 推测是正确的,您将收到没有从另一端发出的相应 RST 数据包(大多数 DPI 设置都会对两端进行 RST,这将使其更加明显)。否则,如果一端确实正在断开连接本身,您将能够看到哪一端正在决定停止连接,如果是这种情况,那么您就可以通过strace
这种方式找到问题的根源。
答案2
我见过的另一种情况是,有人为远程接口使用了比默认 MTU 更小的 MTU,然后通过阻止 ICMP 数据包来阻止 MTU 发现。这种情况可能发生在奇怪的 NAT 设置中。
在这种情况下,虽然当您 cat 一个小文件时它会起作用,但是,大文件将会挂起或重置连接,所以测试起来非常容易。