在CentOS中解决Flutter网络问题,需从系统配置、权限设置和代码层面入手,具体步骤如下:
-
配置CentOS网络
- 编辑网络接口文件(如
/etc/sysconfig/network-scripts/ifcfg-eth0),设置BOOTPROTO为static或dhcp,并配置IP、网关、DNS等参数,完成后重启网络服务:sudo systemctl restart network - 检查网络连通性:使用
ping命令测试是否能访问网关或外部网络(如ping 8.8.8.8)。
- 编辑网络接口文件(如
-
调整防火墙与SELinux
- 开放HTTP/HTTPS流量:
sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https sudo firewall-cmd --reload - 临时禁用SELinux测试是否为策略拦截问题(若需永久调整需谨慎配置策略):
sudo setenforce 0
- 开放HTTP/HTTPS流量:
-
配置Flutter网络权限
- 在
android/app/src/main/AndroidManifest.xml中添加INTERNET权限:<uses-permission android:name="android.permission.INTERNET" /> - iOS需在
Info.plist中配置网络权限(通常默认已包含)。
- 在
-
处理代码与代理问题
- 确保Flutter代码中使用正确的服务器IP(避免
127.0.0.1,应使用CentOS局域网IP,如http://192.168.x.x:端口)。 - 若使用代理,需在Flutter中配置代理信息(如通过
http库的Proxy类)。
- 确保Flutter代码中使用正确的服务器IP(避免
-
测试与调试
- 先通过
curl或Postman测试CentOS服务端接口是否可达。 - 在Flutter中使用
try-catch捕获网络异常,定位具体错误(如超时、DNS解析失败等)。
- 先通过
参考来源: