运用 Windows 的 IP 端口转发到 WSL
布景
- 在运用 windows 下的 wsl2 子系统开发时,在 wsl2 成功运行了一个 web 程序。想经过外界拜访 WSL2 中的应用程序(同局域网下的其他设备拜访),对这个 web 程序进行测验。
实现步骤
要将外界运用 Windows 的 IP 端口转发到 WSL2,可以运用 Windows 的端口转发功用。以下是具体步骤:
- 在 Windows 上设置端口转发。可以运用以下指令:
PS D:\coding> netsh interface portproxy add v4tov4 listenport=8888 connectaddress=172.23.81.41 connectport=8888 listenaddress=* protocol=tcp
- 其间 listenport 是要转发的 Windows 端口
- connectport 是 WSL2 中要连接的端口
- connectaddress 是 WSL2 中的 IP 地址。
- listenaddress 是 windows 监听的地址
- 检查端口映射状况,验证是否映射成功
PS D:\coding> netsh interface portproxy show v4tov4
侦听 ipv4: 连接到 ipv4:
地址 端口 地址 端口
--------------- ---------- --------------- ----------
* 8888 172.23.81.41 8888
最终,可以在外界运用 Windows 的 IP 地址和指定的端口来拜访 WSL2 中的应用程序。
PS D:\coding> New-NetFirewallRule -DisplayName "Port Forwarding" -Direction Inbound -Protocol TCP -LocalPort 8888 -Action Allow
- LocalPort 为本地端口
- 删除端口映射
PS D:\coding> netsh interface portproxy delete v4tov4 listenport=8888 protocol=tcp
PS:
- 需求留意的是,Windows 端口转发功用仅适用于 Windows 10 版别 1803 及以上,而且需求管理员权限来运行上述指令。别的,需求留意防火墙和网络装备,保证端口转发和网络连接正常。
- 网络装备:要保证网络装备正确,需求承认 Windows 主机和 WSL2 之间可以相互通讯,而且没有任何网络障碍。可以运用 ping 指令测验网络连接是否正常。别的,假如 Windows 主机和 WSL2 不在同一个局域网中,则需求装备路由器以答应端口转发流量经过。