抓包工具相关
抓包工具 Charles/Fiddler/mitmproxy 完整系统学习大纲
本文面向测试工程师。抓包是测试人员最实用的”显微镜”:接口报错时确认是前端传参错了还是后端返回错了、Mock 造服务端还没准备好的数据、弱网下验证 App 表现、篡改参数做边界与安全测试——这些场景都离不开抓包。 文中以 Charles(跨平台、主力推荐)为主,Fiddler(Windows 常用)、mitmproxy(命令行/自动化)、Wireshark(网络层)为辅。
一、抓包概述
1.1 什么是抓包?
- 定义:抓包(Packet Capture)指在客户端与服务器之间截获、查看、分析网络数据包的过程。
- 本质:抓包工具充当”中间人”(Man-in-the-Middle),所有流量经过它,因此可以看到明文内容。
- 分层:
- 应用层抓包(Charles/Fiddler/Postman 代理):看 HTTP/HTTPS 请求响应全文,测试最常用。
- 网络层抓包(Wireshark/tcpdump):看 TCP/UDP/IP 报文,排查连接、重传、握手等问题。
1.2 抓包能做什么?
| 用途 | 说明 |
|---|---|
| 定位前后端 Bug | 看请求参数对不对、响应数据对不对,快速判定责任方 |
| Mock 数据 | 服务端没开发完 / 造不出异常数据时,本地伪造响应 |
| 弱网测试 | 限速、加延迟、丢包,验证 App 在网络差时的表现 |
| 篡改请求/响应 | 构造异常、边界值、超长字段,测试客户端容错 |
| 安全测试 | 检查明文传输、敏感信息泄露、篡改参数越权 |
| 接口逆向/竞品分析 | 抓取 App 接口,理解业务逻辑 |
| 生成测试用例 | 抓到的请求可直接导出为 cURL / HAR,转成自动化用例 |
1.3 工具对比
| 工具 | 平台 | 免费 | 特点 | 适用场景 |
|---|---|---|---|---|
| Charles | Win/macOS/Linux | 收费(试用 30 分钟) | 界面清晰、功能全面、跨平台 | 主力推荐,日常接口抓包 |
| Fiddler Classic | Windows | ✅ 免费 | 功能强、可扩展脚本(.NET) | Windows 用户首选 |
| Fiddler Everywhere | 跨平台 | 收费(有限免费) | 新版,UI 现代化 | 跨平台统一体验 |
| mitmproxy | 跨平台 | ✅ 开源免费 | 命令行 + Python 插件,可脚本化 | 自动化测试/持续集成 |
| Wireshark | 跨平台 | ✅ 开源免费 | 网络层抓包,协议支持最全 | 底层网络问题排查 |
| Burp Suite | 跨平台 | 社区版免费 | 安全测试专业工具 | 渗透/安全测试 |
| Chrome DevTools | 浏览器内置 | ✅ | 免安装,看 Network 面板 | 前端快速调试 |
💡 学习建议:先精通 Charles,掌握原理后其他工具一通百通。需要脚本化/自动化时再学 mitmproxy。
二、抓包原理
2.1 HTTP 抓包原理(代理模式)
正常流程:
浏览器/App ─────────────────────────▶ 真实服务器
开启代理后:
浏览器/App ──▶ Charles(代理 8888) ──▶ 真实服务器
│
└─ 可查看/修改/拦截明文内容
- 客户端把代理设置为 Charles 的地址和端口(默认
127.0.0.1:8888)。 - 客户端的所有 HTTP 请求先发到 Charles。
- Charles 转发给真实服务器,拿到响应后再返回给客户端。
- HTTP 是明文,Charles 可直接读取全部内容。
2.2 HTTPS 抓包原理(中间人 + 证书信任)
HTTPS 是加密的,要解密必须让客户端”信任”Charles 伪造的证书:
① 客户端发起 HTTPS 请求(经 Charles 代理)
② Charles 用自己的根证书,现场签发一张"目标网站的假证书"返回给客户端
③ 因为客户端提前安装并信任了 Charles 根证书 → 信任这张假证书 → 握手成功
④ 同时 Charles 以客户端身份,与真实服务器建立正常的 HTTPS 连接
⑤ 结果:客户端↔Charles、Charles↔服务器 两段都是加密的
但 Charles 在中间,可以解密看到明文
因此 HTTPS 抓包必须完成两步:
- 客户端安装并信任 Charles 根证书。
- Charles 开启 SSL Proxying(对指定域名启用 HTTPS 解析)。
⚠️ 安全提示:抓包工具能解密 HTTPS,本质是”合法的中间人”。只在你有权限的测试环境/自己的设备上使用;安装的根证书用完建议从信任列表移除,避免长期留在系统里。
2.3 抓不到包的常见原因
| 现象 | 原因 | 思路 |
|---|---|---|
全是 unknown / CONNECT |
未开启 SSL Proxying | Charles 中对该域名 Enable SSL Proxying |
| 证书不受信任告警 | 根证书未安装或未信任 | 重装并信任证书(手机需在”信任的凭据”中确认) |
| App 直接断网/报错 | SSL Pinning(证书绑定) | App 内置了服务端证书指纹,不信任 Charles 证书 |
| Android 7+ 抓不到 | 系统默认不信任用户 CA | 需装为系统证书(root)或用测试包配置 |
| 部分请求抓不到 | App 走了 socket/非系统代理 | 需 VPN 模式或透明代理(如 Postern、ProxyDroid) |
| 浏览器能抓 App 不能抓 | App 未走系统代理 | 检查 App 是否设置了独立代理 |
三、Charles 详解(主力工具)
3.1 安装与基本配置
- 下载:Charles 官网
- 安装后启动,Charles 会自动把系统代理设为
127.0.0.1:8888。 - 查看/修改代理端口:
Proxy → Proxy Settings → HTTP Proxy → Port(默认 8888)。
Charles 界面布局:
┌───────────────┬──────────────────────────────────┐
│ Structure │ Overview / Request / Response / │
│ (按域名分组) │ Summary / Chart / Notes │
│ Sequence │ │
│ (按时间排序) │ 右侧为选中请求的详情面板 │
└───────────────┴──────────────────────────────────┘
- Structure 视图:按域名树形分组,适合看某个系统的所有接口。
- Sequence 视图:按请求时间排序,适合看完整调用顺序(排查时序问题用它)。
3.2 证书安装(HTTPS 抓包前提)
Windows / macOS(抓电脑流量):
Help → SSL Proxying → Install Charles Root Certificate
→ 安装到"受信任的根证书颁发机构"(关键!)
移动端(抓手机流量):
- 手机与电脑连同一 WiFi。
- 手机 WiFi 设置 → 代理 → 手动 → 主机名填电脑 IP(如
192.168.1.5),端口8888。 - 手机浏览器访问
chls.pro/ssl下载证书并安装。 - 首次连接时 Charles 弹出授权窗口,点 Allow。
- Charles 开启:
Proxy → SSL Proxying Settings → Enable SSL Proxying,添加域名(或填*抓全部)。
SSL Proxying Settings 配置:
☑ Enable SSL Proxying
Include → Add
Host: * (抓全部)
Port: 443
或只加需要的:api.example.com
💡 建议只添加需要抓的域名,避免抓取系统/其他 App 的无关流量,干扰分析。
3.3 Charles 核心功能
3.3.1 Filter 过滤(最常用)
Proxy → Recording Settings → Include/Exclude
或直接在界面左下角 Filter 框输入关键字(如 api.example.com)
支持通配符 *、支持按 URL/状态码/方法过滤,是抓包效率的关键。
3.3.2 Breakpoints 断点(改请求/响应)
右键某请求 → Breakpoints
下次该请求发出时会被拦截,可修改:
- Request:改 URL、Header、Body(构造异常参数)
- Response:改返回数据(模拟各种服务端返回)
修改后点 Execute 放行
💡 测试场景:构造”余额不足”“库存为 0”“超长昵称”“特殊字符”等服务端难以造出的数据。
3.3.3 Map Local(本地文件替换响应)
Tools → Map Local → Enable Map Local → Add
Map From: https://api.example.com/user/info
Map To: 本地 user_info.json 文件
- 把某个接口的响应永久替换成本地 JSON 文件内容。
- 适合:后端接口未开发完成、需要稳定复现某类数据、UI 联调。
3.3.4 Map Remote(转发到另一台服务器)
Tools → Map Remote → Add
Map From: https://api.example.com/
Map To: http://192.168.1.100:8080/
- 把线上请求转发到测试/预发环境,常用于复现线上问题到本地环境。
3.3.5 Rewrite(批量改写)
Tools → Rewrite → Enable Rewrite → Add Rules
可批量修改:Header、Host、URL、Body、Query 参数、响应状态码
支持正则匹配
比断点更强大:可批量、自动改写,适合统一加请求头、替换环境标识、模拟全站错误码。
3.3.6 Throttle 弱网模拟
Proxy → Throttle Settings → Enable Throttling
可设置:带宽(bandwidth)、延迟(latency)、丢包率(reliability)
可对指定 Host 生效(只限制目标域名,不影响其他流量)
弱网参数参考表:
| 场景 | 带宽 | 延迟 | 丢包率 | 说明 |
|---|---|---|---|---|
| 正常网络 | 不限 | 0 | 0% | 基线 |
| 良好 4G | 4 Mbps | 50 ms | 0% | 一般移动网络 |
| 一般 3G | 384 kbps | 200 ms | 1% | 中等 |
| 较差 2G | 50 kbps | 500 ms | 5% | 弱网 |
| 极差/断网边缘 | 20 kbps | 2000 ms | 10% | 极限场景 |
💡 弱网测试重点观察:Loading 是否卡死、是否有超时提示、重试机制、数据是否重复提交、图片是否加载失败、有无崩溃。
3.3.7 其他实用功能
| 功能 | 入口 | 用途 |
|---|---|---|
| Repeat / Repeat Advanced | 右键请求 | 重发请求(Advanced 可设置次数+并发,简易压测) |
| Compose | 右键 → Compose | 修改后重新构造并发起请求 |
| Copy as cURL | 右键 → Copy cURL Request | 导出为 curl 命令,可直接贴进终端/Postman |
| Export HAR | File → Export → HAR | 导出完整会话,可导入 Postman/JMeter |
| Focus / Ignore Hosts | 右键请求 → Focus | 聚焦只看关注的域名 |
| Find in Session | Ctrl+F | 全文搜索请求/响应内容(找某个字段) |
四、Fiddler 详解
4.1 版本选择
| 版本 | 平台 | 授权 | 说明 |
|---|---|---|---|
| Fiddler Classic | Windows | 免费 | 老牌经典版,功能最全,插件生态好 |
| Fiddler Everywhere | Win/macOS/Linux | 收费(有免费额度) | 新版,跨平台,UI 现代化 |
4.2 基本配置
Tools → Options
Connections 页签:
☑ Allow remote computers to connect (允许手机连接,抓移动端必开)
Fiddler listens on port: 8888 (默认端口)
HTTPS 页签:
☑ Capture HTTPS CONNECTs
☑ Decrypt HTTPS traffic (解密 HTTPS)
→ Actions → Trust Root Certificate (安装并信任根证书)
4.3 核心功能对照(Charles ↔ Fiddler)
| 功能 | Charles | Fiddler |
|---|---|---|
| 断点拦截 | Breakpoints | Rules → Automatic Breakpoints(或命令行 bpu 关键词) |
| 本地文件替换响应 | Map Local | AutoResponder(拖拽即可,非常好用) |
| 转发到其他服务器 | Map Remote | AutoResponder → 填 http://host:port |
| 批量改写 | Rewrite | Fiddler Script(CustomRules.js) |
| 弱网 | Throttle Settings | Rules → Performance → Simulate Modem Speeds |
| 重发请求 | Repeat | Replay(选中请求按 R) |
| 构造请求 | Compose | Composer |
| 过滤 | Filter | Filters 页签(按 Host/进程/状态码过滤) |
Fiddler 快捷命令行(界面底部黑色输入框):
bpu /api/login 请求前断点(含该关键字的 URL)
bpafter /api/login 响应后断点
bps 404 响应状态码为 404 时断点
bpu 清除断点
cls 清空会话列表
select json 选中所有 Content-Type 为 json 的会话
?keyword 高亮包含关键字的会话
4.4 AutoResponder 使用(Mock 神器)
1. 勾中某条会话 → 拖到右侧 AutoResponder 面板
2. ☑ Enable rules ☑ Unmatched requests passthrough(不匹配的请求正常放行)
3. 右键该规则 → Edit Response / Choose Response File 选择本地 JSON
4. 可设置 rule:精确匹配 / 正则匹配(regex:)/ 状态码(如 404、500)
💡 比 Charles Map Local 更直观:支持直接拖放、支持正则、支持一次性返回指定状态码(如 500、超时)。
4.5 Fiddler Script(进阶)
Rules → Customize Rules(打开 CustomRules.js),用 C# 脚本批量改写:
// 在 OnBeforeRequest 中给所有请求加一个测试标记头
static function OnBeforeRequest(oSession: Session) {
if (oSession.HostnameIs("api.example.com")) {
oSession.oRequest["X-Test-Flag"] = "true";
// 模拟接口延迟 2 秒
// oSession["request-trickle-delay"] = "2000";
}
}
五、mitmproxy(命令行 / 自动化)
5.1 安装与三种模式
pip install mitmproxy
mitmproxy --version
| 命令 | 形态 | 用途 |
|---|---|---|
mitmproxy |
交互式 TUI(终端界面) | 手动查看,无 GUI 环境 |
mitmdump |
纯命令行(类似 tcpdump) | 脚本化、自动化、CI |
mitmweb |
Web 界面(浏览器打开) | 类 Charles 的图形界面 |
# 启动(默认监听 8080)
mitmproxy -p 8888
mitmweb -p 8888
# 透明代理模式(无需客户端配代理)
mitmproxy --mode transparent
# 保存所有流量到文件
mitmdump -w traffic.flow
# 回放 / 读取
mitmdump -r traffic.flow
证书安装:启动后手机/浏览器访问 mitm.it 下载对应平台证书。
5.2 Python 脚本(自动化测试核心能力)
# mock_addon.py
from mitmproxy import http
def request(flow: http.HTTPFlow) -> None:
"""请求发出前:可修改请求"""
if "/api/user/info" in flow.request.pretty_url:
flow.request.headers["X-Test-Token"] = "mock-token"
def response(flow: http.HTTPFlow) -> None:
"""收到响应后:可替换响应内容"""
if "/api/user/info" in flow.request.pretty_url:
flow.response.set_text(
'{"code": 0, "data": {"name": "MockUser", "vip": true}}'
)
flow.response.headers["Content-Type"] = "application/json"
# 加载插件运行
mitmdump -p 8888 -s mock_addon.py
# 过滤只处理指定域名(注意引号,Windows 用双引号)
mitmdump -p 8888 -s mock_addon.py --set confdir=~/.mitmproxy "~d api.example.com"
更多实用脚本片段:
from mitmproxy import http
def response(flow: http.HTTPFlow) -> None:
# 1. 统一注入错误码(模拟服务端故障)
if "/api/" in flow.request.pretty_url:
flow.response.status_code = 500
# 2. 模拟接口延迟
# import time; time.sleep(3)
# 3. 拦截并记录特定请求用于断言
if "/api/order/create" in flow.request.pretty_url:
with open("order_requests.log", "a", encoding="utf-8") as f:
f.write(flow.request.text + "\n")
💡 测试价值:mitmproxy 可以写进自动化测试框架 —— 启动代理、加载 mock 脚本、运行 UI 自动化、断言请求内容、关闭代理。这是 Charles 图形界面做不到的事。
六、Wireshark(网络层抓包)
6.1 与 Charles/Fiddler 的区别
| 维度 | Charles / Fiddler | Wireshark |
|---|---|---|
| 层级 | 应用层(HTTP/HTTPS) | 网络层/传输层(TCP/UDP/IP) |
| 内容 | 请求响应全文(已解密) | 原始报文(HTTPS 内容加密看不到) |
| 用途 | 看接口数据、Mock、改包 | 排查连接、握手、重传、延迟 |
| 门槛 | 低 | 较高 |
6.2 常用过滤表达式
# 按 IP/主机
ip.addr == 192.168.1.100
ip.src == 10.0.0.1 && ip.dst == 10.0.0.2
# 按端口/协议
tcp.port == 8080
http
dns
tls
# 按请求特征(HTTP 明文时)
http.request.method == "POST"
http.request.uri contains "/api/login"
http.response.code == 500
# 排查 TCP 问题(重传、握手、连接重置)
tcp.analysis.retransmission # 重传(网络质量差/丢包)
tcp.analysis.flags # 异常标志
tcp.flags.reset == 1 # 连接被重置(RST)
tcp.flags.syn == 1 && tcp.flags.ack == 0 # SYN(握手发起)
# 服务器端命令行抓包(tcpdump)
tcpdump -i any -w capture.pcap host 192.168.1.100 and port 8080
tcpdump -i any -nn -A 'tcp port 8080' # 直接打印明文内容
# 下载 capture.pcap 后用 Wireshark 分析
💡 测试场景:接口偶发超时、客户端报”连接被重置”、性能压测时连接上不去——这类问题应用层抓包看不出来,需要 Wireshark 看 TCP 握手和重传。
七、移动端抓包实战
7.1 Android 抓包
步骤:
1. 手机与电脑连同一 WiFi
2. 电脑查 IP:ipconfig(Windows)/ ifconfig(mac/Linux)
3. 手机:设置 → WLAN → 长按当前 WiFi → 修改网络 → 显示高级选项
→ 代理:手动
→ 主机名:电脑 IP
→ 端口:8888
4. 手机浏览器访问 chls.pro/ssl 下载证书
5. 安装:设置 → 安全 → 从存储设备安装 → 选择证书(需设置锁屏密码)
6. Charles 点 Allow 授权
Android 7.0+ 的限制(重点坑):
- Android 7 起,App 默认只信任系统级 CA,用户安装的证书不生效(浏览器不受影响)。
- 解决办法(测试环境):
-
使用 debug 包:让开发在
res/xml/network_security_config.xml中配置信任用户 CA:<network-security-config> <debug-overrides> <trust-anchors> <certificates src="system" /> <certificates src="user" /> <!-- 关键:信任用户证书 --> </trust-anchors> </debug-overrides> </network-security-config> - 装为系统证书(需 root / 模拟器):把证书 push 到
/system/etc/security/cacerts/。 - 用 Android 模拟器(如夜神、MuMu、AVD):模拟器一般可直接信任用户证书。
-
7.2 iOS 抓包
1. 设置 → 无线局域网 → 当前 WiFi → 配置代理 → 手动 → 填电脑 IP + 8888
2. Safari 访问 chls.pro/ssl → 下载描述文件
3. 设置 → 通用 → VPN与设备管理 → 安装描述文件
4. 设置 → 通用 → 关于本机 → 证书信任设置 → 开启"完全信任"(关键!第 4 步最容易漏)
⚠️ iOS 必须在”证书信任设置”中手动开启开关,只安装描述文件是不够的。
7.3 SSL Pinning(证书绑定)
部分 App(金融、支付类)内置了服务端证书指纹,会校验当前证书是否匹配,不匹配就直接拒绝连接,导致抓不到包。
测试环境下的合规处理方式:
- 优先找开发要 debug 包(关闭 Pinning 或配置信任用户 CA)—— 最正当的途径。
- 使用测试环境/测试包自带的抓包开关。
- 逆向手段(Frida、Objection、Xposed 模块)仅可在自己有明确授权的应用上、在测试环境中使用,涉及合规风险,生产应用请勿尝试。
7.4 抓不到包排查清单
| 检查项 | 操作 |
|---|---|
| 手机和电脑同一网段? | 手机 ping 电脑 IP |
| Charles/Fiddler 允许远程连接? | Fiddler 需勾 Allow remote computers to connect |
| 防火墙放行端口? | Windows 防火墙可能拦截 8888,临时关闭测试 |
| 证书装了但没信任? | iOS 看”证书信任设置”;Android 看”信任的凭据” |
| SSL Proxying 开启? | Charles 需 Enable SSL Proxying 并加域名 |
| App 不走系统代理? | 尝试 VPN 模式(Postern / Drony / ProxyDroid) |
| App 有 SSL Pinning? | 换 debug 包 |
八、测试场景实战(重点)
8.1 定位前后端 Bug(最高频)
判定口诀:
| 抓到的现象 | 责任方 |
|---|---|
| 请求没发出去 | 前端 Bug(事件没绑定、校验拦截) |
| 请求发了但参数错误/缺失 | 前端 Bug(传参问题) |
| 请求参数正确,响应数据错误 | 后端 Bug |
| 响应数据正确,页面显示错误 | 前端 Bug(渲染问题) |
| 响应 5xx | 后端 Bug |
| 响应 4xx | 看情况:参数错是前端,接口逻辑拒绝是后端 |
实战步骤:
1. 复现问题,抓到对应请求
2. 看 Request:URL、Method、Header、Body 参数是否正确
3. 看 Response:状态码、返回数据是否符合预期
4. 对比接口文档,判定责任方
5. 截图保存请求响应(提 Bug 时附上,开发秒懂)
💡 提 Bug 的加分项:把请求和响应截图(或用
Copy as cURL导出)附到缺陷单里,开发的定位效率会提升数倍。
8.2 Mock 造数据
场景:需要测试"会员过期""余额为0""列表有 1000 条数据"等难造的场景
做法:
1. 先正常抓一次请求,拿到真实响应
2. 右键 → Save Response 保存为 JSON
3. 修改 JSON 内容为目标数据
4. Charles: Tools → Map Local 指向该文件
(或 Fiddler: 拖到 AutoResponder → Choose Response File)
5. 重新打开页面,即可看到 Mock 数据
8.3 弱网测试
Charles: Proxy → Throttle Settings → Enable Throttling
☑ Only for selected hosts → 添加目标域名(避免影响其他流量)
设置 bandwidth / latency / reliability
重点验证:
□ 是否有 Loading 提示,是否会卡死
□ 超时后是否有友好提示 + 重试按钮
□ 重复点击是否会产生重复订单/重复提交
□ 图片加载失败是否有占位图
□ 断网重连后数据是否恢复
□ 是否发生崩溃/ANR
8.4 篡改请求做边界与安全测试
用 Breakpoints 拦截后修改:
□ 超长字符串(昵称输入 10000 字符)
□ 特殊字符(<script>、'、"、%、emoji、SQL 片段)
□ 负数/超大数值(金额 -1、数量 99999999)
□ 空值/null
□ 篡改用户 ID / 订单 ID(检查是否越权)
□ 篡改金额、数量(检查服务端是否二次校验)
□ 删除/修改签名参数
⚠️ 安全测试重点:前端校验可以绕过,服务端必须二次校验。用抓包改包验证”篡改金额能否下单成功”,是经典的越权/逻辑漏洞测试。
8.5 接口自动化辅助
# 1. 抓包 → Copy as cURL → 直接转成 Python requests 代码
# 可用工具:curlconverter.com,或 Postman 的 Import → Paste cURL
# 2. Charles 导出 HAR → 导入 Postman / JMeter
# File → Export → HAR → Postman: File → Import → 选 .har
# 由 cURL 转换得到的 requests 用例
import requests
url = "https://api.example.com/api/login"
headers = {"Content-Type": "application/json"}
data = {"username": "test01", "password": "123456"}
resp = requests.post(url, json=data, headers=headers, timeout=5)
assert resp.status_code == 200
assert resp.json()["code"] == 0
8.6 其他实用场景
| 场景 | 做法 |
|---|---|
| 复现线上问题到本地 | Map Remote 把线上域名转发到本地服务 |
| 验证缓存策略 | 看响应头 Cache-Control、重复请求是否返回 304 |
| 检查敏感信息泄露 | 搜索响应中是否含明文密码、身份证、token |
| 检查是否走 HTTPS | 看是否有明文 HTTP 请求(安全合规问题) |
| 验证接口性能 | 看 Timeline / Duration,定位慢在哪个接口 |
| 验证重试机制 | 用 Rewrite 让接口返回 500,看客户端是否重试 |
九、常见问题速查
| 问题 | 原因 | 解决 |
|---|---|---|
| 抓包后上不了网 | 代理开着但 Charles 关了 | 关闭系统代理或保持 Charles 运行 |
| 全是 CONNECT 看不到内容 | 没开 SSL Proxying | Proxy → SSL Proxying Settings 开启并加域名 |
| 提示证书不受信任 | 根证书未装入”受信任的根证书颁发机构” | 重装证书到正确存储区 |
| 手机连了代理但抓不到 | 电脑防火墙拦截 / 不同网段 | 关防火墙测试;确认同一 WiFi |
| Charles 每次弹授权窗口 | 手机 IP 变化 | 确认后不再弹;或设置 Allow 白名单 |
| 抓包导致 App 变卡 | 抓取流量过多 | 用 Filter 只保留目标域名 |
| 关掉 Charles 后浏览器打不开网页 | 系统代理没还原 | 关闭系统代理开关,或退出前先关代理 |
HTTPS 显示 <unable to decrypt> |
该域名未加入 SSL Proxying 列表 | 加入列表或填 * |
十、学习资源
| 资源 | 说明 |
|---|---|
| Charles 官方文档 | 功能说明与教程 |
| Fiddler 官方文档 | Fiddler Classic/Everywhere 文档 |
| mitmproxy 官方文档 | 含 Python 插件 API |
| Wireshark 官方指南 | 网络层抓包权威资料 |
| curlconverter | cURL 转各语言代码 |
| Fiddler 中文文档 / 博客园抓包专题 | 中文实战经验 |