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 用终端),执行以下全局安装命令:

npm install -g whistle

查看版本命令:

w2 --version

完成 Whistle 的安装,可以通过上述命令查看 Whistle 的版本,如果能查询到版本好出来证明安装成功。

2.3 启动 Whistle

安装完成后,我们可以通过命令行快速启动 Whistle 代理服务。

启动 Whistle 命令:

w2 start

 关闭  Whistle 命令:

关闭正在后台运行的 Whistle 代理服务,执行以下命令:

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 原生)

# 开启电脑全局系统代理
w2 proxy
# 关闭全局代理(用完必须关!否则全机上网依赖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  服务民命令:

w2 start

5.2 启动代理

方式 1:开启浏览器代理

(1)Omega 情景:选择我们上述刚刚新建的情景:Whistle-Proxy

(2)插件切换到此模式,仅浏览器走代理抓包

方式 2:开启电脑全局代理

开启电脑全局系统代理命令:

w2 proxy

5.3 抓包实操

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

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

5.4 关闭代理

完成抓包操作后,记得关闭代理。

方式 1:关闭开启浏览器代理

方式 2:关闭电脑全局代理

关闭电脑全局代理命令:

w2 proxy 0 

5.5 关闭 Whistle  服务

关闭 Whistle 服务命令:

w2 stop

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

pan_junbiao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值