需要有一台外网的linux服务器

内网机器执行

1
plink.exe -C -N -R 1234:localhost:80 root@remotehost

其中1234为在外网linux上开的端口,不过这个端口只能在linux外网服务器本地访问,80为内网web服务器端口。这条命令的作用是把本机(内网机器)的80端口的数据转发到外网linux机器的127.0.0.1:1234端口。

其实到这一步在外网linux服务器上就已经可以访问内网的80端口了,但只能是外网linux服务器本机访问,下面的步骤可以让所有用户都能访问到。

外网机器安装socat,执行

1
socat tcp-listen:80,reuseaddr,fork tcp:localhost:1234

其中80为linux本机开的对外端口,1234为内网连接传输数据的端口,本条命令的作用是把由ssh转发到本机(外网linux)1234端口的数据转发到0.0.0.0:80端口

这样访问外网linux服务器的80端口就相当于访问了内网web服务器的80端口。