我是 Windows 11(或任何版本)的新手,无法弄清楚网络:
我有一个稳定的 Diffusion 服务器在 7860 端口本地运行
我在 WSL2 上的 3000 端口(随便什么)上运行着一个 nodejs 服务器
我可以在本地浏览器中打开它们,在 Windows 上通过
http://localhost:{PORT}
我可以从我的 Mac ping Windows IP 并获取 pongs
但是,我无法通过我的 macbook 浏览器访问这些网址
- 我尝试完全禁用 Windows 防火墙,但无济于事
我该如何修复此问题?
答案1
172.17.219.156:3000,我可以在 Windows 上本地访问该地址,但不能从其他机器访问
WSL2 作为 Hyper-V VM 运行,默认情况下,它位于与物理 LAN 分开的虚拟网络上。主机本身知道 172.17.219.x 网络在哪里,但 LAN 的其余部分才不是。
(通常,主机操作系统和 WSL2 VM 也有自己单独的“本地主机”,但 WSL 会自动将所有“本地主机”连接从主机转发到客户机上的侦听器,使其看起来像单个系统。)
似乎您可以将 WSL2 配置为使用“外部”Hyper-V 桥接器,将 VM 直接放置在物理网络中,如下所示此 GitHub 评论:
适用于本地主机的示例
.wslconfig
:[wsl2] # Bridged networking networkingMode=bridged vmSwitch=WSL_external dhcp=true # Turn off default connection to bind WSL 2 localhost to Windows localhost localhostforwarding=true
和
/etc/wsl.conf
[boot] systemd=true [network] generateResolvConf = false
和
/usr/lib/systemd/network/wsl_external.network
[Match] Name=eth0 [Network] Description=WSL DHCP=true
我见过的另一种方法是使用 Windows 的内置 TCP 代理支持,netsh interface portproxy
让主机自动将某些连接转发给客户机。