About this blog

MENU

在Windows下通过netsh实现端口转发

2018 年 01 月 12 日 • 阅读: 33 • 技术,教程

在之前的使用 netsh 在有限的家庭 NAT 网络条件下配置备份服务器这篇文章中,使用到了Windows下的Network Shell(netsh)来转发局域网内的流量,但其中并没有详细说明netsh的端口转发功能的使用方法所以再写一篇文章来介绍netsh中端口转发的命令使用方法

创建端口转发命令

命令

#通过IPv4代理转发IPv4计算机流量
netsh interface portproxy add v4tov4
#通过IPv4代理转发IPv6计算机流量
netsh interface portproxy add v6tov4
#通过IPv6代理转发IPv4计算机流量
netsh interface portproxy add v4tov6
#通过IPv6代理转发IPv6计算机流量
netsh interface portproxy add v6tov6

命令语法

以IPv4转发IPv4为例

netsh interface portproxy add v4tov4 [listenport=]<integer>|<servicename>
            [connectaddress=]<IPv4 address>|<hostname>
            [[connectport=]<integer>|<servicename>]
            [[listenaddress=]<IPv4 address>|<hostname>]
            [[protocol=]tcp]

参数

标记
listenportIPv4 侦听端口(代理机器使用的端口)
connectaddressIPv4 连接地址(被代理机器的IP地址)
connectportIPv4 连接端口(被代理机器使用的端口)
listenaddressIPv4 侦听地址(代理机器的IP地址)
protocol使用的协议。现在只支持 TCP。

样例

将192.168.137.2的88端口转发到本地计算机任意IP的80端口

netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=80 connectaddress=192.168.137.2 connectport=88

将本地计算机8080端口转发到本机192.168.1.44的80端口

netsh interface portproxy add v4tov4 listenport=80 connectaddress=192.168.1.44 connectport=8080

将192.168.1.44的80端口转发到52.148.33.12的443端口(可以理解为双网卡,一个接入局域网,一个直接接入公网)

netsh interface portproxy add v4tov4 listenaddress=52.148.33.12 listenport=443 connectaddress=192.168.1.44 connectport=80

显示已转发的端口

#显示所有已转发的端口
netsh interface portproxy show all
#显示所有v4转v4的端口转发
netsh interface portproxy show v4tov4
#显示所有v4转v6的端口转发
netsh interface portproxy show v4tov6
#显示所有v6转v4的端口转发
netsh interface portproxy show v6tov4
#显示所有v6转v6的端口转发
netsh interface portproxy show v6tov6

修改端口转发规则

命令

#更新通过IPv4代理转发IPv4计算机流量规则
netsh interface portproxy set v4tov4
#更新通过IPv4代理转发IPv6计算机流量规则
netsh interface portproxy set v6tov4
#更新通过IPv6代理转发IPv4计算机流量规则
netsh interface portproxy set v4tov6
#更新通过IPv6代理转发IPv6计算机流量规则
netsh interface portproxy set v6tov6

命令语法

netsh interface portproxy set v4tov4 [listenport=]<integer>|<servicename>
            [connectaddress=]<IPv4 address>|<hostname>
            [[connectport=]<integer>|<servicename>]
            [[listenaddress=]<IPv4 address>|<hostname>]
            [[protocol=]tcp]

参数

标记
listenportIPv4 侦听端口(代理机器使用的端口)
connectaddressIPv4 连接地址(被代理机器的IP地址)
connectportIPv4 连接端口(被代理机器使用的端口)
listenaddressIPv4 侦听地址(代理机器的IP地址)
protocol使用的协议。现在只支持 TCP。

删除端口转发规则

命令

#删除通过IPv4代理转发IPv4计算机流量规则
netsh interface portproxy delete v4tov4
#删除通过IPv4代理转发IPv6计算机流量规则
netsh interface portproxy delete v6tov4
#删除通过IPv6代理转发IPv4计算机流量规则
netsh interface portproxy delete v4tov6
#删除通过IPv6代理转发IPv6计算机流量规则
netsh interface portproxy delete v6tov6

命令语法

netsh interface portproxy delete v4tov4 [listenport=]|

        [[listenaddress=]<IPv4 address>|<hostname>]
        [[protocol=]tcp]

参数

标记
listenportIPv4 侦听端口(代理机器使用的端口)
listenaddressIPv4 侦听地址(代理机器的IP地址)
protocol使用的协议。现在只支持 TCP。

参考资料

Netsh Technical Reference Documents

返回文章列表 文章二维码 打赏
本页链接的二维码
打赏二维码