目录
介绍
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.q 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!