开源免费:基于Node实现的跨平台web调试代理工具——whistle

介绍whistle(读音[?w?s?l] , 拼音[wēisǒu])基于Node实现的跨平台web调试代理工具 , 类似的工具有Windows平台上的Fiddler , 主要用于查看、修改HTTP、HTTPS、Websocket的请求、响应 , 也可以作为HTTP代理服务器使用 , 不同于Fiddler通过断点修改请求响应的方式 , whistle采用的是类似配置系统hosts的方式 , 一切操作都可以通过配置实现 , 支持域名、路径、正则表达式、通配符、通配路径等多种匹配方式 , 且可以通过Node模块扩展功能:
开源免费:基于Node实现的跨平台web调试代理工具——whistle文章插图
Github打开Github后键入whistle关键字 , 第一个项目便是
开源免费:基于Node实现的跨平台web调试代理工具——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 编写插件扩展

  • 开源免费:基于Node实现的跨平台web调试代理工具——whistle文章插图
    如若图片不清晰可以到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的配置方式 , 也支持丰富的匹配模式及操作功能 , 具体如下:
    【开源免费:基于Node实现的跨平台web调试代理工具——whistle】# 默认模式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安装过程需要以下步骤(缺一不可):
    1. 安装Node
    2. 安装whistle
    3. 启动whistle
    4. 配置代理
    5. 安装根证书
    上述步骤的详细操作分别参见如下文档:
    1. 安装启动whistle
    2. 安装whistle根证书
    安装成功后 , 可以通过如下命令查看whistle的所有命令行操作:
    w2 --help启动、停止、重启whistle的命令行命令如下:
    w2 startw2 stopw2 restart更新whistle只需重新安装下whistle即可
    如何使用可以查看Github上的文档或者官方Gitbook的文档
    总结相比一些收费的代理调试工具 , whistle具备开源免费的优点 , enjoy it!