启用 tcpkeepalive 超时后 ssh 不会断开连接

启用 tcpkeepalive 超时后 ssh 不会断开连接

我发现 ssh_config 文件中有 3 个重要参数:

TCPKeepalive
ServerAliveInterval
ServerAliveCountMax

1) 当我尝试使用 tcpkeepalive=yes 进行 ssh 时,尽管 tcp_keepalive 参数设置为:

tcp_keepalive_intvl 20 
tcp_keepalive_probes 5
tcp_keepalive_time   40

我需要检查什么才能了解​​为什么断开连接没有在 140 秒内发生?

2) 我们可以同时使用上述 3 个参数吗?或者我们应该使用 TCP 超时或 ssh 服务器活动参数?如果我仅使用 serveralive* 参数,则断开连接会很快发生。但我明白了为什么 tcpkeepalive 超时没有发生。

你能帮忙吗?

答案1

TCPKeepalive 是指客户端在看似已死之前等待的时间。如果您仍通过 SSH 登录,则说明您没有死。在 TCP 术语中,死意味着不响应探测。这与您是否在计算机旁或 SSH 会话打开了多长时间无关,只要您的计算机处于打开状态、连接到互联网且仍在会话中,它就会保持活动状态。TCPKeepalive 更适合经常断开连接的人,如果他们将 TCPKeepalive 设置为相当长的时间,如果他们断开连接,在您的情况下,他们有 140 秒的时间重新连接,否则会话将被视为已死。

我想我的问题是,如果你不想让连接保持更长时间,为什么要使用 TCPKeepalive?问这个问题纯粹是为了让我们能够帮助解决导致问题的原因,这听起来不应该像它那样讽刺。

相关内容