Windows使用命令转发端口

在Windows系统中,从XP开始就内嵌了一个设置网络端口转发的功能。依靠这个功能,任何到本地端口的TCP连接(ipv4或者ipv6)都能够被转发到任意一个本地端口,甚至是远程主机的某个端口。这种配置方法适用于Windows的任意版本。

netsh interface portproxy add v4tov4 listenaddress=127.0.0.1 listenport=200 connectaddress=192.168.1.1 connectport=80

参数意义:

1.listenaddress — 等待连接的本地ip地址

2.listenport — 本地监听的TCP端口(待转发)

3.connectaddress — 被转发端口的本地或者远程主机的ip地址

4.connectport — 被转发的端口

 

使用netstat命令来验证3340端口是否正在监听中

netstat -ano | findstr :200

注意:

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

Windows使用命令转发端口

并且需要在网络配置中查看端口转发规则是否被创建、IPv6的支持是否开启。
Windows使用命令转发端口

你可以创立任意的Windows端口转发规则,所有的netsh接口下的端口代理规则都是永久的,并且储存在系统中(不受开机重启的影响)

下面的命令是用来展示系统中的所有转发规则:

netsh interface portproxy show all

在本例中仅有一条从200到80的转发命令

netsh interface portproxy dump
#========================
# 端口代理配置
#========================
pushd interface portproxy

reset
add v4tov4 listenport=200 connectaddress=192.168.1.1 connectport=80


popd

# 端口代理配置结束

删掉一个特定的端口转发规则命令:

netsh interface portproxy delete v4tov4 listenport=200 listenaddress=127.0.0.1

清空当前所有的配置规则命令:

netsh interface portproxy reset

注意:

1、这些转发规则仅仅适用于TCP端口,对于UDP的端口转发,使用上面的方法是无效的。还有在配置规则时,不能将127.0.0.1作为连接地址。

2、在Windows 2003/XP中,你必须在注册表(HKLM\SYSTEM\ControlSet001\Services\Tcpip\Parameters)中找到并设置IPEnableRouter参数为1才能实现端口转发。