Flutter真机连接Docker容器内API服务的配置问题求助
解决Flutter真机无法连接局域网Docker API服务的问题
1. 确认设备处于同一局域网
- 手机必须连接与电脑相同的WiFi(禁止使用移动数据),若电脑为有线连接,需确保有线网络与WiFi处于同一网段
- 直接用手机浏览器访问API地址:
http://192.168.0.1:2323/test-server/api/v1/auth,如果无法打开,说明问题出在网络层面,而非Flutter代码
2. 检查电脑防火墙配置
- 临时关闭电脑防火墙(仅用于测试),若能连接成功,需手动添加2323端口的入站规则,允许局域网设备访问
- 注意:部分杀毒软件自带防火墙,需同步检查并放行该端口
3. 修正Docker端口映射
- 执行
docker ps查看容器端口映射状态,确保映射格式为0.0.0.0:2323->2323/tcp(允许所有IP访问),而非127.0.0.1:2323->2323/tcp(仅本地可访问) - 若映射错误,重新启动容器时指定正确的端口映射命令:
docker run -p 0.0.0.0:2323:2323 [你的镜像名称/ID]
4. 配置Flutter应用的网络权限
Android端
在android/app/src/main/AndroidManifest.xml中添加网络权限:
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
iOS端
在ios/Runner/Info.plist中添加HTTP请求允许配置(iOS默认拦截非HTTPS请求):
<key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <true/> </dict>
5. 验证电脑局域网IP的准确性
- 重新获取电脑的局域网IP:Windows执行
ipconfig,Mac/Linux执行ip addr或ifconfig,确认IP为局域网段(通常为192.168.x.x、10.x.x.x或172.16.x.x开头),不要使用127.0.0.1 - 可在手机端ping电脑IP,验证网络连通性(Android用终端模拟器,iOS可借助第三方Ping工具)
6. 排查USB调试的代理问题
- 检查手机WiFi设置中的代理选项,确保设置为无,避免USB调试自动添加的代理导致局域网IP无法访问
内容的提问来源于stack exchange,提问作者parten
相关产品推荐
相关产品推荐

