在Linux系统中我们可以使用ssh或者autossh进行端口转发。
在Linux中使用ssh或者autossh进行端口转发可以查看
在Window中我们可以使用netsh命令进行端口转发。
注意:在window中现在只能针对TCP请求进行端口转发,不能对UDP协议进行转发。
一、端口转发介绍
端口转发(Port Forwarding):通过监听一个端口,将所有收到的数据,转发到另一个配置的本地端口或者远程地址的端口中。
可以看一张图片来大致的了解一下端口转发。
上面的图解:当我们去请求【本地:PortA】的时候,相当于请求的【远程或者本地:PortB】一样。
二、在window中使用netsh命令
1.在window中,进行端口转发时,使用portproxy模式下进行配置。必须使用管理员身份运行下面的命令。
2.创建一个端口转发:
netsh interface portproxy add v4tov4 listenport=3340 listenaddress=0.0.0.0 connectaddress=192.168.15.178 connectport=3389
参数说明:
- interface portproxy:切换到端口代理的上下文中。固定不变。
- add:表示添加一个端口转发。
- v4tov4:表示添加的类型。还可以v4tov6,v6tov4,v6tov6四种参数
- listenport:想要监听那个端口,相当于图1中的PortA
- listenaddress:配置监听的地址,如何配置0.0.0.0表示本地的任何地址,如果是127.0.0.1,只有在请求通过这个回环地址,才会进行端口转发。监听的网卡地址。
- connecport:转发到的端口,相当于图1中的PortB。
- connectaddress:配置的转发的地址,可以是这个机器连接到的任何地址。
3.查看所有的端口转发:
netsh interface portproxy show all
4.删除一个端口映射
netsh interface portproxy delete v4tov4 listenport=3340 listenaddress=0.0.0.0
5.删除所有的端口映射
netsh interface portproxy reset
6.显示端口配置脚本
netsh interface portproxy dump
三、使用示例
1.远程连接示例1:
非标准的远程桌面连接端口,进行远程桌面连接请求。我们想通过请求3340,来完成远程桌面连接。而不是使用默认的端口3389。
实现步骤:
- 远程桌面连接默认的使用的端口是3389端口。首先将3340转发到3389,完成请求3340相当于请求3389。完成请求3340完成远程桌面连接。
netsh interface portproxy add v4tov4 listenport=3340 listenaddress=0.0.0.0 connectport=3389 connectaddress=192.168.15.178
2.查看端口转发的映射:
netsh interface portproxy show all
或者使用
netstat -ano | findstr 3340
我们可以从中看到,正在监听3340端口。
如果没有显示的话,检查IP Helper服务是否开启。
检查IPv6支持是否开启,
3.连接远程桌面服务:
从而使用3340端口完成远程桌面连接。
注意:进行远程桌面连接之前,确保我们的电脑可以进行远程桌面连接。
2.使用示例2:
使用目的:本地机器通过浏览器请求服务器上的资源(192.168.15.177:8888)的资源。
使用步骤:
1.将本地的80端口请求,转发到另一台机器8888端口。
netsh interface portproxy add v4tov4 listenport=80 listenaddress=0.0.0.0 connectport=8888 connectaddress=192.168.15.177
2.直接在浏览器上请求:http://localhost,相当于请求了192.168.15.177:8888的资源内容。
更多精彩内容:请关注公众号: