如何在 iPhone 上设置 Charles 代理
在 iPhone 和 iPad 上配置 Charles Proxy 的分步教程。配置手动 Wi-Fi 代理,通过 chls.pro/ssl 安装证书配置文件,启用“完全信任”,并解密 HTTPS 数据流。
- iOS Wi-Fi 手动配置 — 将您的 iPhone 或 iPad 配置为通过计算机的局域网 IP 地址(默认端口 8888)转发流量。
- 通过 Safari 安装配置文件 — 直接从 chls.pro/ssl 下载 Charles 配置文件,并在“VPN 和设备管理”中批准。
- 为根证书启用完全信任 — 在“设置” > “通用” > “关于” > “证书信任设置”中启用 100%% 的 TLS 拦截信任。
- 上游运营商代理链路 — 通过PXM2 4G/5G运营商IP转发Charles解密后的请求,以审计基于地理位置的移动应用,同时避免被反机器人机制拦截。
什么是 Charles Proxy?为什么要通过它转发 iPhone 的流量?
Charles Proxy 是一款可在桌面工作站(macOS、Windows 或 Linux)上运行的 HTTP/HTTPS 代理和流量分析工具。通过将 iPhone 的 Wi-Fi 连接指向 Charles,您可以记录、检查和分析由 iOS 应用程序、Safari 网页标签页以及后台任务发起的全部出站网络请求。
在 iOS 设备上,由于苹果严格的沙箱安全模型,直接在手机上检查网络流量十分繁琐。Charles 通过充当无中介的中间人(MITM)代理,消除了这一限制。借助 Charles,移动开发人员和质量保证工程师可以:
监控任何 iOS 应用生成的 REST 和 GraphQL 请求、Bearer 授权令牌、Cookie、跟踪标签以及 API 有效载荷。
生成并信任一个即时生成的 Charles Root CA 证书,以便以明文 JSON 或 XML 格式读取加密的 TLS 1.3 流量。
模拟信号不佳的蜂窝网络(3G/4G有损环境),模拟API错误响应(429、500),并注入自定义标头字段。
网络要求:您的 iPhone 和运行 Charles Proxy 的计算机必须连接到完全相同的 Wi-Fi 网络。启用了“客户端隔离”功能的公共咖啡馆网络会阻止您的 iPhone 与计算机通信。
先决条件及如何查找计算机的本地 IP 地址
在配置 iPhone 之前,请先在 Mac 或 Windows 电脑上安装 Charles Proxy。Charles 默认监听 TCP 端口 8888。您的 iPhone 需要知道您的电脑在 Wi-Fi 子网中的本地 IPv4 地址。
请使用以下任一方法查找计算机的本地 IP 地址:
-
在查尔斯代理(最快)中
点击顶部菜单中的“帮助”>“本地 IP 地址”。此时将弹出一个小对话框,显示您当前的本地网络 IPv4 地址(例如 192.168.1.100 或 10.0.0.15)。
-
在 macOS 系统设置中
打开“系统设置” > “Wi-Fi” > 点击当前连接网络旁边的“详细信息”,即可查看您的 IPv4 地址。
-
在 Windows Terminal 中
打开 PowerShell 或命令提示符,运行 ipconfig 命令,并记下当前活动的 Wi-Fi 适配器下的 IPv4 地址。
# macOS terminal command: ipconfig getifaddr en0 # Windows Command Prompt: ipconfig | findstr /i "IPv4"
步骤 1:配置 iPhone Wi-Fi 手动代理
在 Charles 运行且已确认计算机 IP 地址后,请将 iPhone 配置为将所有出站 HTTP/HTTPS 流量转发至 Charles。
-
打开 iPhone 的 Wi-Fi 设置
在 iPhone 上,进入“设置”>“Wi-Fi”。请确保您的 iPhone 与电脑连接到了同一个 Wi-Fi 网络。
-
开放网络信息
点击已连接的 Wi-Fi 网络名称旁边的蓝色 (i) 信息图标。
-
将“配置代理”设置为“手动”
Scroll to the bottom of the screen and tap "Configure Proxy". Select "Manual".
-
输入服务器 IP 地址和端口 8888
在“服务器”下,输入您计算机的本地 IP 地址(例如 192.168.1.100)。在“端口”下,输入 8888。确保“身份验证”处于关闭状态。点击右上角的“保存”。
步骤 2:在 Charles 中允许 iPhone 连接
当您的 iPhone 通过代理发送第一个网络请求时,Charles 会检测到来自一个新本地 IP 地址的传入连接。
A prompt will appear on your desktop screen: "A connection attempt from [iPhone IP] was received. Do you want to allow it?"
-
点击“允许”
Click "Allow" immediately on your computer. Charles will register your iPhone's IP address in its Access Control list.
-
验证访问控制设置(如果未显示提示)
If you accidentally clicked "Deny" or the prompt was missed, go to Proxy > Access Control Settings in Charles. Click "Add" and enter your iPhone's IP or subnet (e.g. 192.168.1.0/24).
第 3 步:在 iOS 上下载并安装 Charles Profile
此时,普通 HTTP 请求会显示在 Charles 中。然而,所有 HTTPS 流量都会以带有挂锁图标的加密 CONNECT 隧道形式出现。要解密 SSL/TLS 流量,iOS 必须安装 Charles 根证书配置文件。
-
在 iPhone 上打开 Safari
启用 Wi-Fi 代理后,打开 Safari。(此步骤请勿使用 Chrome 等第三方浏览器,因为 Safari 可与 Apple 的“配置文件安装程序”直接集成)。
-
访问 chls.pro/ssl
在 Safari 的地址栏中,输入 https://chls.pro/ssl(或 http://chls.pro/ssl)。Charles 将拦截此 URL 并提供配置文件。
-
允许下载个人资料
Safari will display a popup: "This website is trying to download a configuration profile. Do you want to allow this?" Tap "Allow", then tap "Close".
-
在 iOS 设置中安装配置文件
Open iPhone Settings > General > VPN & Device Management (or "Profile Downloaded" at the top of the Settings main page). Tap "Charles Proxy CA", then tap "Install" in the top-right corner, enter your passcode, and confirm the warning.
步骤 4:在“证书信任设置”中启用“完全信任”
关键步骤:安装配置文件并不会在 iOS 上自动启用 HTTPS 解密。苹果要求您在另一个设置界面中明确开启“完全根信任”选项,以防止未经授权的中间人(MITM)拦截。
-
打开“证书信任设置”
在 iPhone 上,进入“设置” > “通用” > “关于本机” > “证书信任设置”(位于“关于本机”页面最底部)。
-
为 Charles Proxy CA 启用“完全信任”
Under "Enable full trust for root certificates", locate "Charles Proxy CA" and toggle the switch to ON (green).
-
确认根证书警告
iOS will display a warning dialog: "Enabling a root certificate for SSL will allow third parties to view private data...". Tap "Continue".
第 5 步:在 Charles 中启用 SSL 代理以解密 HTTPS 流量
您的 iPhone 现已信任 Charles,允许其代表外部域签署证书。最后一步是指示 Charles 对目标主机执行 SSL 代理。
-
在 Charles 中打开 OpenSSL 代理设置
在计算机上的 Charles 中,请导航至“代理”>“SSL 代理设置”。
-
启用 SSL 代理
Check the checkbox for "Enable SSL Proxying".
-
添加通配符或目标主机
Under the Include tab, click "Add". For broad mobile testing, enter Host: * and Port: 443 (or Port: *). Alternatively, restrict to specific target domains (e.g. *.example.com) to prevent decrypting unrelated traffic.
第 6 步:检查已解密 iOS 应用和 Safari 的实时流量
在 iPhone 上打开 Safari 或任何原生应用,并执行相关操作(例如搜索、登录、浏览)。然后返回桌面端的 Charles:
-
结构面板
请求按主机域名进行分组(例如 https://api.twitter.com 或 https://instagram.com)。蓝色闪电图标表示 SSL 代理解密成功。
-
请求/响应有效载荷
选择任意端点,即可查看以 JSON、XML 或文本格式呈现的请求头、Cookie、查询参数和响应正文。
-
重复 / 编辑并执行
Right-click any request and choose "Repeat" to replay the call, or "Compose" to edit headers and payload values before firing.
第 7 步:iOS SSL 证书固定与应用限制详解
While Safari and standard web views decrypt immediately once Certificate Trust is enabled, some third-party iOS apps may fail with connection errors or "SSL Pinning Failure". Understanding why this occurs saves hours of debugging:
| 交通类别 | 与查尔斯相处 | 技术原因及解决方案 |
|---|---|---|
| Safari 和移动浏览器 | 100% 已解密 | Safari 会无条件地遵循“证书信任设置”中 iOS 用户信任的根证书颁发机构。 |
| 使用 System NSURLSession 的应用程序 | 已解密 | 标准的 iOS 网络库默认信任用户安装的根证书颁发机构(CA)。 |
| 包含硬编码 SSL 固定地址的应用程序 | 连接失败 | 应用程序会将远程公钥与捆绑的哈希值进行比对(例如 TrustKit、AlamoFire ServerTrustPolicy)。要绕过此验证,需要使用已越狱且安装了 Frida/SSLKillSwitch2 的设备,或者针对内部开发版本进行测试。 |
| 苹果核心服务(Siri、iCloud) | 已设为私密 / 已置顶 | 苹果在操作系统层面对其内部基础设施证书进行了固定。 |
第 8 步:将 Charles 与 PXM2 4G/5G 移动代理串联使用
在调试移动应用时,如果使用家庭或办公室宽带的 IP 地址进行测试,将限制您对基于地理位置的 API、本地化定价、广告活动以及反欺诈评分进行验证的能力。移动应用需要基于移动运营商的网络覆盖范围(例如 AT&T、Verizon、Vodafone、Orange)。
通过将 Charles Proxy 作为上游设备,经由 PXM2 专用 4G/5G 移动调制解调器进行链路连接,您可以在 Charles 中本地检查和处理请求,同时向远程服务器展示真实的蜂窝网络 IP 地址。
通过桌面端的Charles和PXM2专用载波调制解调器将iPhone进行链路连接。
要在 Charles 中配置上游链路,请:
-
打开外部代理设置
在 Charles 中,转到“代理”>“外部代理设置”。
-
启用外部代理
Check "Use external proxy servers". Check "Web Proxy (HTTP)" and "Secure Web Proxy (HTTPS)".
-
输入 PXM2 端点和凭据
Enter your assigned PXM2 gateway hostname and port (e.g. gate.pxm2.io:8000). Check "External proxy requires authentication", then input your proxy username and password.
第 9 步:禁用代理及故障排除指南
当调试会话结束时,请务必关闭 iPhone 上的代理。如果 iPhone 的代理设置为“手动”时,您在工作站上关闭了 Charles,您的手机将无法加载任何网页或应用程序。
若要恢复原状:进入“设置” > “Wi-Fi” > 点击 (i) > “配置代理” > 选择“关闭” > 点击“保存”。
故障排除表:iPhone Charles 代理的常见问题
| 症状 | 可能的根本原因 | 修复操作 |
|---|---|---|
| iPhone shows "No Internet Connection" | 计算机防火墙正在阻止 8888 端口,或者 Charles 未运行。 | 在 Windows 防火墙/macOS 应用程序防火墙中允许端口 8888 的传入连接。请确认 Charles 正在运行。 |
| chls.pro/ssl 显示搜索结果或超时 | iPhone 的 Wi-Fi 代理未启用,或者指向了错误的 IP 地址。 | 在 Safari 中打开 chls.pro/ssl 之前,请确保代理设置为“手动”,端口号为 8888。 |
| Safari shows "This Connection Is Not Private" | 配置文件已安装,但“证书信任设置”未启用。 | 请进入“设置” > “通用” > “关于本机” > “证书信任设置”,并为 Charles Proxy CA 启用“完全信任”。 |
| SSL Proxying shows "unknown" or red padlock in Charles | SSL 代理设置中不包含主机名。 | 转到“代理”>“SSL 代理设置”>“包含”,然后添加 *:443。 |
| VPN 应用导致 Charles 连接中断 | 已建立的 VPN 隧道会覆盖手动设置的 Wi-Fi 代理设置。 | 在使用 Charles Proxy 时,请断开 iPhone 上所有正在运行的 VPN 配置文件。 |
快速设置摘要:iPhone + Charles 检查清单
- 在 8888 端口上启动 Charles Proxy
- 帮助 > 本地 IP 地址(例如 192.168.1.100)
- Click "Allow" on connection prompt
- 代理 > SSL 代理设置 > 启用 *:443
- “设置” > “Wi-Fi” > (i) > “配置代理” > “手动”
- 服务器:[计算机 IP] | 端口:8888 | 认证:关闭
- Safari:打开 chls.pro/ssl > 允许配置文件
- “设置” > “通用” > “VPN 和设备管理” > “安装”
- “设置” > “通用” > “关于本机” > “证书信任设置” > “完全信任”
法国
新加坡
印度
常见问题解答
设置代理后,为什么我的 iPhone 会显示“无互联网连接”?
出现这种情况可能是因为 Charles 代理未运行、计算机的防火墙阻挡了 8888 端口,或者 iPhone 和计算机未连接到完全相同的 Wi-Fi 网络。此外,请确保您已在 Charles 的入站连接弹出窗口中点击了“允许”,或者已在“代理 > 访问控制设置”中添加了您的 iPhone IP 地址。
为什么Safari中的HTTPS网站会显示“此连接不安全”?
安装 Charles 配置文件只是第一步。在 iOS 上,你还必须手动启用“完全信任”:进入“设置” > “通用” > “关于本机” > “证书信任设置”,在“为根证书启用完全信任”下找到 Charles Proxy CA 证书,并将开关切换至“开”的位置。
在 iOS 15、16、17 和 18 中,下载的 Charles 配置文件保存在哪里?
在现代 iOS 版本中,使用 Safari 从 chls.pro/ssl 下载证书后,会弹出“配置文件已下载”的通知。请打开“设置” > “通用” > “VPN 与设备管理”,点击“已下载的配置文件”下的 Charles Proxy 配置文件,然后点击右上角的“安装”。
为什么有些 iOS 应用即使启用了“完全信任”仍无法解密?
一些对安全性要求较高的 iOS 应用程序(例如银行、支付和主流社交媒体应用)会使用 SSL 固定(例如通过 NSURLSessionDelegate 或 TrustKit)。 当应用程序对其证书或公钥进行固定时,它会拒绝任何代理证书,包括受信任的用户根证书颁发机构(CA)。要绕过证书固定,需要在越狱设备上运行 Frida/SSLKillSwitch2,或者使用调试版本进行测试。
如何在 iPhone 上将 Charles 与 PXM2 4G/5G 移动代理进行链式连接?
在您计算机上的 Charles 中,导航至“代理”>“外部代理设置”。 勾选“使用外部代理服务器”,启用 Web 代理 (HTTP) 和安全 Web 代理 (HTTPS),输入您的 PXM2 网关主机名和端口(例如:gate.pxm2.io:8000),并输入您的代理凭据。 您的 iPhone 流量将在 Charles 中本地解密,并通过真实的移动运营商蜂窝网络 IP 地址传输至互联网。
相关移动代理指南
浏览 PXM2 网络中关于移动设备、开发环境以及网络自动化的设置教程。
移动端与平台指南
开发人员与自动化指南
使用真实的运营商 IP 地址对 iOS 移动应用进行审计
将 iOS 上的本地 Charles 调试功能与覆盖 40 多个国家的专用 4G/5G 蜂窝调制解调器相结合。提供无限流量、即时轮换端点,且数据中心 IP 地址绝不会被封禁。
获取移动代理