[玩转系统] 在 Windows 中配置端口转发
作者:精品下载站 日期:2024-12-14 23:28:19 浏览:15 分类:玩电脑
在 Windows 中配置端口转发
您可以在所有 Windows 版本中配置网络端口转发,而无需使用第三方工具。使用端口转发规则,您可以将传入 TCP 连接(IPv4 或 IPv6)从本地 TCP 端口重定向到任何其他端口号,甚至重定向到远程计算机上的端口。 Windows 端口转发最常用于绕过防火墙或对外部网络 (NAT/PAT) 隐藏内部主机或服务。
在 Linux 世界中,端口转发的配置非常简单,使用iptables 或firewalld规则。在 Windows Server 主机上,路由和远程访问服务 (RRAS) 通常用于配置端口重定向。但是,有一种更简单的方法可以使用以下命令启用端口转发
netsh portproxy
模式,适用于从 Win XP 到当前版本的 Windows 11 和 Windows Server 2022 的所有 Windows 版本。
如何使用 Netsh Portproxy 在 Windows 上启用端口转发?
您可以使用Netsh 命令的Portproxy模式在Windows中配置端口转发。
命令语法如下:
netsh interface portproxy add v4tov4 listenaddress=localaddress listenport=localport connectaddress=destaddress connectport=destport
在哪里
listenaddress - 是一个用于侦听传入连接的本地 IP 地址(如果您在不同子网/VLAN 中有多个 NIC 或一个接口上有多个 IP 地址,则非常有用);
listenport - 要监听的本地 TCP 端口号(连接正在等待);
connectaddress - 是将传入连接重定向到的本地或远程 IP 地址(或 DNS 名称);
connectport - 是连接的 TCP 端口
listenport
被转发到。
使用
netsh interface portproxy add
v4tov6
/
v6tov4
/
v6tov6
选项,您可以在 IPv4 和 IPv6 地址之间创建端口转发规则。
假设您的任务是使 RDP 服务在非标准端口上响应,例如 3340(当然,可以在 Windows 设置中更改此端口号,但我们使用 RDP 是为了更轻松地演示端口转发技术)。为此,我们需要将传入流量从 TCP 端口 3340 重定向到另一个本地端口 3389(这是默认的 RDP 端口号)。
请注意,您在 listenport 中指定的本地端口号不应被其他服务或进程侦听(使用)。检查端口号是否未被使用:
netstat -na|find "3340"
或者,您可以使用 PowerShell cmdlet Test-NetConnection 检查端口是否未在本地侦听:
Test-NetConnection -ComputerName localhost -Port 3340
要在 Windows 上创建端口转发规则,请以管理员身份打开命令提示符并运行以下命令:
netsh interface portproxy add v4tov4 listenport=3340 listenaddress=10.1.1.110 connectport=3389 connectaddress=10.1.1.110
其中 10.10.1.110 - 配置端口转发的计算机的当前 IP 地址。
现在,使用 netstat 工具检查 Windows 是否正在侦听本地端口 3340:
netstat -ano | findstr :3340
注意。如果此命令不返回任何内容,并且通过 netsh 接口 portproxy 进行端口转发不起作用,请确保您的 Windows 设备上正在运行 iphlpsvc(IP Helper)服务。
检查服务的状态
services.msc
控制台或使用 PowerShell 命令:
Get-Service iphlpsvc
必须在为其创建端口转发规则的网络接口上启用 IPv6 支持。
这些是Windows中端口转发正确操作的先决条件。如果没有 IP Helper 服务并且未启用 IPv6 支持,则端口重定向将无法工作。
要使端口转发在 Windows Server 2003/XP 上正常工作,还必须将注册表项 HKEY_LOCAL_MACHINE\ System\CurrentControlSet\services\Tcpip\Parameter 下的 IPEnableRouter 参数设置为 1。
Set-ItemProperty -Path HKLM:\system\CurrentControlSet\services\Tcpip\Parameters -Name IpEnableRouter -Value 1
此选项还允许您在 Hyper-V 中的不同子网之间启用路由。
您可以通过 PID 来识别正在侦听指定端口的进程(在我们的示例中,PID 为 636):
tasklist | findstr 636
现在尝试使用任何 RDP 客户端从远程计算机连接到新端口。您需要指定 3340 作为 RDP 端口号。它在 RDP 主机地址后面的冒号后面指定。例如,
10.10.1.110:3340
在此示例中,必须首先在 Windows Defender 防火墙中打开端口 TCP/3340(请参阅本文的下一部分)。
RDP 连接应该已成功建立。
Portproxy 端口转发规则是永久性的,并且在您重新启动 Windows 时不会被清除。这些规则存储在注册表中。您可以使用 PowerShell 在注册表中列出 netsh 转发规则:
Get-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Services\PortProxy\v4tov4\tcp
如果要将传入 TCP 连接转发到远程计算机,请使用以下命令:
netsh interface portproxy add v4tov4 listenport=3389 listenaddress=0.0.0.0 connectport=3389 connectaddress=192.168.100.101
此规则会将所有传入 RDP 流量(来自本地 TCP 端口 3389)从此计算机重定向到 IP 地址为 192.168.1.100 的远程主机。
请注意,Windows 中的 portproxy 模式不支持在转发的网络数据包中保存源 IP。如果您将端口 443 从 Windows 设备转发到内部 Web 服务器,则所有传入连接将在目标服务器上显示为来自同一 IP 地址(来自启用了 netsh portproxy 的 Windows 主机)。如果需要使用源 IP 转发,则需要在外部防火墙或 Hyper-V 上使用 NAT(如下所述)。
此外,您还可以使用 Windows 中的 SSH 隧道将本地端口转发到远程服务器。
在Windows中配置端口转发模式的防火墙规则
确保您的防火墙(Microsoft Windows Defender 或第三方防火墙,通常是防病毒软件的一部分)允许到新端口的传入连接。您可以使用以下命令向 Windows Defender 防火墙添加新的允许规则:
netsh advfirewall firewall add rule name="forwarded_RDPport_3340" protocol=TCP dir=in localip=10.1.1.110 localport=3340 action=allow
或者使用 New-NetFirewallRule PowerShell cmdlet:
New-NetFirewallRule -DisplayName "forwarder_RDP_3340" -Direction Inbound -Protocol TCP -LocalPort 3340 -Action Allow
通过 Windows Defender 防火墙图形界面为 TCP/3340 端口创建入站防火墙规则时,不需要将程序或进程与该规则关联。该端口仅由网络驱动程序侦听。
如果禁用 portproxy 规则,请务必删除剩余的防火墙规则,如下所示:
netsh advfirewall firewall del rule name="RDP_3340"
或使用 PowerShell 删除防火墙规则:
Remove-NetFirewallRule -Name RDP_3340
在 Windows 中管理 Netsh 端口转发规则
您可以在 Windows 中创建任意数量的端口转发规则。所有 netsh 接口端口代理规则都是持久的,并在 Windows 重新启动后保留。
我多次遇到在 Windows Server 2012 R2 中服务器重新启动后端口转发规则被重置的情况。此时,您需要检查网络接口是否存在周期性断开以及操作系统启动时IP地址是否发生变化(最好使用静态IP,而不是动态DHCP)。作为解决方法,我必须将带有 netsh 接口端口代理规则的批处理脚本添加到在系统启动时运行的 Windows 任务计划程序。
要显示 Windows 上所有启用的 TCP 端口转发规则的列表,请运行以下命令:
netsh interface portproxy show all
在我们的例子中,从本地端口 3340 到 3389 只有一条转发规则:
Listen on ipv4: Connect to ipv4:
Address Port Address Port
--------------- ---------- --------------- ----------
10.1.1.110 3340 10.1.1.110 3389
提示。您还可以列出portproxy中的所有端口转发规则,如下所示:
netsh interface portproxy dump
#========================
# Port Proxy configuration
#========================
pushd interface portproxy
reset
add v4tov4 listenport=3340 connectaddress=10.1.1.110 connectport=3389
popd
# End of Port Proxy configuration
如果需要更改现有端口代理规则的设置,请使用以下命令:
netsh interface portproxy set v4tov4 listenport=3340 listenaddress=10.10.1.110 connectport=3300 connectaddress=10.10.1.110
在此示例中,我们将 portproxy 目标端口号更改为 3300。
要删除特定端口转发规则:
netsh interface portproxy delete v4tov4 listenport=3340 listenaddress=10.1.1.110
要删除所有现有的端口映射规则并完全清除端口转发规则表:
netsh interface portproxy reset
重要。此端口转发方案仅适用于 TCP 端口。您将无法以这种方式转发 UDP 端口。另外,您不能使用环回接口 127.0.0.1 (localhost) 作为
connectaddress
。
您可以使用安装了 RRAS(路由和远程访问服务和 NAT)角色的 Windows Server 来启用 UDP 流量的端口转发。您可以使用图形管理单元 (
rrasmgmt.msc
)或使用命令:
netsh routing ip nat add portmapping Ethernet1 udp 0.0.0.0 53 192.168.100.100 53
Windows Server中的NAT端口转发规则列表如下:
netsh routing ip nat show interface
如果您的计算机上安装了 WSL(适用于 Linux 的 Windows 子系统),则可以创建一个简单的 PowerShell 脚本来创建到 WSL 2 虚拟机的端口转发规则(WSL2 VM 有自己的虚拟以太网适配器,具有唯一的 IP 地址):
wsl --shutdown;
netsh interface portproxy reset;
$wsl_ipaddr = wsl -d Ubuntu-20.04 hostname -I;
netsh interface portproxy add v4tov4 listenport=443 listenaddress=0.0.0.0 connectport=443 connectaddress=$wsl_ipaddr ;
netsh interface portproxy show all;
exit;
portproxy 的另一个隐式功能是能够使任何远程网络服务看起来像在本地运行。例如,您希望将本地端口 9090 的连接转发到远程 HTTPS 服务器(
google.com:443
)
netsh interface portproxy add v4tov4 listenport=9090 connectport=443 connectaddress=google.com protocol=tcp
现在,如果您在浏览器中访问 http://localhost:9090/,Google 搜索页面将会打开(您需要忽略 SSL_ERROR_BAD_CERT_DOMAIN 错误)。因此,尽管浏览器访问本地计算机地址,但它还是从外部 Web 服务器打开页面。
Windows 无法转发一定范围的 TCP 端口。如果您需要转发多个端口,则必须手动创建多个端口代理重定向规则。
端口转发规则还可用于将端口从物理 NIC 的外部 IP 地址重定向到同一主机上运行的虚拟机的端口。在 Hyper-V 中,您可以在虚拟交换机级别配置端口转发(见下文)。
Hyper-V 虚拟交换机上使用 NAT 规则进行端口转发
在计算机上使用 Hyper-V 角色(可以安装在 Windows 10/11 和 Windows Server 上,或作为免费的 Hyper-V 服务器)时,可以使用 PowerShell 配置 DNAT 端口转发规则。假设您要将 Hyper-V 主机收到的所有 HTTPS 流量重定向到主机上运行的虚拟机的 IP 地址。为此,请使用 Hyper-V StaticMapping 命令。
创建 Hyper-V 虚拟交换机:
New-VMSwitch -SwitchName NAT_Switch -SwitchType Internal
设置新虚拟交换机的 IP 地址:
New-NetIPAddress -IPAddress 192.168.100.1 -PrefixLength 24 -InterfaceAlias "vEthernet (NAT_Switch)"
为此网络启用 NAT:
New-NetNat -Name NATNetwork -InternalIPInterfaceAddressPrefix 192.168.100.0/24
将 VM 连接到 NAT_Switch 并为其分配静态 IP 地址(例如 192.168.10.80)。将 Hyper-V 虚拟交换机 IP 地址(本例中为 192.168.100.1)设置为虚拟机网络连接的默认网关。
您现在可以启用从 Hyper-V 主机到虚拟机的端口转发:
Add-NetNatStaticMapping -NatName NATNetwork443 -Protocol TCP -ExternalIPAddress 0.0.0.0/24 -ExternalPort 443 -InternalIPAddress 192.168.10.80 -InternalPort 443
执行这些 PowerShell 命令后,所有到达 Hyper-V 主机 TCP/443 端口的 HTTPS 流量都将转发到虚拟机的私有 IP 地址。
如果您想为非标准端口创建端口转发规则,请不要忘记在Windows防火墙中打开它:
New-NetFirewallRule -DisplayName "HyperV_Nat_444" -Direction Inbound -LocalPort 444 -Protocol TCP -Action Allow -Enabled True
您可以在 Hyper-V 主机上显示 NAT/PAT 端口转发规则的完整列表,如下所示:
Get-NetNat
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[短剧合集] 2025年06月2日 精选+付费短剧推荐39部
[软件合集] 25年6月2日 精选软件18个
[软件合集] 25年6月1日 精选软件15个
[短剧合集] 2025年06月1日 精选+付费短剧推荐59部
[短剧] 2025年05月31日 精选+付费短剧推荐58部
[软件合集] 25年5月31日 精选软件66个
[电影] 黄沙漫天(2025) 4K.EDRMAX.杜比全景声 / 4K杜比视界/杜比全景声
[风口福利] 短视频红利新风口!炬焰创作者平台重磅激励来袭
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[美图] 2W美女个美女小姐姐,饱眼福
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag