368 字
2 分钟
使用本机LAN IP访问WSL2中暴露的Web服务

1. 环境概览#

环境版本
Windows 1110.0.26100.7462
WSL2.6.3.0
WSL内核6.6.87.2-1
WSLg1.0.71

2. 问题#

当我想测试二维码预览文件功能时,发现启动的Web服务无法通过局域网具体ip访问,只能在本机上使用localhost:9098这样的路径访问。

起初我以为是一个比较简单的问题,于是在Gemini 3.0 Pro上面询问了一番,只不过并没有解决我的实际问题。

当然,为了节省时间,你可以跳过这一段往下看

2.1 LLM的解决方案#

参考:我在StackOverFlow的回答

无外乎就是防火墙开放端口以及设置网络环境为Private这两个方案,你反馈都不行它会告诉你将.wslconfig中的firewall置为false

但这些方案仅仅是常规操作,解决的是因防火墙以及网络环境带来的问题,但本机会因为WSL的默认设置无法使用LAN IP访问服务。

2.2 实际解决方案#

其实事情很简单,这是因为WSL2默认情况下压根就没有做除了host以外的loopback address

参考:

  1. mirrored networking mode doesn’t allow host to use IP to reach the service in WSL
  2. hostAddressLoopback

WSL默认只会将loopback address路由到127.0.0.1上面,但并没有映射IP地址,导致你无法从LAN IP中访问你的服务。

简单来说,配置你的.wslconfig

[experimental]
hostAddressLoopback=true

重启电脑后即可访问,仅仅通过wsl --shutdown重启WSL可能不会生效。

使用本机LAN IP访问WSL2中暴露的Web服务
https://blog.astro777.cfd/posts/development-environment/accessing-wsl2-from-lan/
作者
ASTRO
发布于
2026-01-04
许可协议
CC BY-NC-SA 4.0