我在远程位置有一台服务器。使用 SSH 连接到该机器时,它不断断开连接,并显示:
Read from remote host XXXX: Connection reset by peer
Connection to XXX closed.
我怀疑这是我们这边的互联网连接问题,因为 ping 该机器会随机显示请求超时。我甚至尝试 ping Google,也显示请求超时。
我如何确认这是互联网问题/实际错误是什么?
更多信息:
我们的网络和远程网络之间有 VPN 隧道。因此,我可以使用远程计算机获得的本地 IP 之一来 ssh 远程计算机。然后 tracert 到该计算机,希望在 2 步内成功。
答案1
我建议您使用 traceroute 命令。在 Windows 上,它缩写为“tracert”
例如,打开命令提示符并输入以下内容(-d 表示不执行 DNS 查找):
tracert -d <your server ip address>
这将为您提供 TCP 数据包在到达目标的途中所经过的所有跳转的列表。超时前的最后一次成功跳转将让您了解互联网故障的位置。可能是您的 wifi、您的 ISP 或其他东西。
另一个想法是,有时 SSH 连接可能会被断开,因为系统认为连接处于空闲状态,可以断开它。这也可能是调制解调器中的设置。但我认为 traceroute 可以让您很好地了解故障点。如果您从未使用 traceroute 发现故障,我会说也许有什么东西正在主动断开您的空闲连接。查看 Wifi 路由器/DSL 调制解调器等中的 Keep-Alive 类型设置。
但是请回复您的发现,让我们看看是否可以帮助您解决这个问题。
祝你好运。
答案2
我建议安装类似吸烟。这将为您提供一段时间内的统计数据,您可以使用这些数据来打败您的 ISP,使其提供还算不错的服务。
答案3
在连接到远程计算机时,在您的计算机上运行网络捕获。当发生断开连接时,在捕获中查找来自远程计算机的 TCP RST(重置)。如果找到它,则问题出在远程计算机上。如果没有找到,则问题出在两者之间的连接上。
答案4
您是否在计算机上安装了任何可能限制或限制传入 SSH 连接的程序,例如 iptables (Linux) 或 inetd.conf (FreeBSD)?如果您等待 5 或 15 分钟后再重试连接,会发生什么情况?