网络中断后重新初始化/重新连接终端

时间:2009-06-21 08:00:46

标签: linux session ssh terminal

我有一个非常简单的终端相关问题。   我正在运行Ubuntu 8.10 Intrepid Ibex,使用Gnome,我经常打开一个基于终端的 ssh会话只是为了让它在以后的某个时候掉线。一旦会话被删除了 终端变得无法使用,显然是因为网络连接已被丢弃。

有没有办法重新初始化会话,甚至还原到工作的本地终端?

在Windows下,使用putty,当发生这种情况时,我可以右键单击并选择重启会话, 并且不需要打开一个新终端,但是在linux下我对此缺乏了解 主题让我总是关闭已失效的终端,并从头开始重新启动。   我想学习一个新的有用的技巧,如果那里有一个。

另外,我发现以下帖子与我的帖子非常相似,

Automatically (or more easily) reconnect to a screen session after network interruption 重新连接到一个屏-会话后网络INTERR

然而,据我所知,这是一个不同的主题。

3 个答案:

答案 0 :(得分:5)

You want to use your SSH escape。默认情况下它是'〜'和〜。将终止您的连接。

您链接的问题是关于屏幕,一旦您使用转义字符杀死本地ssh进程并重新连接,这对于恢复远程会话非常有用。

答案 1 :(得分:4)

首先使用~.在本地断开ssh连接。这会让你回到工作的本地终端。你也可以在另一个终端杀死相应的ssh命令。

为了保持您的远程状态,您应该使用之前建议的screen

我最近发现了mosh这是一个有趣的基于UDP的可恢复shell客户端。它使用ssh初始化连接,可能需要在服务器上安装mosh(以及客户端和服务器之间的UDP访问),但是它可以从客户端的断开连接和IP更改中恢复。

答案 2 :(得分:0)

要使本地终端再次可用,可以使用 reset 命令。

要在虚拟终端中运行命令,可以附加/解除连接,可以使用 screen tmux 屏幕的典型用法:

$ screen -S somename
screen$ some-console-command
...
^ad

通过按ctrl + a键然后按d键从屏幕上脱离

然后您可以列出会话并附加到会话

$ screen -ls
$ screen -dr somename
screen$