使用Windows自带命令netsh实现端口转发(映射/重定向)
  一直以来没太关注过Windows系统的端口转发功能,毕竟使用需要用的的地方太少,最近给一个朋友调试一个挖虚拟币的软件,发现Windows的这个功能还挺有趣。从XP开始Windows系统都内嵌了网络端口转发的功能,使Netsh命令即能实现Windows系统任何到本地端口的TCP连接(ipv4或者ipv6)被转发到任意一个本地/远端端口。

示例

将80端口转发到另一台服务器的80端口:
netsh interface portproxy add v4tov4  listenport=80 listenaddress=172.16.88.2  connectport=80 connectaddress=172.16.88.13

将8080端口转发到另一台服务器的IPV6地址的80端口
netsh interface portproxy add v4tov6  listenport=8080 listenaddress=172.16.88.2  connectport=80  connectaddress=2001:de4::101

测试:netstat -ano | findstr :80来验证80端口是否正在监听中

listenaddress – 本机ip地址(支持IPV4/IPV6,不能是127.0.0.1或localhost)。
listenport –待转发的本地端口 。
connectaddress – 转发目标的本地或远程主机的ip地址(支持域名/IPV6)

connectport –转发目标的tcp端口


其它命令:

查看系统中的所有转发规则:
netsh interface portproxy show all
查看系统中的所有IPV4转发规则
netsh interface portproxy show  v4tov4
查看端口转发的设置:netsh interface portproxy dump
删掉一个特定的端口转发规则(上面添加的80端口的转发规则):
netsh interface portproxy delete v4tov4 listenaddress=172.16.88.2 listenport=80
清空当前所有的配置规则:
netsh interface portproxy reset

为何不生效:

1、ip helper服务没有启动
2、本地防火墙限制
3、将本机端口转发不要使用127.0.0.1
4、不支持UDP端口
5、默认重启地转发规则也会生效,不过听说win2008有时候会失效,请自行测试。

如果需要转发UDP端口或不喜欢命令行,可以使用其它的端口转发工具进行转发。


第三方的端口转发工具:

1、NetworkActiv AUTAP


2、UPnP PortMapper
这个是Java转件,因为我没有安装java,就不截图了。



AD: 腾讯云 1核2G云服务器首年38元
推广推荐

Proudly Powered By WordPress | IEWB.NET 2009-2024 版权所有