我有一个SSH断开连接问题,断开随机发生。 有时候,它可以正常工作,而且有时我经常断开连接。 断开连接后,我可以重新连接并继续工作。
客户端到目标服务器之间的ssh连接的stream程是这样的:
Client (C1) -> Intermediate Server (I) -> Destination Server (R1) (Windows/Linux) -> (Linux + OpenVPN/IPTables) -> (Linux)
从客户端C1到目标服务器R1路由总是通过中间服务器I 。
使用Wireshark,只要有断开连接的问题,我就能看到RST包。 WiresharkloginC1显示, R1在发生断开连接问题时正在发送RST TCP包。
什么可能导致这个问题?
没有深入研究您的特定问题,我发现这些configuration行已经为我解决了类似的问题:
ClientAliveInterval 150 ClientAliveCountMax 10
它可以解决由于延迟或震荡链路而导致的断开连接。 我并不是说这些都是完美的价值,但是迄今为止他们已经为我工作了。
打开Keepalive。 将以下行添加到.ssh / config:
ServerAliveInterval 60