Whistle 抓包工具的安装与使用

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 的安装及配置,请点击并浏览本博客文章:

《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
相关推荐
Cory.眼1 小时前
前端调用后端接口全流程实战
前端·调用接口
牛栓柱1 小时前
【后端实战】用 Supabase + React/TS 零成本构建高并发 Multi-Agent 服务
前端·数据库·人工智能·后端·react.js·前端框架
木斯佳1 小时前
前端八股文面经大全:百度-Agent部门-前端一面(2026-06-04)·面经深度解析
前端
shmily麻瓜小菜鸡1 小时前
Bootstrap 4 常用工具类速查表
前端·javascript·bootstrap
CDN3601 小时前
【架构进阶】告别配置漂移!用 NodeNext + Workspace 打造优雅的 TypeScript Monorepo
前端·javascript·typescript
协享科技1 小时前
前端 SSE 流式响应处理实践:从接收、解析到渲染
前端·人工智能·程序人生·go·ai编程·sse
超人不会飞_Jay1 小时前
6.2前端笔记
前端·javascript·笔记
鹏大师运维1 小时前
统信UOS安装Subtitle Edit并使用Edge-TTS生成AI语音教程
linux·前端·人工智能·edge·麒麟·统信uos·ai语音
程序员小羊!1 小时前
02CSS预备知识
前端·css3