whistle抓包

whistle 抓包

whistle支持抓包,mock数据,支持移动端抓包,且安卓7+版本抓包不需要root
但相对于 charlesfiddler抓包工具,
whistle依赖于node环境运行,
需要额外安装node环境,可以通过脚本弥补启用步骤。

运行环境

  • window10
  • node v14.17.0
  • 安卓12(抓包环境)
  • 无root

一、安装node环境

node官网下载地址
建议选择安装稳定版本(LTS)
whistle抓包_第1张图片
下载完成,验证安装是否成功

node -v

命令输入,显示版本号即可

二、安装whistle

// 更换淘宝镜像源提高下载速度
npm config set registry https://registry.npm.taobao.org
// 安装
npm install -g whistle
// 验证安装,显示版本即安装成功
whistle version

三、启动whistle服务

// 指定port 9800 启动服务
w2 start -p 9800

浏览器访问以下任意地址进入whistle控制面板
whistle抓包_第2张图片

四、开启代理proxy

两种方式:

  • 全局设置
  • 浏览器插件代理设置(推荐)

关闭whistle服务时,要关闭proxy,否则浏览器无法正常链接网络

方式一:全局设置proxy

终端输入

w2 proxy  

方式二:插件开启代理,不影响全局(推荐)

安装代理插件SwitchyOmega(谷歌浏览器)

  1. 极简插件 SwitchyOmega 下载地址

  2. 将下载的文件解压,crx文件,添加到谷歌浏览器扩展程序
    whistle抓包_第3张图片

  3. 配置proxy,配置的端口号和开启的服务端口号保持一致
    whistle抓包_第4张图片

  4. 配置成功后,从浏览器中可以看到插件
    whistle抓包_第5张图片

  5. 点击后,选择刚刚配置的proxy(关闭whilstle服务后,要切换回直连模式)
    whistle抓包_第6张图片

五、安装证书(抓包https协议需要

浏览器访问启动whilstle服务地址,进入whistle控制面板
whistle抓包_第7张图片

  • 选择.pem格式(移动端环境,.crt是Windows环境,.cer是Linux环境)
  • 允许代理渠道连接抓包,勾选
  • 手机浏览器扫码安装证书手机(无需root)
  • 扫码下载不了,可以PC端点击二维码,下载后拷贝到手机

六、手机连接wifi添加局域网代理

  1. 命令行ipconfig查询,电脑连接局域网ip
    whistle抓包_第8张图片
  2. 手机配置代理地址和端口(端口与proxy配置的端口保持一致)
    whistle抓包_第9张图片

七、whilstle面板使用

完成上述配置即可实现抓包了(抓包数据代理会导致一定的延迟)。打开控制面板的Network,查看抓包信息
whistle抓包_第10张图片

八、过滤规则文档

过滤规则文档

whistle抓包_第11张图片

九、快捷打开关闭whistle

如果每次启动要唤起命令行太麻烦,可配置命令脚本快捷打开
whistle抓包_第12张图片

  1. 新建txt文档
  2. 输入命令脚本
  3. 把文件后缀名改写成.bat
  4. 下次启用双击打开运行,并打开proxy,最后就可以在控制面板抓包了
  5. 关闭服务后,一定要记得同时切换回直连模式,否则会无法联网

whilstle_start_9800.bat内容如下:

% 开启9800端口的whistle服务%
whistle start -p 9800

whilstle_stop.bat内容如下:

% 关闭whistle服务%
whistle stop

其他命令

// 全局打开proxy
w2 proxy
// 重启whistle
w2 restart -p 端口号
// ...更多查看官网 或 whistle -h

十、常见实际应用场景

1. 调试移动端

移动端嵌入调试窗口

npm install whistle.inspect -g
or 
w2 i whistle.inspect

Rules添加规则,配置后刷新页面,右下角出现

# 页面中插入 eruda
https://www.baidu.com/ whistle.inspect://eruda # 或 whistle.inspect://e

# 页面中插入 vConsole
https://www.baidu.com/ whistle.inspect://vconsole # 或 whistle.inspect://v

# 页面中插入 mdebug
https://www.baidu.com/ whistle.inspect://mdebug # 或 whistle.inspect://m

2. mock数据

在Values创建一个mock.json 数据,然后在Rules添加如下规则

接口地址  {mock.json}
or
接口地址 file://本地json路径

处理跨域代理

 www.ifeng.com www.aliexpress.com

弱网调试

pattern resDelay://timeMS
例
www.ifeng.com resDelay://3000

whilstle文档

  • 官方文档

你可能感兴趣的:(抓包,前端,测试工具)