为什么我的ssh超时因网络位置而异?

Modified on: Tue, 20 Aug 2019 08:40:02 +0800

当我从家里进入我们的一个办公室服务器(运行Fedora 10)时,我的会话在相当短的一段时间(5分钟左右)后超时。我尝试在客户端使用TcpKeepAlive,但没效果。

我不明白的是,如果我在公司局域网的办公室,我可以整天休息,而不会超时,所以行为似乎取决于我的位置。

为什么会发生这种情况以及如何在我不在局域网时防止超时?如果有帮助,我在Mac OSX上使用终端客户端。

UPDATE - Dave Drager建议使用ServerAliveInterval设置为非零,TcpKeepAlive=no为我工作。关于其他一些答案,Mac OSX SSH客户端不接受ClientAlive ...设置。

最佳答案

关于这个问题有一个很好的写作此处

他们建议:

ssh -o TCPKeepAlive=yes

或:

ssh -o TCPKeepAlive=no -o ServerAliveInterval=15

但是,我确实在我的工作现场遇到了一个问题,我在那里与会话断开连接,在家里他们没事。我相信我的防火墙(SonicWall)可能会因为NAT而感染TCPKeepAlive。

我的SSH客户端,SecureCRT,幸运的是有一个“NO-OP”协议的选项,我相信它基本上发送一个不对服务器做任何事情的命令。通过手动启用此功能,我可以保持连接状态。不确定MacOSX终端客户端有什么类似的东西。 写一篇文章关于如何在命令行上实现“NO-OP”。

最后,您可能希望使用Wireshark或其他嗅探器来观察您的实际TCP连接,以了解它的用途。这将是看到为什么它偶尔会断开连接的最终方式。


相关问答

添加新评论