SSH本地端口转发与SSH远程端口转发结合起来使用,可以进行链式转发。

 

假设A主机在公司,B主机在家,C主机为远程云主机。

A主机上运行了Node.js服务,需要在B主机上访问该服务。

由于A和B不在同一个网络,且A主机没有独立的公网IP地址,所以无法直接访问服务。

SSH链式端口转发

 

通过本地端口转发,将发送到B主机4000端口的请求,转发到远程云主机C的3000端口。

1、在B主机登陆远程云主机C,并进行本地端口转发:

ssh -L 4000:103.59.22.17:3000 root@103.59.22.17

 

通过远程端口转发,将发送到远程云主机C端口3000的请求,转发到A主机的2000端口。

2、在A主机登陆远程云主机C,并进行远程端口转发:

ssh -R 3000:localhost:2000 root@103.59.22.17

 

这样,在主机B可以通过访问 http://localhost:4000 来访问主机A上的服务。

3、在主机B访问主机A上的服务:

curl http://localhost:4000
THE END