简介:Fiddler中文版压缩包是面向Web开发者与测试人员的经典网络调试工具,通过中文界面大幅降低HTTP(S)抓包、接口分析与性能调优的使用门槛,尤其适合英文界面上手困难的初学者和需要快速定位线上问题的一线工程师。压缩包为zip格式,文件总数暂未标注,包体大小6.02MB,解压后即可获得可运行的Fiddler中文程序。工具完整保留了抓包、请求/响应实时修改、断点调试、HTTPS流量解密、会话过滤与时间线分析等核心能力,也支持通过JScript.NET编写扩展脚本,便于自动化测试与数据校验。目前已有1978人学习下载,这套中文版资源能帮助使用者更顺畅地理解网络通信过程,从而在Web开发调试、故障排查及性能优化等场景中更加从容。
1. “Fiddler 中文版本.zip”解决了什么,又掩盖了什么
同事扔过来一个安装包,文件名写着 Fiddler 中文版本.zip。解压、覆盖 Fiddler.exe、重启,菜单栏变成“文件/规则/工具”,很多人到这里就以为工具已经会用了。实际上这道工序只是把门槛踹矮了一截,真正的难关还在后面:HTTPS 流量为什么抓不到、手机 App 怎么配上代理、证书装在哪、过滤器在哪、退出后系统代理为什么没还原。
Fiddler 是 Windows 上最老牌的 HTTP/HTTPS 调试代理,免费版 Fiddler Classic 功能完整,默认英文界面确实劝退了不少前端、测试和刚入门的后端。很多人第一次接触它是因为“手机 App 抓包”或“弱网测试”,但到手才发现,抓包要先信任根证书,代理要手动配,Filters 在哪都要找半天。这篇文章就从这个中文包切入,把安装汉化、证书信任、手机抓包、弱网脚本和卸载残留串成一套可以直接照做的流程。适合第一次装 Fiddler 的人,也适合需要给同事写交接说明的测试和运维。
2. Fiddler Classic 中文版 zip 的安装与汉化校验
网上传的“Fiddler 中文版本.zip”不是官方发布的安装包,而是 Fiddler Classic 官方程序加社区汉化资源的组合。在动手覆盖之前,先把版本和产品线分清楚,能省掉后面大半的兼容性问题。
2.1 先分清 Classic 和 Everywhere,别把汉化包用错地方
Fiddler 有两条产品线:Windows 上免费、界面老牌的 Fiddler Classic,以及跨平台、界面现代的 Fiddler Everywhere。两者共享“抓包代理”的核心思想,但主程序互不兼容。Everywhere 自带中文、需要有效授权,个人学习或公司内网调试一般用不上;流通的汉化 zip 也主要针对 Classic。所以拿到压缩包后,先确认要覆盖的目标是 Classic,而不是 Everywhere。
Fiddler Classic 默认安装目录是C:\Program Files (x86)\Fiddler2,64 位系统也一样,主程序是 32 位 .NET 进程。汉化 zip 里的文件结构通常有两种:一种是直接替换主程序和配置文件,另一种是放入语言资源目录。无论哪种,覆盖前建议整目录备份一次,方便回退。
2.2 最小安装步骤与哈希校验
常见做法是先装官方原版 Fiddler Classic,再覆盖汉化文件,而不是直接运行 zip 里的绿色版。这样后续出证书、出代理问题,至少能确定底包是完整的。
# 解压前比对哈希,先确认你拿到的压缩包没有被二次改包 Get-FileHash .\Fiddler中文版本.zip -Algorithm SHA256 # 查看当前主程序的版本信息,覆盖后再次核对 Get-Item "C:\Program Files (x86)\Fiddler2\Fiddler.exe" | Select-Object VersionInfo上面命令的作用是分别在覆盖前和覆盖后各跑一次,对比版本号和文件签名。汉化版如果直接把官方 exe 换掉,VersionInfo 里的“产品版本”通常会变得和官方不一致;用官方安装包重新装一遍再覆盖,能快速识别这种情况。
装完后 Fiddler 会默认把 Windows 系统代理指向自己的 8888 端口,退出时自动还原。如果发现浏览器没流量,第一步是看任务管理器里 Fiddler.exe 是不是还驻留,而不是怀疑抓包没开。
2.3 菜单没变中文时,先查这三件事
汉化失效大半是操作顺序问题,逐一排查比反复重装有效。
| 失效现象 | 常见原因 | 处理办法 |
|---|---|---|
| 覆盖报“文件被占用” | Fiddler 进程还在内存里 | 先在任务管理器结束 Fiddler.exe 再覆盖 |
| 菜单变成半中半英 | 压缩包内还有一层目录,覆盖错位置 | 核对解压层级,让汉化文件直接落在 Fiddler2 根目录 |
| 启动后界面还原英文 | 汉化包版本与主程序版本不匹配 | 换用和 5.x 系列对应的汉化资源,别用 4.x 的旧包 |
判断版本是否匹配,可以打开菜单栏最右侧的“FiddlerScript”标签页,底部会显示主程序当前的版本号。如果这里显示 5.x,却用了一个标注 4.x 的汉化 zip,界面就会回退英文。这个“标签页查版本”的路径,比去“关于”里找更直白。
3. 手机抓包的关键:Fiddler 的 HTTPS 解密与证书安装
中文界面只能降低操作成本,抓包本身的门槛在 HTTPS。打开 Fiddler 能看到大量Tunnel to的灰色会话,并看不到 URL 和响应内容,这就是默认没有解密 HTTPS 的表现。
3.1 HTTPS 流量为什么抓不到
Fiddler 本质是本地 HTTP 代理,普通 HTTP 请求会被它截获改写,流量内容一目了然。但 HTTPS 建立连接时,客户端先发一条CONNECT指令,要求建立一条到目标服务器的加密隧道,之后的所有字节 Fiddler 都无法直接阅读。
解密的基本原理是中间人式的证书替换:Fiddler 把自签的根证书装进系统信任区,对客户端扮演服务器、对服务器扮演客户端,从而看到明文。理解这点后就能解释很多奇怪现象:App 显示不能抓、证书弹窗、连接被重置,本质都是“客户端不愿意信任 Fiddler 这个临时证书”。
3.2 在中文版里开启 HTTPS 解密的菜单操作
菜单路径“工具 > 选项 > HTTPS”,勾选“解密 HTTPS 流量”。首次勾选会弹窗询问是否信任根证书,点“是”。顺手勾上“忽略服务器证书错误”,方便调试自签名证书的测试环境。
如果弹窗没出现,或者事后想手动信任,可以回到选项页,点“操作”按钮,选择“将根证书导出到桌面”。导出后双击 .cer 文件,进入“本地计算机 > 受信任的根证书颁发机构”完成导入。这个步骤就是热词里常说的“Fiddler 证书下载”,只是分成了两种路径:正常弹窗信任,或手动导出导入。
3.3 手机 App 抓包:同一局域网、手动代理、装证书
手机抓包的配置顺序建议固定:先电脑开 Fiddler,再配手机代理,最后下载证书。顺序反了容易出现“证书下载页打不开”。
# 在电脑上先确认 8888 端口在监听,再拿电脑的局域网 IP netstat -ano | findstr :8888 # 查看电脑在当前局域网里的 IPv4 地址 ipconfig | findstr /i "IPv4"拿到 IP 后,手机和电脑连同一个 Wi-Fi,在手机 Wi-Fi 设置里把“代理”从“无”改成“手动”,填入电脑 IP 和端口 8888。接着用手机浏览器访问http://<电脑IP>:8888,页面会提供一个证书下载入口,下载后按系统要求安装。
Android 和 iOS 的差异在信任环节:
- Android 下载 .cer 后,需要到“设置 > 安全 > 安装证书”选择 CA 证书,部分系统版本会要求先设置锁屏密码。
- iOS 下载的是描述文件,安装后还要去“设置 > 通用 > 关于本机 > 证书信任设置”里打开“完全信任”。
- Android 7 及以上,第三方 App 默认不信任用户安装的 CA,即使装好了 Fiddler 证书,某些 App 的 HTTPS 依旧解不开。这是 App 自身的网络安全策略,不是 Fiddler 配置问题。
提示:抓包只应在自己持有的设备、自己开发的 App 或公司明确授权的测试环境进行。不要用同样手法去处理不属于你的流量。
3.4 HTTPS 解密失败的 3 个真实原因
看到大量Tunnel to不代表失败,那是 CONNECT 隧道的正常记录。真正要排查的是以下三种情况:
第一,证书信任了但 App 不走系统代理。很多 Android App 直接在 Socket 层配置网络,忽略 Wi-Fi 的代理设置,表现为只有 Wi-Fi 断了 App 才出数据。常见做法是用 Fiddler 配合模拟器或路由级代理处理,而不是只改 WiFi 代理。
第二,IPv6 干扰。手机和电脑若通过 IPv6 通信,手动代理地址填 IPv4 会连不通,表现为手机上任何网页都打不开。此时在手机 Wi-Fi 设置里关掉 IPv6,或让 Fiddler 监听 IPv6 地址。
第三,系统代理被其他工具改写。设备上装了其他代理或安全软件,会把 WinINET 代理抢走,Fiddler 开了等于没开。此时到“连接”选项卡勾选“允许远程电脑连接”,并确认监听端口没被占。
4. Fiddler 弱网测试与过滤框:两个被中文菜单耽误的实用功能
“弱网测试”和“过滤框在哪”是搜索 Fiddler 时出现频率最高的两个诉求。中文汉化版让菜单位置好找了,但真正好用的参数藏得并不深。
4.1 一条菜单开弱网,一套参数做弱网
Fiddler 自带弱网开关在“规则 > 性能 > 模拟调制解调器速度”,勾选后所有请求和响应都会被限速。这个开关足够做粗粒度验证,但它同时限制上下行、也不能精确控制,接口测试时基本只能用“有没有效果”来评价。
精确做法是在 FiddlerScript 里按域名或请求类型加延迟参数:
// 在 FiddlerScript 的 OnBeforeRequest 中加入,对指定域名做请求弱网 if (oSession.HostnameIs("api.example.com")) { oSession["request-trickle-delay"] = "300"; // 每 KB 请求延迟 300ms } // 在 OnBeforeResponse 中加入,对响应方向做限速 if (oSession.HostnameIs("api.example.com")) { oSession["response-trickle-delay"] = "200"; // 每 KB 响应延迟 200ms }这段代码的关键不是 API 名称,而是trickle-delay的计费单位:它按每 KB 数据延迟指定毫秒数,不是直接说“延迟 300ms”。一个 2KB 的小接口请求延迟不到 1 秒,但一个 1MB 的文件下载会被拉长到好几分钟。所以设置值时要先估算报文大小,而不是拍脑袋填几百。
| 参数名 | 生效方向 | 典型取值 | 适合验证 |
|---|---|---|---|
request-trickle-delay | 上行,每 KB 增加 N ms | 200–500 | 上传文件、提交大表单 |
response-trickle-delay | 下行,每 KB 增加 N ms | 200–500 | 图片、列表接口、视频流 |
需要模拟丢包和抖动时,Fiddler 自带功能就不够了。常见做法是配合网络层的丢包工具一起用,在 Fiddler 里控制带宽、在外层控制丢包率,两者叠加才能还原地铁、电梯等真实场景。
4.2 过滤框在哪:筛选器标签页的 3 个关键选项
“过滤框”是一个口语化说法,官方中文菜单里它叫“筛选器”,位置在抓包会话列表右侧的 Filters 标签页。找不到的人基本都是因为把注意力放在工具栏上,忽略了右侧竖排标签。
筛选器至少必须会用这三个选项:
- “使用过滤器”总开关,不勾选后面全部白设。
- Host 过滤,选“只显示以下主机”,填入
*.example.com,可以清掉视频、统计、日志域名刷屏的问题。 - 协议/内容类型过滤,只勾选 HTTPS,或填写
Content-Type: application/json,让列表里只留下有分析价值的请求。
需要注意,筛选器只影响显示,不影响抓取。接口已经请求完了,想回头找出之前被隐藏的域名,关掉筛选器后会话还在。
4.3 QuickExec:临时过滤比筛选器更快
临时看一眼某个请求,不值得打开筛选器面板。Fiddler 底部有一条 QuickExec 命令行,直接输入关键字回车即可过滤:
?token= =404 host:api.example.com @www.example.com其中?token=表示列出 URL 中包含token=的会话,=404列出所有状态码为 404 的响应,host:和@都按主机名过滤,区别是@精确匹配、host:支持子域名。这组命令在中文版里同样生效,菜单翻译不影响底部命令行为。
提示:QuickExec 的过滤是瞬时的,不会清空其他会话;想要持久保留过滤条件,仍然要在筛选器面板里配置。两者配合使用,效率比只用一个高很多。
5. Fiddler 卸载后上不了网的恢复,和一条 CustomRules 技巧
Fiddler 卸载后上不了网,是代理残留问题里最经典的一种,搜索热度甚至超过抓包本身。
5.1 断网残留怎么清理
正常情况下 Fiddler 退出会自动把系统代理设回“无代理”。异常退出、卸载不干净或进程被杀,Windows 的 WinINET 代理设置会残留,指向一个已经不存在的 127.0.0.1:8888,浏览器访问任何网站都会先把请求发给空端口,然后超时。
恢复按下面顺序处理:
:: 1. 查看 WinHTTP 层是否被设置了代理 netsh winhttp show proxy :: 2. 存在代理时重置 WinHTTP netsh winhttp reset proxy :: 3. 查看系统代理注册表项当前值 reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable :: 4. 值为 1 时关闭系统代理 reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable /t REG_DWORD /d 0 /f上面命令里,netsh winhttp解决的是 Windows 服务和部分后台进程的代理问题,ProxyEnable注册表项才是浏览器直接读取的开关。两个都查一遍,比只重置一个更稳妥。如果第四步改完浏览器还在转圈,顺手清空同路径下的ProxyServer键,然后重启浏览器。
恢复联网后还建议做一件事:到certmgr.msc的“受信任的根证书颁发机构”下找到 FiddlerRoot 证书并删除。Fiddler 卸载程序不会自动清理它,证书留着,等于把所有走 HTTPS 的本机流量都向一把你已经丢失私钥的根证书汇报了信任状态,风险不值得留。
5.2 一条改响应的脚本,验证接口故障场景
最后留一个 CustomRules 的技巧:把指定接口的 302 响应改写成 404,用来验证前端是否正确处理了服务端异常。
// 在 FiddlerScript 的 OnBeforeResponse 中加入 if (oSession.fullUrl.Contains("/api/v1/logout") && oSession.responseCode === 302) { oSession.responseCode = 404; oSession.utilSetResponseBody("<html>redirect blocked</html>"); }保存后无需重启 Fiddler,脚本会在下一次响应到达时生效。验证点有两个:一是会话列表中该请求显示 404,二是前端页面不再跳转到登录页,而是进入错误分支。这个改法比手动构造响应更快,适合在弱网测试场景里顺手确认异常分支的健壮性。
本文还有配套的精品资源,点击获取