使用一台外网机器做中转,使两台内网的机器能够连接
网络结构
由于主机A和主机B在内网,主机C无法主动连接A或B,同时,主机A和B也无法相互连接。
例如:在家里(主机A)无法直接访问公司位于内网重的电脑(主机B),或者主机A和主机B分别是位于两个公司的内网。
本方法适用于其它与上图网络结构类似的情况。
但是主机A和主机B均可以主动连接主机C,因此,可以利用主机C做中转,从而实现主机A连接主机B。
实现步骤
- 建立主机A和主机C的连接,在主机A上执行:
ssh -fCNR 2222:localhost:22 root@111.111.111.111
参数2222:localhost:22
的代表远程主机端口 : 目标主机 : 目标主机端口
。整条命令行的意思是让远程主机监听2222端口,并将数据转发给目标主机(也就是主机A)。 - 在主机C上开启2221端口并将数据转发到2222端口:
ssh -fCNL "*:2221:localhost:2222" localhost
- 此时在主机B上连接主机C的2221端口将会被转发到主机A的22端口。例如在主机B上执行:
ssh user@111.111.111.111 -p 2221
将登录到主机A。