0%

使用ssh实现内网穿透

使用一台外网机器做中转,使两台内网的机器能够连接

网络结构


由于主机A和主机B在内网,主机C无法主动连接A或B,同时,主机A和B也无法相互连接。

例如:在家里(主机A)无法直接访问公司位于内网重的电脑(主机B),或者主机A和主机B分别是位于两个公司的内网。
本方法适用于其它与上图网络结构类似的情况。

但是主机A和主机B均可以主动连接主机C,因此,可以利用主机C做中转,从而实现主机A连接主机B

实现步骤

  1. 建立主机A和主机C的连接,在主机A上执行:
    ssh -fCNR 2222:localhost:22 root@111.111.111.111
    参数2222:localhost:22的代表 远程主机端口 : 目标主机 : 目标主机端口。整条命令行的意思是让远程主机监听2222端口,并将数据转发给目标主机(也就是主机A)。
  2. 在主机C上开启2221端口并将数据转发到2222端口:
    ssh -fCNL "*:2221:localhost:2222" localhost
  3. 此时在主机B上连接主机C的2221端口将会被转发到主机A的22端口。例如在主机B上执行: ssh user@111.111.111.111 -p 2221 将登录到主机A。