跳转到内容

付费模式免费开源

Whistle:在本机检查与模拟 HTTP 请求 ​

适合谁 ​

这里介绍的是 avwo/whistle 项目的 Whistle:基于 Node.js 的 HTTP、HTTPS、HTTP/2 和 WebSocket 代理抓包调试工具,官方文档位于 wproxy.org。它可以记录经过代理的请求、查看响应,并用规则将请求映射到测试内容。不是同名的其他产品,也不是日常上网必须安装的软件。官方项目

开发网页、排查自己应用的接口或测试异常响应时,它很有用。只看一个网页的加载请求,浏览器开发者工具通常更容易上手;需要跨应用代理或统一替换规则时,再考虑 Whistle。

获取与费用 ​

Whistle 及官方桌面客户端按 MIT 许可证开源发布。Mac 用户可以从 官方客户端仓库 的 Releases 下载,Apple 芯片选择 arm64,Intel 选择 x64,并核对该版本的系统要求。不要使用名字相同、来源不明的安装包。

本文选择桌面客户端。核查时客户端默认代理端口为 8888,命令行版本默认是 8899,两者不能直接混用。首次练习只让一条显式指定代理的 HTTP 请求经过它,不设置系统全局代理,也不安装或信任根证书。

第一次使用:生成一个本地响应 ​

练习会保存一条测试规则,并让 Whistle 监听本机端口;所有示例内容都是虚构文本。开始前确认没有其他程序占用 8888,不要覆盖自己的已有调试配置。

  1. 打开客户端,在 Whistle → Proxy Settings 中把 Bound Host 明确设为 127.0.0.1,确认 Proxy Port 为 8888。按界面要求使设置生效。

  2. 保持 Set As System Proxy 关闭,不选择 Install Root CA。在 Rules 新建单独的练习规则组,写入并启用:

    text
    http://mac-guide.test/hello file://(hello-whistle)
  3. 打开终端,只执行这一条请求:

    zsh
    curl --noproxy '' --proxy http://127.0.0.1:8888 http://mac-guide.test/hello
  4. 终端应显示 hello-whistle。切到 Whistle 的 Network,找到这条请求,核对方法、URL 与响应正文。

规则里的 .test 域名用于测试,响应由本地规则提供;file://(hello-whistle) 是内联内容,不会读取个人文件。--proxy 只给这次 curl 指定本地代理,--noproxy '' 避免现有代理绕过列表让测试请求跳过它。本地响应规则、界面入门

若连接被拒绝,先核对监听地址、端口与应用是否运行;若出现域名错误或其他内容,检查规则是否启用、网址是否完全对应。不要因此启用全局抓包或给系统增加证书信任。

HTTPS、隐私与退出 ​

HTTPS 解密通常涉及让设备信任代理根证书。这会改变设备对证书的信任关系,使经代理处理的受支持连接可能被解密查看;Cookie、登录凭据、聊天正文和工作数据都可能出现在抓包记录中。它应作为单独的进阶测试,在自己有权调试的环境中进行,不能把“信任根证书”当作普通新手安装步骤。

请求重放也不是无害的刷新:重放提交、购买或删除请求可能再次产生实际效果。分享抓包文件前要清除令牌、Cookie、个人资料与内部地址;插件同样需要评估来源和权限。

结束练习时停用本次规则组并退出 Whistle。因为没有修改系统代理,普通应用仍使用原来的网络配置。如果先前自行开启过代理或安装过证书,应按自己记录的原设置恢复,并仅移除明确属于此次调试的证书,不能批量清理系统证书。

练习与官方资料 ​

把响应文字改为 hello-again,重新发出同一请求,确认终端和 Network 中的结果一起变化。成功标准是能解释“请求只经过哪个代理”“响应来自哪里”“怎样结束练习”。继续学习前先读 官方安装说明 和 规则文档。