SSH端口转发-本地转发

前言

工作中有一个需求,访问本机(假设称为机器A)的80端口,就相当于访问了机器C的80端口,然而,机器C是一个内网服务器,机器B是一个公网服务器,所以需要借助机器B,进行请求转发。

简单的说,B与C通过内网链接,B可以公网访问,通过把B作为跳板机,实现对C的访问。

实现

在A机器上执行如下SSH命令:

1
ssh -L LOCAL_PORT:C_HOST_IP:REMOTE_PORT B_HOST_IP

比如说我想在A机器上连接C机器上的服务器,其端口号是80,然后我可以这样写:

1
ssh -L 8080:C_HOST_IP:80 B_HOST_IP

也就是说所有的到localhost:8080的请求都会通过B host转发到C host的80端口。
所以我们可以建立ssh隧道来达到此类效果。

与之相反的是远程转发,只需要将参数改变为 -R