HTTP 抓包工具 Fiddler,强大又经典,用过都说好,详细使用安装教程
做过接口测试或者 Web 开发的人,基本上都用过 Fiddler。这个工具出来很多年了,到现在还是很多测试工程师和开发的日常必备。它的核心功能就一件事:把你电脑和网络之间的 HTTP/HTTPS 请求拦下来,让你看到数据里面有什么,还可以改。
这篇文章把 Fiddler 的常见用法整理了一遍,从安装到实际操作,适合没用过的人跟着走一遍,也适合用过但没系统看过的人补一下知识点。
Fiddler 是什么,工作原理是什么
Fiddler 是一个 HTTP 调试代理工具,运行在客户端和服务器之间,相当于一个中间人。打开 Fiddler 之后,它会自动把系统代理设置成自己,所有从浏览器或应用发出的 HTTP 请求都会先经过它,再转发到目标服务器;服务器的响应也是先回到 Fiddler,再转给客户端。这个过程 Fiddler 全程记录,想看哪条请求的内容,双击打开就行。
关掉 Fiddler 的时候,代理会自动还原,不需要手动改回来。
它默认监听的端口是 8888,可以在 Tools → Options → Connections 里改。
能做什么:
- 查看浏览器和手机 App 发出的 HTTP/HTTPS 请求内容
- 修改请求参数或响应数据,用于接口测试和造数据
- 设置断点,拦截请求后手动修改再放行
- 用 AutoResponder 功能把某个接口的请求重定向到本地文件
- 模拟弱网环境,测试 App 在低速网络下的表现
- 过滤请求,只显示某个域名下的流量
- 重放请求,用 Composer 手动构造并发送请求
免费使用,Windows 平台原生支持,安装包体积小,不依赖其他运行环境。

安装方法
👉 下载地址: Fiddler 安装包下载
下载后是一个 exe 文件,双击运行,按安装向导点"下一步"就能完成,安装路径可以改到非系统盘。
安装完第一次打开,会弹出一个提示,问是否允许 Fiddler 解密 HTTPS 流量,这里建议点"Yes",不然只能抓 HTTP 包,HTTPS 的内容看不到。
界面说明
打开 Fiddler,界面分左右两栏:
- 左侧会话列表:记录每一条抓到的请求,显示请求编号、协议、主机、URL、状态码、耗时等信息。不同类型的请求颜色不同,红色是有错误的(如 404、500),绿色是 HTTP,灰色是 HTTPS 等。
- 右侧详情面板:选中左侧某条请求后,右侧显示它的详细内容,分上下两部分:上面是请求头和请求体,下面是响应头和响应体。切换到 Inspectors 标签页可以按不同格式查看数据(Raw、JSON、Headers 等)。
底部有一个命令行输入框,可以输入快捷命令控制断点和过滤。

几种核心使用方法
用法一:抓 PC 端网页的 HTTP/HTTPS 请求
这是最基础的用法。打开 Fiddler,然后打开浏览器访问任意网页,左侧会话列表就开始滚动,每一条都是一个 HTTP 请求。
点击左侧任意一条,右侧切换到 Inspectors 标签页:
- 上半部分是"请求":包括请求方法(GET/POST)、URL、请求头、请求体
- 下半部分是"响应":状态码、响应头、响应体(页面 HTML、JSON 数据等)
如果想只看某个域名的请求,不想被其他无关流量干扰,可以用过滤功能:
切换到右侧的 Filters 标签页,勾选"Use Filters",在"Show only the following Hosts"里填入目标域名,比如 api.example.com,然后点 Actions → Run Filterset Now,列表里就只剩这个域名的请求了。
HTTPS 解密配置(如果没有开启):
去 Tools → Options → HTTPS,勾选"Capture HTTPS CONNECTs"和"Decrypt HTTPS traffic",点 OK,会提示安装证书,点"Yes"信任,重启 Fiddler,之后 HTTPS 请求就能正常看到内容了。

