Win11的WSL2中运行的Expo项目如何连接Android设备?
解决WSL2中Expo与Android设备连接超时问题
方法1:让Expo绑定Windows主机IP
直接指定Expo启动时使用Windows的局域网IP(你的192.168.1.111),这样Android设备就能直接访问这个IP:
- 启动Expo时手动指定参数:
bunx expo start --host 192.168.1.111 --port 8081 - 或者修改项目的
app.json配置,一劳永逸:
之后直接运行{ "expo": { "host": "192.168.1.111", "port": 8081 } }bunx expo start即可。
方法2:配置Windows端口转发
通过端口转发把WSL的8081端口映射到Windows主机,让Android设备能间接访问WSL服务:
- 以管理员身份打开命令提示符,执行以下命令(替换
172.27.73.14为你的WSL实际IP):netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=8081 connectaddress=172.27.73.14 connectport=8081 - 给Windows防火墙添加入站规则,允许8081端口的连接:
- 打开Windows Defender防火墙→高级设置→入站规则→新建规则
- 选择「端口」→输入
8081→允许连接→勾选所有网络类型→命名规则(比如“Expo端口放行”)
- 启动Expo后,扫描二维码,手动把地址里的WSL IP替换成
192.168.1.111再连接。
方法3:把WSL2切换到网桥模式
如果经常需要局域网设备访问WSL,可切换到网桥模式,让WSL获取和Windows同网段的IP:
- 先关闭所有WSL实例:
wsl --shutdown - 在用户目录下新建或编辑
.wslconfig文件(路径:%UserProfile%\.wslconfig),添加内容:
注意:需要先在Hyper-V管理器里新建一个外部虚拟交换机,绑定你的物理网卡,名称和上面的[wsl2] networkingMode=bridged vmSwitch=WSL外部交换机vmSwitch保持一致。 - 重启WSL,此时WSL会拿到和Windows、Android同网段的IP,直接运行
bunx expo start,扫描二维码就能正常连接。
必做检查
- 确认Android设备和Windows主机连的是同一个WiFi网络
- 暂时关闭Windows和Android上的防火墙/安全软件,避免拦截连接
- 在Android浏览器里访问
http://192.168.1.111:8081,如果能加载Expo页面,说明网络通路正常
内容的提问来源于stack exchange,提问作者Ivan Gregor Tabalno
相关产品推荐
相关产品推荐

