我遇到了一件非常奇怪的事情。我通过 ssh 连接到远程 Ubuntu,它还运行一个简单的网站(apache)。ssh 连接时不时会终止,然后我大约一个小时左右(有时更短)都无法使用 ssh 连接到机器。
我的客户机是一台家用电脑(Win7 64位)。
现在,奇怪的是是,虽然我无法从家用电脑使用 ssh 连接,但我仍然看到 Web 服务器运行良好,我可以通过端口 80/443 连接到它。最重要的是,我可以连接到其他带有 ssh 的机器,所以不是我的客户端机器以某种方式阻止了这个端口。
我实际上最终做的是连接到另一个 Linux 服务器,然后从它到我有问题的服务器 -作品。
奇怪的事情。托管我服务器的人说他们也可以用 ssh 顺利访问它,而机器中的 auth.log 甚至没有显示我的 PC 的尝试。所以这听起来真的像是网络问题,但托管提供商的网络和我的网络之间有问题。
tracert 显示在这次“中断”期间,机器确实是可以访问的。
telnet server 22
只是挂起了,根本没有连接。
我不知道如何调试它。最重要的是,我的 ssh 会话有时会挂起,我只能等待(或使用代理)直到它神奇地恢复。
有想法吗?
(有人建议我在 Putty 中禁用 TCPKeepAlive,但它已经被关闭了)
答案1
你可以通过观察网络流量来获得一些见解。在你的服务器上使用这个:
sudo tcpdump -i your_interface -s 0 -w your_dumpfile
然后将转储文件传回来,用数据包分析器打开它(我使用 wireshark 来实现这一点)并查找异常。
你的 ssh 连接是否到达服务器?是否有一些包被发回?