1、Whistle 的简介
Whistle 是一款基于 Node.js 实现的跨平台 Web 调试代理抓包工具,由原腾讯前端高级工程师吴文斌(GitHub:avwo/avenwu)任职腾讯期间结合前端业务调试需求自研并开源发布。支持 HTTP/HTTPS/HTTP2/WebSocket/TCP 全协议抓包、请求转发、接口 Mock、请求头 / 响应体篡改、域名重定向、弱网模拟等能力;依靠规则配置实现流量拦截与 Mock 调试,免费开源、插件可扩展,是前后端与移动端主流调试利器。Whistle 实现全平台兼容 Windows、macOS、Linux,同时适配无界面服务器与 Docker 容器环境。类似的工具还有 Fiddler、Charles 等。
官方网址: Whistle 官方网站
官方文档: Whistle 官方文档
视频教程: Whistle 代理工具基本使用
2、Whistle 的安装
Whistle 提供基于 npm 命令行安装(全平台通用,服务器首选)与桌面客户端安装(Windows/macOS 可视化,新手首选) 两种安装方式,依赖 Node.js 运行环境。
2.1 Node.js 和 npm 的安装及配置
Whistle 基于 Node.js 开发,采用 JavaScript 编写,因此使用命令行版本前需提前部署 Node.js 与配套的 npm 工具。 其中 Node.js 是依托 Chrome V8 引擎构建的 JavaScript 运行环境;npm(Node Package Manager)则是 Node.js 生态配套的包管理分发工具,用于快速安装、升级各类 Node 程序。
关于详细的 Node.js 和 npm 的安装及配置,请点击并浏览本博客文章:
2.2 安装 Whistle
使用 npm 官方包管理器进行全局安装,这种方式全平台通用,支持 Windows、macOS、Linux 及服务器环境,是最稳定、最常用的安装方式。
安装命令:
打开终端(Windows 用 CMD / PowerShell,macOS/Linux 用终端),执行以下全局安装命令:
bash
npm install -g whistle
查看版本命令:
bash
w2 --version
完成 Whistle 的安装,可以通过上述命令查看 Whistle 的版本,如果能查询到版本好出来证明安装成功。
2.3 启动 Whistle
安装完成后,我们可以通过命令行快速启动 Whistle 代理服务。
启动 Whistle 命令:
bash
w2 start
关闭 Whistle 命令:
关闭正在后台运行的 Whistle 代理服务,执行以下命令:
bash
w2 stop
2.4 浏览 Whistle 管理面板
Whistle 默认代理地址:127.0.0.1,端口:8899
在浏览器地址栏中输入: http://127.0.0.1:8899/
进入 Whistle 的管理面板页面,如下图:

2.5 安装 HTTPS 根证书
Whistle 解密 HTTPS 依靠根证书(RootCA),作用是抓取 HTTPS、WebSocket 接口,消除浏览器「连接不安全」警告。
(1)下载证书

(2)安装证书

(3)存储位置

(4)选择证书存储

(5)完成证书的安装

3、配置网络代理
设备所有网络流量必须先走 Whistle 代理服务,Whistle 才能拦截、解析、修改请求,如果不配代理流量绕开它,就抓不到任何包。
3.1 安装 Proxy SwitchyOmega 插件
浏览器安装 Proxy SwitchyOmega 插件,Proxy SwitchyOmega 是 Chrome 和 Firefox 浏览器上的代理扩展程序,可以轻松快捷的管理和切换多个代理设置,支持HTTP、HTTPS、SOCKS4、SOCKS5等多种代理协议。
(1)访问 Chrome 应用商店
Chrome 浏览器 → 右上角三个点图片 → 扩展程序 → 访问 Chrome 应用商店

(2)搜索与安装插件

3.2 配置 Proxy SwitchyOmega 插件
(1)固定插件
Chrome 浏览器 → 右上角【扩展程序】图标 → 固定插件

(2)进入管理页面

(3)新建情景模式

(4)输入情景模式名称

(5)设置代理地址和端口

(6)开启代理模式

3.3 全局网络代理
Whistle 电脑全局系统代理两种配置方式(全局 = 电脑所有软件:浏览器、客户端、小程序全部走 Whistle 抓包)
方式一:命令行一键配置(推荐,Whistle 原生)
bash
# 开启电脑全局系统代理
w2 proxy
bash
# 关闭全局代理(用完必须关!否则全机上网依赖Whistle)
w2 proxy 0
方式二:Windows 图形手动配置
新版 Win10/Win11 路径
设置 → 网络和 Internet → 代理

下滑【手动代理设置】→ 打开使用代理服务器 → 编辑

地址:127.0.0.1,端口:8899
勾选「不要将代理用于本地 (Intranet) 地址」→ 保存Microsoft Support

全局代理优缺点
**优点:**微信、桌面客户端、IDE、所有软件流量全被 Whistle 捕获,不用逐个配置 SwitchyOmega
**缺点:**关掉 Whistle 没取消代理 → 全电脑无法上网,务必用完 w2 proxy 0 关闭
4、Whistle 的常用命令
| 命令 | 说明 |
|---|---|
| w2 start | 启动 Whistle 服务。 |
| w2 proxy 8900 | 如果端口冲突时,可以指定端口开启全局代理。 |
| w2 stop | 关闭 Whistle 服务。 |
| w2 restart | 重启 Whistle 服务。 |
| w2 status | 查看 Whistle 运行状态。 |
| 全局代理开关 | |
| w2 proxy | 开启电脑全局系统代理 |
| w2 proxy 0 | 关闭全局代理(用完必执行,不然断网) |
| w2 proxy 8900 | 指定端口开启全局代理 |
| 证书管理 | |
| w2 ca | 导出/安装根证书 |
| w2 ca clean | 清空旧证书,重新生成 |
| 插件安装卸载 | |
| w2 install whistle.weinre | 安装插件 |
| w2 uninstall whistle.weinre | 卸载插件 |
| 辅助查询 | |
| w2 --version | 查看 whistle 版本 |
| w2 -V | 查看 whistle 版本 |
| w2 -h | 全量帮助 |
5、Whistle 完整抓包实操
Whistle 工具支持 HTTP/HTTPS/SOCKS 反向代理,可拦截修改主流网络协议流量,内置 Weinre 等调试工具。抓取 HTTP/HTTPS 请求报文,查看请求与响应数据,排查接口 bug、本地联调、mock 数据、模拟异常环境。
5.1 启动 Whistle 服务
开启 CMD 命令控制,输入启动 Whistle 服务民命令:
bash
w2 start
5.2 启动代理
方式 1:开启浏览器代理
(1)Omega 情景:选择我们上述刚刚新建的情景:Whistle-Proxy
(2)插件切换到此模式,仅浏览器走代理抓包

方式 2:开启电脑全局代理
开启电脑全局系统代理命令:
bash
w2 proxy
5.3 抓包实操
(1)抓取接口信息并导出 .har 类型的文件

(2)抓取接口信息并导出 .curl 类型的文件

5.4 关闭代理
完成抓包操作后,记得关闭代理。
方式 1:关闭开启浏览器代理

方式 2:关闭电脑全局代理
关闭电脑全局代理命令:
bash
w2 proxy 0
5.5 关闭 Whistle 服务
关闭 Whistle 服务命令:
bash
w2 stop