我正在使用 iterm2 从 Mac 通过 SSH 连接到 RHEL 服务器。 ServerAliveInterval
在客户端 SSH 配置中设置为 60,TCPKeepAlive
在服务器 sshd 配置中设置为“是”。但是,空闲会话总会在一段时间后超时(我没有计时)。正在运行的会话(例如长时间运行的进程或tail
将无限期地保持活动状态)。是否有某种方法可以通过使用服务器、客户端和 iterm2 设置的组合来保持空闲会话处于活动状态,但我一直找不到?
答案1
ServerAliveInterval
为了这个目的,我在客户端和服务器端一起使用ClientAliveInterval
,多年来我没有看到掉线的情况(除了完全失去连接的情况)。
我没有设置TCPKeepALive
,但我相信它默认是开启的(但我怀疑它是否会生成,因为我的上述设置在可能阻止它的范围内)。
对于连接断开/挂起的情况,我建议使用tmux
或screen
并在其中运行一个程序。您将能够在后续连接时恢复会话。这当然仅适用于命令行/文本应用程序,X 转发将中断。
编辑:
我在用:
ClientAliveInterval 60
ClientAliveCountMax 5
和
ServerAliveInterval 30
ServerAliveCountMax 10
我可能应该改变后者以匹配前者。