Skip to content

利用 tmux 保持会话

2025-05-18 · 427字 · 2分钟

最近回国远程办公。经过几天的调试,我发现两个问题:

  1. 如果以家里的 ip 直接连接学校服务器,连接能保持较久,但速度很慢(终端常常冻结,vscode remote-ssh 的窗口响应很慢)。
  2. 如果经过自己配置的 vpn 连接学校服务器,连接往往 10 分钟自动中断,但速度很快。
  3. 如果用学校的 vpn 连接则根本连不上。

综上,我推测是学校服务器的防火墙设置太过敏感。为了避免 ssh 连接中断导致会话中断,我尝试使用 tmux 来管理会话。

我在学校服务器上申请计算资源的流程是:首先连接 gateway,然后在 gateway 上申请计算节点。gateway 始终可以访问。具体的计算节点必须经过申请才能访问,有两种情况会关闭访问:

  1. 每次申请有时长限制,到点自动关闭
  2. 如果中途节点上的所有会话终止也会自动关闭。

因此我的处理方案是在 gateway 上开启一个 tmux 会话,然后在 tmux 会话中申请计算节点,由于 tmux 会保持与计算节点的会话,这样就规避了第二种情况。这样即便因为 ssh 连接不稳定而导致与 gateway 的会话中断,tmux 所管理的 gateway 与计算节点的会话始终保持,这样仍然可以访问计算节点。当然用 vscode 的 remote ssh 连接的会话并不是 tmux 所维持的那个会话,tmux 的意义仅仅在于保留一个独苗会话避免触发第二种情况。

返回

人同此心,心同此理;如风沐面,若水润心