You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

iOS真机测试连接Mac本地5000端口后端问题求助

解决iOS真机无法访问Mac本地5000端口后端的问题
  • 确认设备处于同一网络
    确保你的Mac和iOS真机连接到同一个Wi-Fi网络(避免使用Mac的热点,部分场景下会存在网络隔离)。在Mac终端输入ipconfig getifaddr en0(Ventura及以后系统)或ifconfig | grep inet,获取Mac的局域网IP(格式通常为192.168.x.x)。

  • 修正API请求地址
    不要在iOS应用中使用localhost:5000或127.0.0.1:5000,这两个地址在真机上指向设备自身而非Mac。将所有API请求的base URL替换为刚才获取的Mac局域网IP,例如http://192.168.1.100:5000。

  • 开放Mac防火墙的5000端口
    打开Mac的「系统设置」→「网络」→「防火墙」,点击「选项」,确认你的后端进程(如Node.js)被允许接收入站连接;也可临时关闭防火墙进行测试(测试完成后记得重新开启)。

  • 处理ATS安全限制(若使用HTTPS)
    如果后端使用HTTPS且是自签名证书,真机默认会拒绝连接。可在iOS项目的Info.plist中添加ATS例外:
    右键Info.plist→「Open As」→「Source Code」,插入以下代码:

    <key>NSAppTransportSecurity</key>
    <dict>
        <!-- 更严格的配置:仅允许你的Mac IP -->
        <key>NSExceptionDomains</key>
        <dict>
            <key>192.168.1.100</key>
            <dict>
                <key>NSIncludesSubdomains</key>
                <true/>
                <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
                <true/>
            </dict>
        </dict>
    </dict>
    

    注意:上线前需移除该配置或替换为合法SSL证书。

  • 确保后端绑定正确的地址
    检查TypeScript后端的启动代码,确保服务器监听的是0.0.0.0:5000而非127.0.0.1:5000。以Express.js为例:

    app.listen(5000, '0.0.0.0', () => {
      console.log('Server running on port 5000');
    });
    

    绑定127.0.0.1会导致服务仅在Mac本地可访问,局域网内其他设备无法连接。

  • 验证端口连通性
    在Mac终端执行nc -zv 你的MacIP 5000,确认端口是否开放;也可在iPhone上使用网络工具(如Network Analyzer)测试能否连接到Mac的5000端口。

内容的提问来源于stack exchange,提问作者AwesomeCuber

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 21:37:03