iOS 15.1版本iPhone使用Charles Proxy抓包出现EOF错误求助
排查&解决方向
1. 验证是否为目标应用的SSL证书锁定(SSL Pinning)问题
iOS 15+系统权限收紧后,多数主流应用的最新版本都会内置SSL Pinning逻辑,禁止第三方根证书解密自身HTTPS请求,这是你当前报错最常见的诱因:
- 先测试系统应用抓包:用iPhone自带Safari访问HTTPS站点,查看Charles能否正常解密请求内容
- 若系统应用可正常抓包,即证明目标应用开启了SSL Pinning,需通过Frida等Hook框架绕过Pinning规则、或使用越狱设备测试才可正常抓包
2. 开启Charles的HTTP/2支持
iOS 15+默认优先使用HTTP/2协议发起请求,旧版Charles默认未开启HTTP/2的SSL代理支持会触发EOF错误:
- 操作路径:Charles顶部菜单栏
Proxy->SSL Proxying Settings-> 勾选Enable HTTP/2 support,重启Charles后重试
3. 更新Charles到最新正式版
低于4.6.1版本的Charles对iOS 15+支持的TLS 1.3协议兼容性极差,会出现解密失败、返回EOF的问题,直接升级Charles到最新版本后重新配置证书即可。
4. 排查iPhone端其他网络拦截类配置
测试前关闭所有VPN、代理类应用(如各类加速工具、网络调试工具),移除公司MDM配置文件,这类工具会优先拦截网络请求,导致Charles拿到的请求包不完整触发EOF错误。
5. 补全SSL代理规则的端口配置
iOS 15+对非标准端口的HTTPS请求校验更严格,需确保SSL代理规则覆盖所有用到的端口:
- 在
SSL Proxying Includes中添加通用规则*:443,同时补充目标应用用到的其他HTTPS端口(如8443、8080等)
6. 关闭电脑端防火墙/安全防护软件
临时关闭Mac自带防火墙、以及各类安全优化类软件,避免这类工具拦截Charles的入站网络连接,导致请求截断报错。
内容的提问来源于stack exchange,提问作者petestmart
相关产品推荐
相关产品推荐

