使用SSH反向隧道进行内网穿透

假设有机器A 和B,A 有公网IP,B 位于NAT 之后并无可用的端口转发,现在想由A 主动向B 发起SSH 连接。由于B 在NAT 后端,无可用公网IP + 端口 这样一个组合,所以A 无法穿透NAT,这篇文章应对的就是这种情况。

首先有如下约定,因为很重要所以放在前面:

机器代号 机器位置 地址 账户 ssh/sshd 端口 是否需要运行sshd
A 位于公网 a.site usera 22 是
B 位于NAT 之后 localhost userb 22 是
C 位于NAT 之后 localhost userc 22 否
这里默认你的系统init 程序为systemd,如果你使用其他的init 程序,如果没有特殊理由还是换到一个现代化的GNU/Linux 系统吧……

SSH 反向隧道
这种手段实质上是由B 向A 主动地建立一个SSH 隧道,将A 的6766 端口转发到B 的22 端口上,只要这条隧道不关闭,这个转发就是有效的。有了这个端口转发,只需要访问A 的6766 端口反向连接B 即可。

首先在B 上建立一个SSH 隧道,将A 的6766 端口转发到B 的22 端口上:

1
B $ ssh -p 22 -qngfNTR 6766:localhost:22 usera@a.site
然后在A 上利用6766 端口反向SSH 到B:

1
A $ ssh -p 6766 userb@localhost
要做的事情其实就是这么简单。

参考文档:
http://arondight.me/2016/02/17/%E4%BD%BF%E7%94%A8SSH%E5%8F%8D%E5%90%91%E9%9A%A7%E9%81%93%E8%BF%9B%E8%A1%8C%E5%86%85%E7%BD%91%E7%A9%BF%E9%80%8F/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值