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

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

  •  
  •   jhytxy · 109 天前 · 1552 次点击
    这是一个创建于 109 天前的主题,其中的信息可能已经有所发展或是发生改变。
    因为本地网络状况非常差,ssh 经常会断开

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

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

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

    有没有什么 ssh 客户端能直接实现的? mosh 虽然不怕掉线,但是断开也就中断了吧
    第 1 条附言  ·  109 天前
    谢谢 1 楼
    tmux 能解决问题

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

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

    不放心的话, 可以 mosh + screen/tmux
    Cavolo
        13
    Cavolo  
       109 天前
    除了 screen 和 mosh 这两种方案,您还可以尝试使用 nohup 和 disown 等命令来实现 SSH 连接断掉后继续运行的目的。

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