断开 SSH 连接后如何保持远程 X11 应用程序运行?

断开 SSH 连接后如何保持远程 X11 应用程序运行?

我已启用 X11 转发,因此我可以从桌面查看服务器上的程序窗口。我想知道,如果我断开 ssh 会话并将 x11 转发到我的 PC,断开连接时该程序是否会在服务器端关闭?如果会,有没有什么方法可以防止这种情况发生?

我的服务器上正在运行 MEGASync,需要运行 X 服务器才能使用它,我无法使用 VNC,因为 iptables 行为异常,无法正确打开端口。我想让 megasync 在服务器上继续运行,而不必保持与 SSH 的连接,这样我就可以关闭我的 PC。

有什么办法吗?

答案1

西普拉似乎正是您要找的东西。它有点像 screen 或 tmux,但适用于 X11 应用程序。

这个答案http://unix.stackexchange.com举个例子。

答案2

ServerAliveInterval 60我会探索 2 种途径。最简单的方法是通过添加到 ssh 客户端配置来保持 ssh 处于活动状态

cat <<- EOF >> $HOME/.ssh/config

    # send packets over ssh every 60 seconds to keep ssh connection alive
    ServerAliveInterval 60
EOF

或者安装 screen 或 tmux,我个人使用 tmux

因此你需要在服务器上运行

sudo apt-get install tmux

然后在服务器上启动 tmux

tmux -2

使用以下方式连接到服务器

ssh -X -C -c blowfish-cbc,arcfour [-pPORT_NUM] [email protected]

在哪里

  • -X启用 X11 转发。
  • -C请求压缩所有数据(包括 stdin、stdout、stderr 以及转发的 X11、TCP 和 UNIX 域连接的数据)。
  • -c是密码类型

压缩不是必需的,但可以减少服务器的延迟/响应

然后从 tmux 会话内部启动你的程序

IE

$ your program

如果你的 ssh 断开连接,程序应该仍在服务器上运行,一旦建立新的 ssh 连接,就可以重新连接程序,运行

tmux attach

在服务器上

相关内容