配置端口转发
使用 netsh interface portproxy 命令,它是 Windows 操作系统内置的网络诊断和配置工具 netsh (Network Shell) 的一部分,预装于所有现代 Windows 版本(包括 Windows 10/11 和 Windows Server)。1. 获取 WSL2 IP 地址
在 WSL 终端中执行以下命令查看当前 IP:
ip addr show eth0 | grep inetinet后的第一段即为WSL终端的IPv4地址
或者在 PowerShell 中执行:
wsl hostname -I2. 以管理员权限打开 powershell
可通过右键开始菜单图标,选择 终端(管理员) 快速打开3. 添加端口转发规则
假设要将 Windows 的 8080 端口转发到 WSL2 的 80 端口(IP 为 172.30.103.13):
netsh interface portproxy add v4tov4 listenport=8080 listenaddress=0.0.0.0 connectport=80 connectaddress=172.30.103.13 protocol=tcp listenport:Windows 宿主机监听的端口listenaddress:建议设置为 0.0.0.0 以允许局域网其他设备访问,或指定 Windows 的局域网 IPconnectport:WSL2 内部服务的端口connectaddress:WSL2 的 IP 地址
4. 验证与删除规则
查看所有转发规则:
netsh interface portproxy show all删除指定端口的转发规则:
netsh interface portproxy delete v4tov4 listenport=8080 protocol=tcp5. 配置防火墙入站规则
如果 Windows 防火墙拦截连接,需手动添加入站规则允许对应的 listenport:
打开windows的防火墙高级设置,添加入站端口,比如:8080
或使用 PowerShell 命令:
New-NetFirewallRule -DisplayName "WSL Port Forward" -Direction Inbound -LocalPort 8080 -Protocol TCP -Action Allow6.注意事项
- IP 变化问题:WSL2 重启后 IP 可能改变,导致转发失效。可通过配置固定 IP 或使用脚本自动更新转发规则来解决。
- 新版本简化方案:在较新的 WSL2 版本中,可在
%USERPROFILE%\.wslconfig文件中添加localhostForwarding=true,实现localhost端口直接映射,无需手动配置netsh。

