如何在断开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
在服务器上