配置端口转发

使用 netsh interface portproxy 命令,它是 Windows 操作系统内置的网络诊断和配置工具 netsh (Network Shell) 的一部分,预装于所有现代 Windows 版本(包括 Windows 10/11 和 Windows Server)。

1. 获取 WSL2 IP 地址

在 WSL 终端中执行以下命令查看当前 IP:

ip addr show eth0 | grep inet
2026-06-25T03:45:13.png
inet 后的第一段即为WSL终端的IPv4地址

或者在 PowerShell 中执行:

wsl hostname -I
2026-06-25T03:49:38.png

2. 以管理员权限打开 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 的局域网 IP
  • connectport:WSL2 内部服务的端口
  • connectaddress:WSL2 的 IP 地址

4. 验证与删除规则

查看所有转发规则:

netsh interface portproxy show all

删除指定端口的转发规则:

netsh interface portproxy delete v4tov4 listenport=8080 protocol=tcp

5. 配置防火墙入站规则

如果 Windows 防火墙拦截连接,需手动添加入站规则允许对应的 listenport:

打开windows的防火墙高级设置,添加入站端口,比如:8080

或使用 PowerShell 命令:

New-NetFirewallRule -DisplayName "WSL Port Forward" -Direction Inbound -LocalPort 8080 -Protocol TCP -Action Allow

6.注意事项

  • IP 变化问题:WSL2 重启后 IP 可能改变,导致转发失效。可通过配置固定 IP 或使用脚本自动更新转发规则来解决。
  • 新版本简化方案:在较新的 WSL2 版本中,可在 %USERPROFILE%\.wslconfig 文件中添加 localhostForwarding=true,实现 localhost 端口直接映射,无需手动配置 netsh
最后修改:2026 年 06 月 25 日
如果觉得我的文章对你有用,请随意赞赏