我正在做一个双跳SSH,首先进入一个具有公共IP地址和开放SSH端口的服务器,然后SSH连接到下一台计算机,同时将我的本地VNC端口链接到远程系统端口。在图中:
[我的本地系统] --- SSH隧道(端口5900转发) - > [服务器] - SSH隧道(端口5900转发) - > [远程系统]
我创建了一个单独的字符串命令来完成所有这些,但是有一个问题。x11VNC似乎崩溃了过多的数量。就像字面上我可能会在我的系统再次冻结之前完成10分钟的工作,我必须重新启动x11vnc。但这不是这个问题的意思。
我使用的命令如下:
ssh -L 5900:[REMOTE SYSTEM IP]:5900 user@FQDN.SERVER.NET 'ssh [REMOTE SYSTEM IP] 'pkill x11vnc; x11vnc --ncache 10''
现在我已经在这里包含了PKILL命令,因此它将清除仍在运行的冻结的x11vnc实例,这样我就可以释放端口5900(并且没有渗透我的系统的僵尸进程):但是这不起作用。无论我做什么,如果它是双跳,这只是返回x11vnc,命令未找到
注意:如果我删除pkill,此命令字符串可以正常工作。但我需要杀死僵尸
如果从服务器,我尝试运行命令:
ssh [REMOTE SYSTEM IP] 'pkill x11vnc; x11vnc --ncache 10'
这很好用!有谁知道为什么这在做“双跳”ssh连接时不起作用?