无法从iPhone访问Mac本地主机(localhost)测试Flutter应用
下面是几个排查和解决的步骤,按顺序尝试:
确认Mac的内网IP
打开Mac终端,执行ifconfig | grep inet,找到对应WiFi网卡(通常是en0)下的inet地址,比如192.168.1.100——这才是你要在iPhone上使用的地址,别用127.0.0.1或者公共IP。让Flutter服务器监听所有网卡
默认Flutter服务器仅绑定localhost,只有Mac本地能访问。启动时添加参数:flutter run --host 0.0.0.0启动后终端会输出类似
Running on http://0.0.0.0:5000/的地址,记好端口号(示例中是5000)。验证Mac自身能访问内网IP地址
在Mac的浏览器里输入http://[你的Mac内网IP]:[端口号],如果打不开,说明服务器绑定有问题,重新检查启动参数;如果能打开,再继续排查iPhone的问题。检查Mac防火墙规则
单纯关闭防火墙无效的话,进入「系统设置」→「网络」→「防火墙」→「防火墙选项」,添加Flutter的dart进程(或者直接允许对应端口的 incoming 连接),确保服务器进程能接收外部请求。用USB端口转发替代WiFi(更可靠)
先通过Homebrew安装libimobiledevice:brew install libimobiledevice把iPhone用USB连接到Mac后,执行:
iproxy 8080 5000这里把iPhone的8080端口转发到Mac的5000端口(替换成你的Flutter服务器实际端口),然后在iPhone的浏览器里访问
http://localhost:8080,就能直接连接到Mac的服务器——这个方法不受WiFi网络限制。排查路由器AP隔离
部分路由器默认开启AP隔离,导致同一WiFi下的设备无法互相访问。进入路由器后台(通常是192.168.1.1或192.168.0.1),找到「AP隔离」或「客户端隔离」选项,关闭后再尝试访问。
内容的提问来源于stack exchange,提问作者neptunes

