一、应用场景
有某个服务在内网服务器,需要通过外网访问到,在没有路由的端口转发情况下可以通过某台拥有外网ip的主机搭建一个SSH隧道实现内网穿透。或者假设有机器A、B、C三台机器,A 能访问外网但与B、C不属于同一个网段,B有公网IP且B 位于C同一个网段,C无公网IP,处在NAT后端,想实现A与C的连接,就可以通过这样一个SSH隧道来实现。一般会在云服务器上需要用到。隧道搭建好可以实现类似端口转发的功能。
二、详细过程
ssh -Nf -L *:3389:10.10.130.110:3389 127.0.0.1
参数解释:
-N:告诉SSH客户端,这个连接不需要执行任何命令。仅仅做端口转发
-f:告诉SSH客户端在后台运行
-L:做本地映射端口
*:3389代表的是任意IP的3389端口请求,冒号是分割符
10.10.130.110:3389代表的是内网需要转发到的机器的ip以及端口
127.0.0.1 是建立隧道的机器ip地址
ssh命令是需要输入密码的,输入的是建立隧道的机器ssh登录密码,也就是建立隧道的机器当前登录用户的密码
隧道搭建好以后就可以通过B机器的外网IP以及设置的端口来实现对C机器的访问了