Ionic Android无法访问/etc/hosts配置的本地站点问题排查
解决Android模拟器无法访问本地Docker站点的问题
嘿,这个坑我太熟了!不少开发者都会误以为模拟器和本地电脑共用网络配置,但实际上Android模拟器有自己独立的网络环境和hosts文件,你在电脑/etc/hosts里加的域名映射,模拟器完全“看不到”。下面给你几个实用的解决办法:
直接用电脑局域网IP访问(最简单)
先找到你电脑的局域网IP(Mac上用ifconfig,Windows上用ipconfig查看),然后在模拟器浏览器里直接访问http://你的局域网IP:站点端口。记得要确保Docker容器的端口映射已经正确配置,而且电脑防火墙允许这个端口的入站请求。修改Android模拟器的hosts文件(保留域名访问)
如果你想继续用www.example.local这样的域名访问,得把映射配置到模拟器自己的hosts里:- 启动模拟器后,在终端执行
adb root获取模拟器的root权限 - 把你电脑/etc/hosts里的
127.0.0.1 www.example.local改成你的局域网IP www.example.local(因为模拟器里的127.0.0.1是它自己的回环地址,不是你的电脑) - 执行
adb push /etc/hosts /system/etc/hosts,把修改后的hosts文件推送到模拟器中 - 重启模拟器的网络(或者直接重启模拟器),之后就能在浏览器里正常访问域名了
- 启动模拟器后,在终端执行
调整模拟器网络模式(辅助优化)
有些时候模拟器默认的NAT网络模式会导致和本地电脑的网络连通性问题,你可以把模拟器的网络改成桥接模式(不同模拟器的设置入口略有不同,比如Android Studio的模拟器可以在右上角的设置面板里找到网络选项修改),确保模拟器和你的电脑处于同一个局域网网段。
内容的提问来源于stack exchange,提问作者Devin Dixon
相关产品推荐
相关产品推荐

