SSH本地端口转发与SSH远程端口转发结合起来使用,可以进行链式转发。
假设A主机在公司,B主机在家,C主机为远程云主机。
A主机上运行了Node.js服务,需要在B主机上访问该服务。
由于A和B不在同一个网络,且A主机没有独立的公网IP地址,所以无法直接访问服务。
通过本地端口转发,将发送到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