用法二:抓手机 App 的数据包
这个用法需要手机和电脑在同一个 WiFi 网络下。操作分三步:
第一步:Fiddler 开启远程连接
Tools → Options → Connections,勾选"Allow remote computers to connect",端口保持 8888,点 OK。这时 Fiddler 会弹一个提示,确认允许就行。
第二步:手机设置代理
查一下电脑的 IP 地址(Win+R 输入 cmd,运行 ipconfig,找 IPv4 地址,比如是 192.168.1.5)。
然后手机连上同一个 WiFi,进入 WiFi 设置,找到当前连接的网络,点进去修改网络配置,把代理设为"手动",服务器填电脑 IP(192.168.1.5),端口填 8888,保存。
第三步:安装 Fiddler 证书(抓 HTTPS 必须)
手机设好代理后,用手机浏览器访问:http://192.168.1.5:8888
页面会显示 Fiddler 的欢迎页,拉到底部找到"FiddlerRoot certificate"链接,点击下载证书文件。
- Android 手机:进入设置 → 安全 → 安装证书,找到刚下载的 cer 文件,给它起个名字安装。部分 Android 系统还需要进"信任的凭据"里确认。
- iPhone:证书下载后进入设置 → 通用 → VPN 与设备管理,找到 FiddlerRoot 证书,点安装。安装完之后还需要一步:设置 → 通用 → 关于本机 → 证书信任设置,把 FiddlerRoot 的开关打开,手动设置为信任,少了这一步 HTTPS 还是抓不到。
设置好后,用手机打开任意 App 操作,回到电脑上的 Fiddler,就能看到手机发出的请求了。
注意: 抓包结束后记得把手机的代理关掉,不然手机断网后会上不了网。另外,部分 App 有反抓包机制(SSL Pinning),这类 App 用普通方式抓不到,需要借助其他工具绕过,这里不展开。
用法三:设置断点修改请求或响应
这是测试人员用得最多的功能之一。场景是:想看后端如果收到不同参数会怎么处理,但又不想改前端代码,就可以用断点把请求拦下来,在 Fiddler 里改完参数再放行。
方式一:全局断点(拦截所有请求)
菜单 Rules → Automatic Breakpoints → Before Requests(在请求发出前拦截)或 After Responses(在响应返回后拦截)。
设置后,之后所有请求都会被暂停在 Fiddler 里,左侧会话列表里停住的请求图标会变成红色叹号。点击这条请求,在右侧可以直接修改请求参数或响应内容,改完点上方的"Go"或者"Run to Completion"按钮放行。
用完记得在 Rules → Automatic Breakpoints → Disabled 里关掉,不然所有请求都卡住。
方式二:只对指定 URL 设断点
在底部命令行输入:
bpu api.example.com/login
这样只有 URL 包含 /login 的请求才会被拦住,其他请求正常通过。取消断点输入 bpu(不带参数)即可。

