介绍whistle(读音[ˈwɪsəl],拼音[wēisǒu])基于Node实现的跨平台web调试代理工具,类似的工具有Windows平台上的Fiddler,主要用于查看、修改HTTP、HTTPS、Websocket的请求、响应,也可以作为HTTP代理服务器使用,不同于Fiddler通过断点修改请求响应的方式,whistle采用的是类似配置系统hosts的方式,一切操作都可以通过配置实现,支持域名、路径、正则表达式、通配符、通配路径等多种匹配方式,且可以通过Node模块扩展功能:Github打开Github后键入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 编写插件扩展如若图片不清晰可以到Github上或者文档中查看whistle基本上覆盖了所有抓包调试代理可以实现的功能,且所有操作都可以通过类似配置hosts的方式实现。传统hosts的配置方式:# 普通模式
127.0.0.1 xxx.xxx.xxx
# 组合模式
127.0.0.1 xxx.xxx.xxx xxx.xxx.qqq aaa.bbb.ccc
传统hosts配置方式为 ip pattern … patternN,其中pattern只能为域名,ip为纯ip不能带端口whistle的配置方式不仅兼容上述传统hosts的配置方式,也支持丰富的匹配模式及操作功能,具体如下:# 默认模式
pattern operatorURI
# 组合模式
pattern operatorURI operatorURI2 operatorURIN
# 如果pattern和operatorURI不同时为普通url,两种位置可以调换
operatorURI pattern
# 组合模式
operatorURI pattern pattern2 patternN
其中:1、pattern 为匹配请求url的表达式,可以为:域名,路径,正则及通配符等等多种匹配方式,具体内容参见:匹配模式2、operatorURI 为对应的操作,由操作协议+操作值组成:operatorURI = opProtocol://opValue opProtocol(操作协议) 对应某类操作,具体内容参见:协议列表opValue(操作值) 对应具体操作的参数值3、pattern 和 operatorURI 不同时为普通url时位置可以调换,且支持组合模式安装启动whistle安装过程需要以下步骤(缺一不可):安装Node安装whistle启动whistle配置代理安装根证书上述步骤的详细操作分别参见如下文档:安装启动whistle安装whistle根证书安装成功后,可以通过如下命令查看whistle的所有命令行操作:w2 –help启动、停止、重启whistle的命令行命令如下:w2 start
w2 stop
w2 restart更新whistle只需重新安装下whistle即可如何使用可以查看Github上的文档或者官方Gitbook的文档总结相比一些收费的代理调试工具,whistle具备开源免费的优点,enjoy it!