我现在才使用 Linux 几个月,而且还是一个初学者,所以如果我使用了不正确的术语,我深表歉意。我正在运行 Arch,远程机器位于 Manjaro 上。
我一直在研究部门的一台机器上运行实验,通过 ssh(通过隧道代理)远程连接。在运行代码之前,我启动 TMUX 会话并进入我需要的 conda 环境。运行代码后,我会脱离 TMUX 会话,并偶尔检查一下。我已经这样做了几个月了,并且可以毫无问题地运行代码几天。
然而,在过去的几天里,20-40 分钟后,我就断开了连接:
Connection to exampleserver.com closed by remote host.
Connection to exampleserver.com closed.
这种情况每次都会发生。我不确定是什么原因造成的。我询问了我部门中负责管理机器的人,他告诉我调整 ssh 配置中的 ServerAliveInterval。 TMUX 不应该照顾我的会话吗?什么可以阻止它不再阻止会话断开连接?
任何帮助,将不胜感激!不幸的是,如果无法访问这台机器,我就无法真正工作。
答案1
通常,SSH 服务器默认配置为丢弃一段时间内未发送或接收任何数据的连接。假设客户端已死亡或连接断开。
您可以通过运行保持流量畅通的操作来防止这种情况,例如top
或cmatrix
。 SSH 协议中包含一种保持连接活动的不太黑客的方法。将以下内容添加到您的~/.ssh/config
文件中:
Host *
ServerAliveInterval 10
ServerAliveCountMax 12
ServerAliveCountMax
如果您的网络连接非常不稳定,请增加该值。