在 Windows 系统上实现端口映射可以采用多种方式,以下是其中两种常用的方法

在 Windows 系统上实现端口映射可以采用多种方式,以下是其中两种常用的方法:

使用路由器进行端口映射:将路由器连接到 Internet 上,并将要公网访问的服务所在的计算机连接到路由器上,然后在路由器的设置页面中进行端口映射的配置,将来自公网的访问请求转发到指定的内部 IP 地址和端口号。具体操作步骤视路由器型号和品牌而有所不同,请参考相应的说明文档或在线帮助。

使用端口映射工具进行配置:在 Windows 上可以使用诸如 PortMapper、Simple Port Forwarding 等端口映射工具,通过简单的界面操作来完成端口映射的配置。这些工具通常支持 TCP/UDP 协议、多种映射方式和多个端口转发,同时提供了日志记录和高级设置等功能,便于用户进行检查和优化。

Windows 下实现端口映射
1.  查询端口映射情况

netsh interface portproxy show v4tov4
2. 查询某一个 IP 的所有端口映射情况

netsh interface portproxy show v4tov4 | find "[IP]"
例:
netsh interface portproxy show v4tov4 | find "192.168.1.1"
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. 删除一个端口映射

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


在 Windows Server 2022 中,您可以使用以下命令行工具和批处理脚本来进行端口映射的查询、创建和删除操作:

查询端口映射:
netsh interface portproxy show all
该命令将显示当前计算机上所有的端口映射规则。

创建端口映射:
netsh interface portproxy add v4tov4 listenaddress=localaddress listenport=localport connectaddress=destaddress connectport=destport
其中,将 listenaddress 和 listenport 替换为本地地址和端口号,将 connectaddress 和 connectport 替换为目标地址和端口号。例如,要将本地计算机的 80 端口映射到远程计算机的 8080 端口,可以运行以下命令:

netsh interface portproxy add v4tov4 listenaddress=192.168.1.100 listenport=80 connectaddress=192.168.2.100 connectport=8080
删除端口映射:
netsh interface portproxy delete v4tov4 listenaddress=localaddress listenport=localport
其中,将 listenaddress 和 listenport 替换为要删除的规则的本地地址和端口号。例如,要删除前面创建的映射规则,可以运行以下命令:

netsh interface portproxy delete v4tov4 listenaddress=192.168.1.100 listenport=80
以上命令可以直接在命令提示符窗口中执行。如果您想将多个命令组合成批处理脚本,则可以创建一个文本文件,将各个命令逐行添加进去,并保存为 .bat 扩展名的文件。然后,只需双击该文件即可运行其中的所有命令。

在 Windows 11 中,您可以使用以下命令行工具和批处理脚本来进行端口映射的查询、创建和删除操作:

查询端口映射:
netsh interface portproxy show all
该命令将显示当前计算机上所有的端口映射规则。

创建端口映射:
netsh interface portproxy add v4tov4 listenaddress=localaddress listenport=localport connectaddress=destaddress connectport=destport
其中,将 listenaddress 和 listenport 替换为本地地址和端口号,将 connectaddress 和 connectport 替换为目标地址和端口号。例如,要将本地计算机的 80 端口映射到远程计算机的 8080 端口,可以运行以下命令:

netsh interface portproxy add v4tov4 listenaddress=192.168.1.100 listenport=80 connectaddress=192.168.2.100 connectport=8080
删除端口映射:
netsh interface portproxy delete v4tov4 listenaddress=localaddress listenport=localport
其中,将 listenaddress 和 listenport 替换为要删除的规则的本地地址和端口号。例如,要删除前面创建的映射规则,可以运行以下命令:

netsh interface portproxy delete v4tov4 listenaddress=192.168.1.100 listenport=80
以上命令可以直接在命令提示符窗口中执行。如果您想将多个命令组合成批处理脚本,则可以创建一个文本文件,将各个命令逐行添加进去,并保存为 .bat 扩展名的文件。然后,只需双击该文件即可运行其中的所有命令。


使用 netsh interface portproxy 命令可以在 Windows 上设置和管理网络端口代理。这些命令允许您配置 IPv4 和 IPv6 之间的代理关系。以下是每个命令的简要说明和示例:

1. 添加端口代理

  • add v4tov4:添加 IPv4 到 IPv4 的端口代理。

    bashCopy Code
    netsh interface portproxy add v4tov4 listenport=8080 listenaddress=0.0.0.0 connectport=80 connectaddress=192.168.1.100
  • add v4tov6:添加 IPv4 到 IPv6 的端口代理。

    bashCopy Code
    netsh interface portproxy add v4tov6 listenport=8080 listenaddress=0.0.0.0 connectport=80 connectaddress=2001:db8::1
  • add v6tov4:添加 IPv6 到 IPv4 的端口代理。

    bashCopy Code
    netsh interface portproxy add v6tov4 listenport=8080 listenaddress=:: connectport=80 connectaddress=192.168.1.100
  • add v6tov6:添加 IPv6 到 IPv6 的端口代理。

    bashCopy Code
    netsh interface portproxy add v6tov6 listenport=8080 listenaddress=:: connectport=80 connectaddress=2001:db8::1

