如何在Windows浏览器访问WSL中带HTTPS代理的Next.js开发服务器?
解决WSL2中Next.js HTTPS服务无法在Windows浏览器访问的问题
确保Next.js服务绑定所有网络接口
默认next dev仅绑定127.0.0.1,仅限WSL内部访问。启动时需指定绑定全接口:next dev -H 0.0.0.0调整local-ssl-proxy监听地址
local-ssl-proxy默认可能仅监听127.0.0.1,修改启动命令让它监听所有可用接口:local-ssl-proxy --source 3000 --target 3001 --cert ./your-cert.pem --key ./your-key.pem --hostname 0.0.0.0(替换
--source/--target为你实际使用的端口,--cert/--key为mkcert生成的证书文件路径)修正Windows Hosts映射
WSL2采用NAT网络,和Windows不在同一本地回路。在WSL终端执行hostname -I获取WSL的IP地址(格式类似172.18.xxx.xxx),然后编辑Windows的C:\Windows\System32\drivers\etc\hosts文件,添加:172.18.xxx.xxx your-custom-domain.local让Windows信任mkcert根证书
WSL中生成的证书默认不被Windows系统信任,需手动安装根证书:- 在WSL中执行
mkcert -CAROOT,找到根证书存储目录(比如/home/your-user/.local/share/mkcert) - 将目录下的
rootCA.pem复制到Windows本地路径(比如C:\temp) - 双击
rootCA.pem→ 点击「安装证书」→ 选择「本地计算机」→ 选择「将所有证书放入下列存储」→ 勾选「受信任的根证书颁发机构」→ 完成安装流程
- 在WSL中执行
配置Windows端口转发(可选,解决WSL IP变动问题)
WSL2重启后IP会自动变更,可通过PowerShell设置端口转发,让Windows的3000端口映射到WSL的对应端口:netsh interface portproxy add v4tov4 listenport=3000 listenaddress=0.0.0.0 connectport=3000 connectaddress=WSL_IP若想自动更新转发规则,可编写批处理脚本,每次启动WSL时自动执行(需管理员权限)。
验证防火墙设置
临时关闭Windows防火墙测试是否能访问,若可以,再添加入站规则:允许TCP 3000端口的所有连接,或者指定WSL的IP段作为允许来源。
内容的提问来源于stack exchange,提问作者sole77850
相关产品推荐
相关产品推荐

