如何排除故障并诊断 SSH 连接上的“写入失败:管道损坏”?

如何排除故障并诊断 SSH 连接上的“写入失败:管道损坏”?

我在 Mac OS X 到 Mac OS X 的连接中遇到了大量“写入失败:管道损坏”错误。两台机器都安装了 OpenSSH 7.1p,服务器正在监听端口1522。两台机器都在本地 LAN 上,但我实际上是通过网关的公共(外部)IP 进行连接的。服务器是 PowerMac,它面向公众,供一些在 PowerPC 下使用它进行测试的人使用。网关正在使用端口转发映射1522到服务器。

我尝试了一些在野外发现的解决方法,例如确保TCPKeepAlive设置为是/etc/ssh_config和中~/.ssh/config。问题仍然存在,我感到很沮丧。

快速搜索没有找到解决问题的步骤。搜索确实让我找到了一些在野外找到的解决方法,例如如何防止 SSH 连接出现“写入失败:管道损坏”?. 但解决方法通常缺乏故障排除信息。

我该如何排除故障并诊断“写入失败:管道破裂”?

答案1

从个人经验来看,Write Failed: broken pipe这意味着您的连接在某个地方以某种方式断开了。这可能是由于大量数据包丢失、Wi-Fi 连接不良、网络拥塞或许多其他原因造成的。您可以先尝试通过 Mac 的本地 IP 地址进行连接。如果连接稳定,则表明外部代理服务器可能是罪魁祸首,但我不知道您的路由器是否会将连接反弹到它自己的外部 IP 地址(尝试traceroute external.ip.address)。如果这不起作用,请尝试从另一台计算机(内部或外部)连接到另一个 ssh 服务器。如果这有效,您就知道您的一台机器是罪魁祸首。如果没有,则您的网络有问题。只需从点 A 到 B 一次删除一个变量,您一定会找到问题。祝你好运!

相关内容