2. 删除端口代理

  • delete v4tov4:删除 IPv4 到 IPv4 的端口代理。

    bashCopy Code
    netsh interface portproxy delete v4tov4 listenport=8080 listenaddress=0.0.0.0
  • delete v4tov6:删除 IPv4 到 IPv6 的端口代理。

    bashCopy Code
    netsh interface portproxy delete v4tov6 listenport=8080 listenaddress=0.0.0.0
  • delete v6tov4:删除 IPv6 到 IPv4 的端口代理。

    bashCopy Code
    netsh interface portproxy delete v6tov4 listenport=8080 listenaddress=::
  • delete v6tov6:删除 IPv6 到 IPv6 的端口代理。

    bashCopy Code
    netsh interface portproxy delete v6tov6 listenport=8080 listenaddress=::

3. 重置端口代理

  • reset ipv4:重置所有 IPv4 代理配置。

    bashCopy Code
    netsh interface portproxy reset ipv4
  • reset ipv6:重置所有 IPv6 代理配置。

    bashCopy Code
    netsh interface portproxy reset ipv6

4. 设置端口代理

  • set v4tov4:设置或更新 IPv4 到 IPv4 的端口代理。

    bashCopy Code
    netsh interface portproxy set v4tov4 listenport=8080 listenaddress=0.0.0.0 connectport=80 connectaddress=192.168.1.100
  • set v4tov6:设置或更新 IPv4 到 IPv6 的端口代理。

    bashCopy Code
    netsh interface portproxy set v4tov6 listenport=8080 listenaddress=0.0.0.0 connectport=80 connectaddress=2001:db8::1
  • set v6tov4:设置或更新 IPv6 到 IPv4 的端口代理。

    bashCopy Code
    netsh interface portproxy set v6tov4 listenport=8080 listenaddress=:: connectport=80 connectaddress=192.168.1.100
  • set v6tov6:设置或更新 IPv6 到 IPv6 的端口代理。

    bashCopy Code
    netsh interface portproxy set v6tov6 listenport=8080 listenaddress=:: connectport=80 connectaddress=2001:db8::1

5. 显示端口代理配置

  • show all:显示所有配置的端口代理。

    bashCopy Code
    netsh interface portproxy show all
  • show v4tov4:显示所有 IPv4 到 IPv4 的端口代理配置。

    bashCopy Code
    netsh interface portproxy show v4tov4
  • show v4tov6:显示所有 IPv4 到 IPv6 的端口代理配置。

    bashCopy Code
    netsh interface portproxy show v4tov6
  • show v6tov4:显示所有 IPv6 到 IPv4 的端口代理配置。

    bashCopy Code
    netsh interface portproxy show v6tov4
  • show v6tov6:显示所有 IPv6 到 IPv6 的端口代理配置。

    bashCopy Code
    netsh interface portproxy show v6tov6

netsh interface portproxy add v4tov4 命令在 Windows 中设置 IPv4 到 IPv4 的端口代理的详细说明,包括每个参数的意义以及示例。

语法

bashCopy Code
netsh interface portproxy add v4tov4 listenport={Integer | ServiceName} [[connectaddress=]{IPv4Address | HostName}] [[connectport=]{Integer | ServiceName}] [[listenaddress=]{IPv4Address | HostName}] [[protocol=]tcp]

参数说明

  • listenport:
    指定要侦听的 IPv4 端口,可以是端口号(如 8080)或服务名称(如 http)。

  • connectaddress:
    指定要连接的目标 IPv4 地址。可以是 IP 地址(如 192.168.1.100)、计算机的 NetBIOS 名称或 DNS 名称(如 example.com)。如果未指定,默认连接到本地计算机。

  • connectport:
    指定要连接的目标端口,可以是端口号(如 80)或服务名称(如 http)。如果未指定,默认连接到与 listenport 相同的端口。

  • listenaddress:
    指定要侦听的 IPv4 地址。可以是 IP 地址、计算机的 NetBIOS 名称或 DNS 名称。如果未指定,默认侦听所有可用的地址(0.0.0.0)。

  • protocol:
    指定要使用的协议,默认为 tcp

示例

  1. 添加一个简单的端口代理 将所有发送到本地计算机 8080 端口的流量转发到 192.168.1.100 的 80 端口。

    bashCopy Code
    netsh interface portproxy add v4tov4 listenport=8080 connectaddress=192.168.1.100 connectport=80
  2. 使用服务名称 如果想要监听 http 服务(通常是 80 端口),并将流量转发到 example.com 的 8080 端口。

    bashCopy Code
    netsh interface portproxy add v4tov4 listenport=http connectaddress=example.com connectport=8080
  3. 指定侦听地址 监听来自特定 IP 地址(如 192.168.1.10)的请求,并将其转发到同一台机器的 9090 端口。

    bashCopy Code
    netsh interface portproxy add v4tov4 listenport=9090 listenaddress=192.168.1.10 connectport=9090
  4. 使用默认连接地址 只指定 listenportlistenaddress,使其转发到本地的 80 端口。

    bashCopy Code
    netsh interface portproxy add v4tov4 listenport=8080 listenaddress=0.0.0.0

查看当前的端口代理配置

要查看当前的端口代理配置,可以使用以下命令:

bashCopy Code
netsh interface portproxy show all

删除端口代理

如果需要删除刚才添加的端口代理,可以使用以下命令:

bashCopy Code
netsh interface portproxy delete v4tov4 listenport=8080 listenaddress=0.0.0.0

 

posted @ 2023-06-19 01:16  suv789  阅读(1927)  评论(0编辑  收藏  举报