whistle 常见问题有哪些,如何排查和解决?
核心排查思路
Whistle 常见问题集中在四个环节:安装启动 → 代理连通 → HTTPS 证书 → 规则生效。逐层排查即可定位大多数问题。
安装启动失败怎么办
安装报 EACCES 权限错误,用 sudo npm i -g whistle 或改用 nvm 管理 Node 版本。启动报端口占用,先 w2 stop 再 w2 start,或用 -p 指定端口:w2 start -p 8080。启动成功但无法访问 127.0.0.1:8899,运行 w2 status 确认进程存活,再检查防火墙是否放行了对应端口。
手机连不上代理怎么排查
确保手机和电脑在同一 Wi-Fi 下,手机代理地址填电脑局域网 IP(不是 127.0.0.1),端口填 whistle 监听端口。电脑防火墙需允许该端口入站连接。仍不通时,用 curl -x http://电脑IP:端口 http://example.com 在另一设备验证代理是否可达。
HTTPS 抓包失败如何解决
这是最高频问题,分两步走:
- 启用 HTTPS 拦截:whistle 面板点击 HTTPS → 勾选 Capture HTTPS
- 安装根证书:浏览器访问
rootca.pro下载证书,安装到系统"受信任的根证书颁发机构"
iOS 额外步骤:安装描述文件后,还需在"设置 → 通用 → 关于本机 → 证书信任设置"中手动开启信任。Android 7+ 默认不信任用户证书,需 root 或配置 network_security_config。Firefox 使用独立证书库,需单独导入。
规则不生效怎么排查
按以下顺序检查:规则语法是否正确 → 是否被注释或被更靠前的规则覆盖 → 是否需要 w2 restart 重载 → 浏览器缓存是否干扰(用隐身模式验证)。在 Network 面板查看请求是否经 whistle 转发,未转发则代理配置有误。
性能问题如何优化
规则过多或正则过复杂会拖慢响应。精简规则、避免贪婪匹配,必要时 w2 restart 释放内存。日志积累过多时清空:Network → Tools → Server 清理即可。
追问:应用使用了 SSL Pinning 怎么办?— 用
域名 disable://capture跳过该域名的解密,或借助 Frida/Xposed 绕过证书校验。多实例共存?用不同端口和--dirname指定独立数据目录启动。