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

我有X11转发,所以我可以从我的桌面看到我的服务器上的程序窗口,我想知道我是否断开ssh会话与x11转发到我的PC,该程序将在断开连接后在服务器端关闭? 如果确实如此,有没有办法防止这种情况发生?

我在我的服务器上运行MEGASync,它需要运行X服务器来使用它,我不能使用VNC,因为iptables行为奇怪,无法正常打开端口。 我想保持megasync在服务器上运行,而不必保持与SSH连接,这样我就可以关闭我的电脑了。

有什么办法吗?

Xpra似乎正是您正在寻找的。 它有点像屏幕或tmux,但适用于X11应用程序。

有关示例,请参阅http://unix.stackexchange.com上的此答案 。

我会探索两种途径。 最简单的方法是通过将ServerAliveInterval 60添加到ssh客户端配置来保持ssh的活跃性

 cat <<- EOF >> $HOME/.ssh/config # send packets over ssh every 60 seconds to keep ssh connection alive ServerAliveInterval 60 EOF 

或者安装屏幕或tmux,我个人使用tmux

所以在服务器上你需要运行

 sudo apt-get install tmux 

然后在服务器上启动tmux

 tmux -2 

用连接到服务器

 ssh -X -C -c blowfish-cbc,arcfour [-pPORT_NUM] user@1.2.3.4 

哪里

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

压缩的东西本质上不是,但减少了服务器的懒散/响应

然后从tmux会话中启动您的程序

 $ your program 

如果您的ssh断开连接,程序应继续在服务器上运行,一旦您获得新的ssh连接,重新连接程序,运行

 tmux attach 

在服务器上