Whistle代理调试技巧

1,067 阅读3分钟

whistle是什么?

抓包工具,读音[ˈwɪsəl],基于node实现的开源免费的跨平台web代理调试工具,可以在PC端抓包也可以在移动端抓包。

抓包工具可以做些什么?

主要用于查看、修改HTTP、HTTPS、Websocket的请求、响应。

为什么推荐使用whistle?

虽然所有的抓包工具功能都是大同小异,但是,whistle是免费的、轻量级的、开源的,并且入门简单,最重要的是它可以定制化功能(可以自主开发插件)

whistle的基本功能

whistle具体功能图

  • 查看 HTTP、HTTPS、HTTP2、WebSocket、TCP 请求响应数据

  • 修改 HTTP、HTTPS、HTTP2、WebSocket、TCP 请求响应数据

    • 修改请求 url、方法、头部、内容等
    • 修改响应状态码、头部、内容,并支持本地替换等
    • 修改 WebSocket 和 TCP 收发的帧数据
  • 设置 hosts(支持 IPv6)、http-proxy、https-proxy、socks

  • 作为HTTP代理或反向代理

  • 集成常用的 web 调试工具,如 weinre 和 log 等

  • 支持用 Node 编写插件扩展

whistle代理调试步骤

  1. 安装whistle

// 检查 node 版本,>v0.10.0即可

node -v


// 安装 whistle,也可以用淘宝镜像--registry=https://registry.npm.taobao.org

sudo npm install -g whistle


// 查看 whistle 是否安装成功,如果能正常输出whistle的帮助信息,表示whistle已安装成功

w2 help

image.png

  1. 启动whistle

最新版本的whistle支持三种等价的命令whistlew2wproxy

// 启动 whistle

w2 start


// 重启 whistle

w2 restart


// 停止 whistle

w2 stop

Tip:为了保证自己的配置页面的安全性,可以在启动时加上登录用户名和密码

w2 start -n <yourusername> -w <yourpassword>
  1. 配置代理

  • PC端配置代理

安装Chrome代理插件,推荐安装 SwitchyOmega

image.png

  • 移动端配置代理

设置中配置当前Wi-Fi的代理,以 iOS 为例:

image.png

  1. 查看HTTP请求、响应

image.png

  1. 修改HTTP请求、响应

  • 修改HTTP请求

Componse用来重发请求、构造请求,可以自定义请求的url、请求方法、请求头、请求内容

image.png

  • 修改HTTP响应

Rules用来自定义响应的内容。自定义接口响应内容规范可查看Rules

1. 在 Rules 自定义接口返回的内容

image.png

2. 在 Network 选中要修改响应内容的接口,在右下角的 Rules 填写刚刚配置的规则

image.png

3. 点击 Replay 重新发起请求,可看到自定义的响应内容

image.png

  1. 其他

  • 查看和修改HTTPS、HTTP2、WebSocket、TCP的请求和响应数据,和HTTP的一样,只不过HTTPS的需要安装证书
  • whistle更多界面功能可查看界面功能

whistle使用注意事项

  1. 抓取HTTPS的包,务必安装证书,PC端和手机端都需要安装。手机端记得在“设置”里面手动开启“信任证书”
  2. 在chrome上使用插件SwitchyOmega开启whistle代理,可以在“不代理的地址列表”配置不经过代理连接的主机,不然所有在chrome访问的地址都会被代理

image.png

抓包工具有哪些?

市面上常见的抓包工具有很多,每个抓包工具都有自己最佳的使用场景

whistle入门简单,功能强大,开源免费,轻量级,并且可以自己写插件完成更多的定制化功能

收费的,不过功能强大,也有破解版

收费的,通过断点方式查看、修改请求响应数据,之前大多是在windows系统的电脑使用,不过去年出了mac版本之后,mac系统的电脑也可以使用了

上手稍难,以连接为单位抓取数据(一个连接可以有多个http请求)

是个dump工具,一般用于在路由器上记录数据包,也可以查看流量信息等

  • ...

参考文档

揭秘更多whistle用法,可阅读以下文档👇