加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

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

发布时间:2020-12-14 01:14:09 所属栏目:Linux 来源:网络整理
导读:我正在尝试设置一些反向ssh隧道,以便通过使用公共IP弹出一些服务器来访问我的家庭网络. 当我运行此命令时: ssh -R:[port_XX]:localhost:22 some_user @ my_server 即使“port_XX”正在使用中,它仍然会成功连接到“my_server”. 如果我直接运行此命令,我
我正在尝试设置一些反向ssh隧道,以便通过使用公共IP弹出一些服务器来访问我的家庭网络.

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

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

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

但是,我使用cron作业在屏幕会话中启动此ssh会话.

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

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

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

解决方法

尝试添加-o ExitOnForwardFailure = yes

完整的命令将是这样的:

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读