linux远程断开后如何恢复

Linux中,若远程会话断开,可使用screentmux工具恢复。

Linux 远程连接方式及断开原因

常见的远程连接工具

  • SSH(Secure Shell):最常用的 Linux 远程连接协议,安全可靠。
  • Telnet:不安全的明文传输协议,现已较少使用。
  • VNC(Virtual Network Computing):用于图形界面远程连接。
  • RDP(Remote Desktop Protocol):主要用于 Windows 系统,但也可以用于 Linux。

连接断开的常见原因

  • 网络不稳定:网络波动、路由器故障等。
  • 超时设置:SSH 会话超时自动断开。
  • 误操作:用户意外关闭终端或断开连接。
  • 服务器端问题:服务器重启、服务崩溃等。

SSH 连接断开后的恢复方法

使用 tmuxscreen 工具

tmuxscreen 是两款常用的终端复用器,可以在远程连接断开后继续运行会话。

linux远程断开后如何恢复

tmux

  • 安装
    sudo apt-get install tmux  # Debian/Ubuntu
    sudo yum install tmux      # CentOS/RHEL
  • 使用方法
    • 启动 tmux 会话:
      tmux
    • tmux 中打开新的窗口或面板:
      tmux new-window
    • 断开连接后,重新连接并恢复会话:
      tmux attach
    • 列出所有 tmux 会话:
      tmux ls
    • 杀死 tmux 会话:
      tmux kill-session -t <session-name>

screen

  • 安装
    sudo apt-get install screen  # Debian/Ubuntu
    sudo yum install screen      # CentOS/RHEL
  • 使用方法
    • 启动 screen 会话:
      screen
    • screen 中打开新的窗口:
      Ctrl + a, 然后按 c
    • 断开连接后,重新连接并恢复会话:
      screen -r <session-name>
    • 列出所有 screen 会话:
      screen -ls
    • 杀死 screen 会话:
      screen -X quit

使用 autossh 自动重连

autossh 是一个可以自动重连的 SSH 客户端,适用于网络不稳定的情况。

  • 安装
    sudo apt-get install autossh  # Debian/Ubuntu
    sudo yum install autossh      # CentOS/RHEL
  • 使用方法
    autossh -M 0 -q user@remote_host
    • -M 0:禁用监视连接,避免因超时断开。
    • -q:静默模式,减少输出。

恢复未保存的工作

如果未使用 tmuxscreen,且连接断开后工作未保存,可以尝试以下方法:

检查临时文件

有些应用程序会生成临时文件(如 .vim.nano 等),可以尝试恢复。

  • Vim
    如果正在编辑文件时断开连接,Vim 可能会生成一个 .swp 文件,重新连接后,可以恢复:

    vim filename

    Vim 会提示是否恢复交换文件。

  • Nano
    Nano 会生成一个 .nanorc.nano_hostname 文件,可以尝试恢复。

使用 crontabat 定时任务

如果正在执行长时间任务,可以使用 crontabat 命令将其设置为后台任务。

linux远程断开后如何恢复

  • crontab

    crontab -e

    添加任务,例如每分钟执行一次:

         /path/to/your/command
  • at

    echo "your-command" | at now + 1 minute

使用 nohupdisown

如果任务已经在后台运行,可以使用 nohupdisown 使其在断开连接后继续运行。

  • nohup

    nohup your-command &
  • disown

    your-command &
    disown

预防措施

使用 tmuxscreen

如前所述,tmuxscreen 是防止会话中断的最佳工具。

linux远程断开后如何恢复

设置 SSH 保持连接

修改 SSH 配置,增加 ServerAliveIntervalClientAliveInterval,防止因超时断开。

  • 服务器端配置
    编辑 /etc/ssh/sshd_config

    ClientAliveInterval 60
    ClientAliveCountMax 3
  • 客户端配置
    编辑 ~/.ssh/config

    Host 
      ServerAliveInterval 60
      ServerAliveCountMax 3

使用 autossh

如前所述,autossh 可以自动重连,适用于网络不稳定的环境。


在 Linux 远程连接断开后,恢复会话的关键在于预防措施和使用合适的工具。tmuxscreen 是最常用的终端复用器,可以有效防止会话中断,合理设置 SSH 参数和使用 autossh 也可以提高连接的稳定性,如果未采取预防措施,可以尝试恢复临时文件或使用定时任务来减少数据丢失。


FAQs

如何在 SSH 断开后自动恢复连接?

可以使用 autossh 工具,它可以在 SSH 连接断开后自动重连。

autossh -M 0 -q user@remote_host

-M 0 禁用监视连接,-q 启用静默模式。

如何防止 SSH 会话因超时断开?

可以通过修改 SSH 配置来增加 ClientAliveIntervalClientAliveCountMax,在客户端配置文件 ~/.ssh/config 中添加:

Host 
    ServerAliveInterval 60
    ServerAliveCountMax 3

原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/100009.html

(0)
酷盾叔的头像酷盾叔
上一篇 2025年8月9日 10:55
下一篇 2025年8月9日 10:58

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN