媲美iptables的Windows端口转发——netsh

Windows系统下的端口转发使用portproxy模式下的netsh命令,该命令的使用前提是要在管理员身份打开cmd进行执行。

1、查看所有规则

netsh interface portproxy show all

2、新增

netsh interface portproxy add v4tov4 listenaddress=localaddress listenport= localport connectaddress=destaddress connectport=destport protocol=tcp

  • listenaddress – 待连接的ip地址。

  • listenport – 待连接的tcp本地端口 。

  • connectaddress – 待连接被转发的本地或远程主机的ip地址(支持域名)

  • connectport – 从listenport转发到的tcp端口

例如:

netsh interface portproxy add v4tov4 listenaddress=127.0.0.1 listenport=9322 connectaddress=127.0.0.1 connectport=9222

解析:监听127.0.0.1:9322 端口的所有数据, 转发到127.0.0.1:9222

3、删除一条规则

netsh interface portproxy delete v4tov4 listenport=9322 listenaddress=127.0.0.1

4、查看监听端口

netstat -ano | findstr :3340

验证3340端口是否正在监听中,如果该命令没有返回任何信息,或者说通过netsh接口并没有实现端口转发的功能,那么需要查看下系统是否开启了iphlpsvc(ip Helper)服务。

5、清空当前所有的配置规则

netsh interface portproxy reset

总结

用这个还可以玩WSL2和CDP协议类似的案例

参考:

  • Windows端口转发(Port Forwarding in Windows)
  • Windows netsh命令 端口数据重定向,端口请求转发 端口映射?

你可能感兴趣的:(windows,网络)