介绍一个web调试代理工具--whistle
发布于 4 个月前 作者 avwo 3208 次浏览 来自 分享

whistle是基于Node实现的跨平台web调试代理工具,可用于抓包、配置hosts、设置代理、修改请求响应、延迟请求响应、限制请求响应速度等等,集成了常用的调试移动端页面的方法,基本上覆盖了web请求的方方面面,一切都可以通过配置完成,且支持通过Node模块进行扩展。

whistle

具体功能参考Github: https://github.com/avwo/whistle

快速入门推荐看这篇文章:whistle工具全程入门

关于移动端调试可以参考这篇文章:利用whistle调试移动端页面

13 回复

能调试移动端,还是很赞的,目前一直在使用 weinre 调试非chrome浏览器

@DevinXian 嗯,移动端调试只是whistle的一小部分功能,whistle主要用来做web代理调试,本地替换、请求替换、修改请求响应内容、请求方法、响应状态码、请求响应头等等,基本上涵盖了web代理工具可以做的事情

Node v7.10开始做了什么大变更没,大家有没有遇到过类似问题,whistle/issues#60

@avwo 上述问题已经解决,可以使用各版本的Node(建议Node >= v6),更新Node到最新版本(>= v1.5.5)即可

顶起来 在给个更好的工具 -》fiddler 更适合在win下面做这个事

貌似会影响翻墙.

@ppgs8903 Fiddler很不错,以前我也一直在用,主要用到三个功能:抓包、断点修改及本地替换(目录匹配支持不是很好);

whistle的功能会更丰富些,且一切操作都可以通过配置实现,支持多种匹配方式多种规则、配置分组、及内置了移动端调试的一些常用方法,基本上常用的调试调试方法whistle都具备,也可以通过Node模块扩展功能,实现跟自己业务相关的规则;还有whistle是跨平台的,Mac、Windows、Linux的桌面版或服务器版都可以使用;

你可以自己使用后尝试作下对比,有问题或建议欢迎提issue

@winky 如果你用的是shadowsocks代理,而已通过配置socks把指定请求转发到你的socks代理,如 /google\.com|facebook\.com/ socks://127.0.0.1:1080 (如果有用户名及密码: /google\.com|facebook\.com/ socks://name:pass@127.0.0.1:1080);如果是普通的http代理,也使用proxy把指定请求转发到http代理

怎么抓https请求的包?

@Kinka 需要安装whistle的根证书及开启HTTPS拦截:

  1. PC或移动端配置whistle的代理
  2. 配置好代理后
    • PC可以直接访问whistle的配置界面http://local.wproxy.org,打开上面的 Https 菜单,点击二维码下载
    • 移动端一般需要用系统自带的浏览器才能安装,如果可以扫二维码,直接扫二维码即可,否则可以通过在浏览器上输入地址rootca.pro下载安装根证书

安装好根证书后开启HTTPS拦截(注意:iOS安装根证书时,不能先开启拦截,否则无法安装,且iOS安装完后需要手动设置启用根证书)。

更多内容参考: 帮助文档

对一些特殊请求想忽略掉指定规则,比如本地文件替换时,一些获取后台数据的ajax请求不想走本地文件,怎么配置?

@zhaopeifei 本地替换可以把file或者tpl分别改成xfilextpl,这样的如果本地没有匹配请求的文件会自动请求线上资源。更通用的解决方式是采用ignore协议,可以忽略指定协议,要忽略哪个就设置相应的协议名称,多个协议用 | 分割,如 pattern ignore://file|xfile|http|https|ws|wss|host (host表示设置的服务器IP)。

回到顶部