我已启用 X11 转发,因此我可以从桌面查看服务器上的程序窗口。我想知道,如果我断开 ssh 会话并将 x11 转发到我的 PC,断开连接时该程序是否会在服务器端关闭?如果会,有没有什么方法可以防止这种情况发生?
我的服务器上正在运行 MEGASync,需要运行 X 服务器才能使用它,我无法使用 VNC,因为 iptables 行为异常,无法正确打开端口。我想让 megasync 在服务器上继续运行,而不必保持与 SSH 的连接,这样我就可以关闭我的 PC。
有什么办法吗?
答案1
西普拉似乎正是您要找的东西。它有点像 screen 或 tmux,但适用于 X11 应用程序。
答案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
在服务器上