0%

windows进行端口映射

Windows 端口映射配置指南

在 Windows 系统中,可以通过netsh命令行工具的portproxy功能实现端口映射(端口转发),这在需要将外部网络请求转发到内网服务时非常有用(如远程访问内网服务器、游戏联机等场景)。

端口映射核心命令

1. 查询所有端口映射规则

查看当前系统中已配置的所有 IPv4 到 IPv4 的端口映射规则:

1
netsh interface portproxy show v4tov4

2. 筛选特定 IP 的映射规则

查询包含指定 IP 的所有端口映射(支持内网 IP 或外网 IP):

1
netsh interface portproxy show v4tov4 | find "目标IP"

示例:查询包含内网 IP 192.168.1.1 的映射规则

1
netsh interface portproxy show v4tov4 | find "192.168.1.1"

3. 添加端口映射规则

将来自外网 IP: 外网端口的请求转发到内网 IP: 内网端口

1
2
3
4
5
netsh interface portproxy add v4tov4 
listenaddress=外网IP
listenport=外网端口
connectaddress=内网IP
connectport=内网端口

参数说明

  • listenaddress:本地对外暴露的 IP(通常是公网 IP 或局域网出口 IP)
  • listenport:本地对外暴露的端口
  • connectaddress:需要转发到的内网目标 IP
  • connectport:内网目标服务的端口

示例:将来自 2.2.2.2:8080 的请求转发到内网 192.168.1.50:80

1
netsh interface portproxy add v4tov4 listenaddress=2.2.2.2 listenport=8080 connectaddress=192.168.1.50 connectport=80

4. 删除端口映射规则

删除指定的端口映射(需精确匹配外网 IP 和端口):

1
2
3
netsh interface portproxy delete v4tov4 
listenaddress=外网IP
listenport=外网端口

示例:删除 2.2.2.2:8080 的映射规则

1
netsh interface portproxy delete v4tov4 listenaddress=2.2.2.2 listenport=8080

注意事项

  1. 管理员权限:执行netsh portproxy命令需要以管理员身份运行命令提示符(CMD),否则可能失败。
  2. 防火墙配置
    • 需在 Windows 防火墙中放行listenport(外网端口),否则外部请求会被拦截。
    • 配置路径:控制面板 → 系统和安全 → Windows Defender 防火墙 → 高级设置 → 入站规则 → 新建规则(端口)。
  3. 适用场景
    • 远程访问内网服务(如通过公网访问内网的 Web 服务器、SSH 服务)。
    • 解决端口冲突(如将默认端口转发到其他端口)。
    • 虚拟机或容器的端口暴露(如将宿主机端口转发到虚拟机内部端口)。
  4. IPv6 支持:若需配置 IPv6 的端口映射,可将命令中的v4tov4替换为v6tov6(IPv6 到 IPv6)或v4tov6(IPv4 到 IPv6)。

示例场景

假设内网有一台 Web 服务器(IP:192.168.1.100,端口:80),需要通过路由器的公网 IP(203.0.113.5)的8080端口对外提供服务:

  1. 在路由器中配置端口转发(将203.0.113.5:8080转发到内网主机192.168.1.100:80)。

  2. 若内网主机本身需要作为转发节点,可在该主机上执行:

    1
    netsh interface portproxy add v4tov4 listenaddress=192.168.1.100 listenport=8080 connectaddress=192.168.1.100 connectport=80

通过上述配置,外部用户访问 203.0.113.5:8080 即可连接到内网的 Web 服务。

windows进行端口映射

1. 查询端口映射情况

1
netsh interface portproxy show v4tov4

2. 查询某一个IP的所有端口映射情况

1
2
3
netsh interface portproxy show v4tov4 | find "[IP]"
# 例:
netsh interface portproxy show v4tov4 | find "192.168.1.1"

3. 增加一个端口映射

1
2
3
netsh interface portproxy add v4tov4 listenaddress=[外网IP] listenport=[外网端口] connectaddress=[内网IP] connectport=[内网端口]
# 例:
netsh interface portproxy add v4tov4 listenaddress=2.2.2.2 listenport=8080 connectaddress=192.168.1.50 connectport=80

4. 删除一个端口映射

1
2
3
netsh interface portproxy delete v4tov4 listenaddress=[外网IP] listenport=[外网端口]
# 例:
netsh interface portproxy delete v4tov4 listenaddress=2.2.2.2 listenport=8080

欢迎关注我的其它发布渠道

表情 | 预览
快来做第一个评论的人吧~
Powered By Valine
v1.3.10