Windows通过命令行开启端口转发/端口映射

家庭路由器中有一个功能,就是将路由器指定的公网端口转发/映射到内网指定主机的指定端口,这样可以使内网主机对外提供服务。

Windows操作系统也拥有类似功能,可以将访问本机某特定端口的流量转发到网络上任意主机。

Windows开启端口转发的方法如下:首先关闭杀毒软件。然后以管理员权限启动命令行,运行如下两条命令

netsh ipv6 install
netsh interface portproxy add v4tov4 listenaddress=192.168.111.1 listenport=80 connectaddress=192.168.111.2 connectport=80 protocol=tcp

其中,“netsh ipv6 install”仅需在Windows XP/2003系统中运行,高版本已自动开启ipv6,无需运行。listenaddressprotocol可以省略,listenport代表本地监听端口,connectaddress代表被转发到的地址,也叫目标地址。connectport代表目的地址的转发目标端口。设置完成后运行“netsh interface portproxy show all”命令即可查看本机所有转发规则,如下图所示

访问本地,流量随即转发到了目标服务器

已知问题

在Windows 7 x64系统中无法对已创建的映射进行删除,解决方法是通过Windows update将系统升级至最新状态,此时该功能界面会变为英文,如下图

研究了一下,通过“chcp”命令将终端更改为不包含中文的其他编码,英文状态下的文字描述没有问题,因此可以认为,这里的所谓“问题”其实就是翻译错误导致的问题。