Linux 知道远程端口转发是否成功?

Linux 知道远程端口转发是否成功?,linux,bash,ssh,remote-access,portforwarding,Linux,Bash,Ssh,Remote Access,Portforwarding,我正在尝试设置一些反向ssh隧道,这样我就可以通过使用公共IP从某个服务器上跳转来访问我的家庭网络 运行此命令时: ssh-R:[port\u XX]:本地主机:22个_user@my_server 即使“port_XX”正在使用中,它仍然会成功地通过ssh连接到“my_server” 如果我直接运行此命令,当它向我发出警告时,我可以看到问题: “警告:侦听端口[port_XX]的远程端口转发失败” 但是,我正在使用cron作业在屏幕会话中启动这个ssh会话 如何以编程方式检查远程端口转发是否成

我正在尝试设置一些反向ssh隧道,这样我就可以通过使用公共IP从某个服务器上跳转来访问我的家庭网络

运行此命令时: ssh-R:[port\u XX]:本地主机:22个_user@my_server

即使“port_XX”正在使用中,它仍然会成功地通过ssh连接到“my_server”

如果我直接运行此命令,当它向我发出警告时,我可以看到问题: “警告:侦听端口[port_XX]的远程端口转发失败”

但是,我正在使用cron作业在屏幕会话中启动这个ssh会话

如何以编程方式检查远程端口转发是否成功?

screen会话可以用“screen-ls”进行检查,ssh会话也很容易检查,但是远程端口转发


(如果这个问题不够清楚,请告诉我!我已经做了研究,但还没有找到简单的解决方案。)

尝试添加
-o ExitOnForwardFailure=yes

完整命令类似于:

ssh -N -R [port_XX]:localhost:22 -o ExitOnForwardFailure=yes user@host

-N
仅用于转发端口,无需打开远程外壳;您还可以添加
-f
在后台发送进程,但如果您在屏幕下运行,则无需…)

啊哈!我知道有一个简单的方法。我仔细查看了这些选项,但找不到一个好的例子来说明如何做到这一点。谢谢为我工作。问:如果没有这个选项,转发失败后留下的隧道是有用的,还是已经死了?