windows服务器做端口转发
在 Windows 服务器上使用 netsh 配置端口转发,将 192.168.1.25:18080 转发到 172.16.102.3:80,可以按照以下步骤操作:
- 启用 Windows 的路由和远程访问功能,确保服务器支持端口转发(需要 IP Routing 和 NAT 功能):
打开powershell
# 安装路由和远程访问功能(如果尚未安装)
Install-WindowsFeature -Name Routing, RSAT-RemoteAccess -IncludeManagementTools
或通过服务器管理器:
2.打开 服务器管理器 > 添加角色和功能。
选择 远程访问 > 路由,安装并启动服务。
- 使用 netsh 配置端口转发
在 管理员权限的 CMD 或 PowerShell 中执行以下命令:
(1)添加端口转发规则
netsh interface portproxy add v4tov4 ^
listenport=18080 ^
listenaddress=192.168.1.25 ^
connectport=80 ^
connectaddress=172.16.102.3
(2)验证规则是否生效
netsh interface portproxy show all
输出应包含:监听 ipv4: 连接到 ipv4:
地址 端口 地址 端口
--------------- ---------- --------------- ----------
192.168.1.25 18080 172.16.102.3 80
- 配置防火墙放行端口
确保防火墙允许 18080 端口的入站流量: - 允许 18080 端口(TCP)
New-NetFirewallRule -DisplayName "Allow Port 18080" `
-Direction Inbound -LocalPort 18080 -Protocol TCP -Action Allow
或通过高级安全防火墙:
打开 Windows Defender 防火墙 > 高级设置。添加 入站规则,放行 TCP 18080 端口。
5. 启用路由转发(可选)
如果服务器需要跨网络转发流量(如 NAT 环境),需启用路由转发:
临时启用(重启失效)
netsh interface ipv4 set subinterface “本地连接” forwarding=enabled
永久启用(需修改注册表)
Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters -Name IPEnableRouter -Value 1
Restart-Computer # 重启生效
注意:“本地连接” 需替换为实际网卡名称(通过 Get-NetAdapter 查看)。
-
测试端口转发
在另一台机器上访问 192.168.1.25:18080,检查是否成功转发到 172.16.102.3:80:
curl http://192.168.1.25:18080
或通过浏览器访问 http://192.168.20.25:18080。 -
删除规则(如需撤销)
cmd
netsh interface portproxy delete v4tov4 listenport=18080 listenaddress=192.168.20.25
常见问题排查
连接失败:
检查 172.16.102.254:80 是否可达(ping + telnet 测试)。
确认服务器 192.168.20.25 的防火墙未阻止转发流量。
端口冲突:
确保 18080 端口未被其他程序占用(netstat -ano | findstr 18080)。
路由问题:
如果跨网段,需确保服务器能路由到 172.16.102.0/24 网络。
8.总结
核心命令:netsh interface portproxy add v4tov4 配置转发。
关键步骤:启用路由功能 + 放行防火墙 + 测试连通性。
适用场景:适用于 Windows Server 作为端口转发网关的场景。