了解远程端口是否成功?

我试图设置一些反向的SSH隧道,所以我可以访问我的家庭networking通过反弹一些公共IP的服务器。

当我运行这个命令:ssh -R:[port_XX]:localhost:22 some_user @ my_server

即使正在使用“port_XX”,它仍然会成功连接到“my_server”。

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

但是,我正在使用cron作业在屏幕会话内启动此ssh会话。

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

屏幕会话可以用“screen -ls”检查,ssh会话也很容易检查,但远程端口转发…?

(请让我知道,如果这个问题不够清楚!我已经做了我的研究,但还没有find一个简单的解决scheme。)

尝试添加-o ExitOnForwardFailure=yes

完整的命令将是这样的:

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

-N对于转发端口很有用,不用打开远程shell;你也可以在后台添加-f发送进程,如果你正在屏幕下运行则不需要)