V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
jhytxy
V2EX  ›  问与答

请问有什么方案 ssh 连接断掉还能继续运行的,不是 screen, like mosh

  •  
  •   jhytxy · 2022-12-04 11:48:45 +08:00 · 2626 次点击
    这是一个创建于 722 天前的主题,其中的信息可能已经有所发展或是发生改变。
    因为本地网络状况非常差,ssh 经常会断开

    所以我目前的方案是先 rdp 到一个网络稳定的桌面环境然后运行 ssh 客户端

    但是每次要先登录一个 rdp 还是挺麻烦
    所以想找个方案类似有跳板机的 mosh 一样,本地断开也不影响操作的连续性

    目前考虑的可能方案有三种
    1 Windows server 的 remote app , 但是这样需要一个 win server 系统,正版太费钱了
    2 Linux 的 x11 远程运行
    3 装个有 web client 的 jump server ,感觉这样安全性有点低

    有没有什么 ssh 客户端能直接实现的? mosh 虽然不怕掉线,但是断开也就中断了吧
    第 1 条附言  ·  2022-12-04 14:30:41 +08:00
    谢谢 1 楼
    tmux 能解决问题

    有没有 win 下有 gui 的客户端
    16 条回复    2022-12-06 09:32:22 +08:00
    cdlnls
        1
    cdlnls  
       2022-12-04 11:56:25 +08:00   ❤️ 1
    tmux
    blackmao
        2
    blackmao  
       2022-12-04 12:34:37 +08:00
    nohup 可以么
    tanglu
        3
    tanglu  
       2022-12-04 13:40:23 +08:00
    nohup 可以让程序后台运行 不在 sshd 进程下
    但楼主可以从根源上解决问题,出现 sshd 断链应该是网络链路丢包严重,楼主可以试试中转 来优化链路,可以私我 ip 我给你 22 端口套个中转 应该就没问题了(另外用中转需要考虑安全问题 老板可能会窃取你的密码或者密钥 所以不建议用免费的中转)
    cpstar
        4
    cpstar  
       2022-12-04 13:45:21 +08:00   ❤️ 1
    3# 的后半段没整明白,这到底是要方便自己窃取啊,还是要提供安全无偿服务啊。。。🤣
    t133
        5
    t133  
       2022-12-04 13:54:50 +08:00 via iPhone   ❤️ 1
    Autossh
    tanglu
        6
    tanglu  
       2022-12-04 13:58:09 +08:00
    @cpstar 我提供无偿服务 也口头承诺不窃取 我也没那个技术
    privil
        7
    privil  
       2022-12-04 14:05:13 +08:00
    @tanglu #6 哈哈哈,是的,属于老好人了
    rabbbit
        8
    rabbbit  
       2022-12-04 14:35:00 +08:00
    临时执行长命令可以用 systemd-run
    notgoda
        9
    notgoda  
       2022-12-04 14:53:21 +08:00 via iPhone
    @cdlnls
    @cdlnls @cdlnls 请问这个跟 screen 不是一样效果吗?都是开一个 shell 啊
    unlsycn
        10
    unlsycn  
       2022-12-04 15:00:58 +08:00 via Android
    为什么又说不是 screen 又说 tmux 可以解决问题?
    SenLief
        11
    SenLief  
       2022-12-04 15:30:00 +08:00
    这个问题不是 screen 可以解决吗? tmux 解决了啥 screen 不能解决的问题吗?
    chiu
        12
    chiu  
       2022-12-04 16:15:28 +08:00
    同疑惑, 为什么不要 screen 却认为 tmux 能解决问题 ?

    >> mosh 虽然不怕掉线,但是断开也就中断了吧
    我实际测试 mosh 上去后跑一个 task, 断开网络 10 秒, 然后重新连接, mosh 跑的 task 还是正常在运行

    不放心的话, 可以 mosh + screen/tmux
    Cavolo
        13
    Cavolo  
       2022-12-04 19:48:17 +08:00
    除了 screen 和 mosh 这两种方案,您还可以尝试使用 nohup 和 disown 等命令来实现 SSH 连接断掉后继续运行的目的。

    nohup 命令可以让您在 SSH 连接断掉后,终止程序的输入和输出,并继续执行后台进程。
    ysc3839
        14
    ysc3839  
       2022-12-05 03:14:00 +08:00 via Android
    @chiu mosh 被动断开是可以恢复的,但主动断开就不能恢复了,或者说要客户端保持运行才能恢复。
    EvanQu
        15
    EvanQu  
       2022-12-05 09:29:09 +08:00
    目前我的方案是 rdp 远程到跟 ssh 服务器同一个内网的 win
    然后在 win 里面 ssh
    julyclyde
        16
    julyclyde  
       2022-12-06 09:32:22 +08:00
    nohup 和 systemd-run 只是能让程序不受 SIGHUP 影响,但是事后你其实也没办法去“看”它
    screen/tmux 可以完整保留当时的环境
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3438 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 11:36 · PVG 19:36 · LAX 03:36 · JFK 06:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.