如何在另一台电脑上访问Windows+Arch WSL环境下的localhost?
可行,以下是两种解决方法
方法一:端口转发(适合临时使用)
- 在Arch WSL终端中获取WSL内部IP:
记下输出的IP(比如ip addr show eth0 | grep -oP '(?<=inet\s)\d+(\.\d+){3}'172.23.145.67) - 打开管理员权限的PowerShell,添加端口转发规则:
把netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=3000 connectaddress=你的WSL_IP connectport=3000你的WSL_IP替换成刚才获取的地址 - 允许Windows防火墙通过3000端口:
之后同一网络的电脑就能通过netsh advfirewall firewall add rule name="WSL Port 3000" dir=in action=allow protocol=TCP localport=3000Windows主机IP:3000访问你的应用
方法二:桥接网络(适合长期使用)
这种方式让WSL直接获取局域网IP,无需每次重启WSL重新配置端口转发:
- 在Windows的用户目录(
C:\Users\你的用户名)下新建或编辑.wslconfig文件,添加以下内容:
要获取物理网卡名称,在PowerShell中运行[wsl2] networkingMode=bridged vmSwitch=你的物理网卡名称Get-NetAdapter,找到对应有线/无线网卡的Name字段(比如Wi-Fi或以太网) - 重启WSL:
重新打开WSL终端后,用wsl --shutdownip addr show eth0查看WSL的局域网IP,同一网络的电脑直接通过该IP:3000访问即可
关键注意事项
确保你的应用在WSL中启动时监听0.0.0.0而非127.0.0.1,否则只能在WSL内部访问。比如Node.js应用,启动命令需加上--host 0.0.0.0,或者在代码中设置监听地址为0.0.0.0。
内容的提问来源于stack exchange,提问作者Coraggio
相关产品推荐
相关产品推荐