用法四:AutoResponder 替换响应数据
这个功能可以让 Fiddler 对某个 URL 的请求自动返回本地的数据,不需要真正请求服务器。适合前端在后端接口还没开发完时,用本地数据先联调。
操作步骤:
-
把想替换的接口的响应内容复制出来,粘贴到一个本地 json 文件里(比如
D:\mock\data.json),修改你想改的字段,保存。 -
在 Fiddler 右侧切换到 AutoResponder 标签页。
-
勾选"Enable rules"和"Unmatched requests passthrough"(后者让没有匹配规则的请求正常通过)。
-
点"Add Rule",上方输入要拦截的 URL(支持正则,URL 前加
regex:即可),下方点箭头选"Find a file…",选择刚才保存的 json 文件。 -
点 Save 保存规则。
之后每次访问这个 URL,Fiddler 都会直接返回本地文件的内容,不去请求真实服务器。想恢复正常就取消勾选"Enable rules"。
用法五:模拟弱网
测试 App 在 2G/3G 慢速网络下的表现,可以用 Fiddler 的模拟限速功能:
Rules → Performances → Simulate Modem Speeds,勾选后网络会明显变慢。
如果需要自定义速度,在 Rules → Customize Rules 打开脚本文件,找到 if (m_SimulateModem) 这一段,里面有 oSession["response-trickle-delay"](控制下载延迟)和 oSession["request-trickle-delay"](控制上传延迟),单位是毫秒,可以改成你想要的数值,保存后立即生效。
Composer:手动构造和重发请求
右侧切换到 Composer 标签页,可以手动填写请求方法、URL、请求头、请求体,点 Execute 发送。
更常见的用法是:左侧选中一条已有的请求,直接拖到 Composer 里,它会自动填好所有内容,然后修改你想改的参数,点 Execute 重新发送。这在重放请求、测试接口时很常用,省去了手动填参数的麻烦。
与同类工具对比
| 对比项 | Fiddler | Charles | Wireshark | tcpdump | mitmproxy |
|---|---|---|---|---|---|
| 价格 | 免费 | 收费(约 $50) | 免费开源 | 免费开源 | 免费开源 |
| 操作系统 | Windows 为主 | Win/Mac/Linux | Win/Mac/Linux | Linux/Mac | Win/Mac/Linux |
| 操作界面 | 图形界面 | 图形界面 | 图形界面 | 命令行 | 命令行/Web UI |
| 抓包协议 | HTTP/HTTPS | HTTP/HTTPS | 全协议 | 全协议 | HTTP/HTTPS |
| HTTPS 解密 | 支持(安装证书) | 支持(安装证书) | 支持(需配置密钥) | 需额外处理 | 支持 |
| 手机抓包 | 支持,设代理 | 支持,支持较好 | 需额外配置 | 不适合 | 支持 |
| 断点修改数据 | 支持 | 支持 | 不支持 | 不支持 | 支持 |
| AutoResponder | 支持 | 支持(Map Local) | 不支持 | 不支持 | 支持 |
| 脚本扩展 | JScript .NET | 无 | Lua | 无 | Python |
| 学习难度 | 低 | 低 | 中高 | 高 | 中 |
| 适合人群 | 测试/开发 通用 | Mac 用户 | 网络工程师 | 运维/后端 | 安全研究者 |
从日常使用角度:Fiddler 在 Windows 上是门槛最低、上手最快的 HTTP 抓包工具,功能覆盖了绝大多数测试场景;Charles 在 Mac 上更受欢迎,界面和操作逻辑和 Fiddler 类似,但要收费;Wireshark 适合需要深入分析 TCP 层或者非 HTTP 协议的场景;tcpdump 在无图形界面的 Linux 服务器上用;mitmproxy 更偏向安全测试方向。
常见问题处理
打开 Fiddler 后浏览器上不了网
原因是 Fiddler 改了系统代理,关掉 Fiddler 代理自动还原。如果关掉还是不行,手动去系统设置里把代理关掉:设置 → 网络和 Internet → 代理,确认"使用代理服务器"是关闭状态。
HTTPS 请求显示 CONNECT tunnel 但看不到内容
HTTPS 解密没开启。去 Tools → Options → HTTPS,确认勾选了"Decrypt HTTPS traffic",并且已经安装并信任了 Fiddler 根证书(Actions → Trust Root Certificate)。
手机设了代理但 Fiddler 抓不到包
检查几个地方:电脑防火墙有没有阻止 8888 端口(临时关掉防火墙试一下);手机和电脑是否真的在同一个网段(同一个 WiFi 路由器下);手机代理里填的 IP 是否是电脑的局域网 IP(不是 127.0.0.1)。
左侧请求太多,找不到目标请求
用 Filters 过滤只显示特定域名;或者在底部命令行输入 cls 清空当前会话列表,再操作 App,只看新产生的请求;也可以在菜单 Edit → Find Sessions(Ctrl+F)搜索 URL 关键词。
Fiddler 这个工具免费、轻量,安装完基本不需要配置就能用于最常见的 Web 抓包场景。对于做接口测试、前后端联调、或者想知道某个 App 在后台发了什么请求的人来说,值得装一个放在电脑上备用。手机抓包那块配置稍微麻烦一点,但按步骤来一般不会出问题,遇到证书问题多半是 iOS 的"证书信任设置"那一步没做。
更多推荐


所有评论(0)