Skip to content

使用插件

安装插件

  1. 点击左侧导航栏的 Plugins 标签页
  2. 点击顶部的 Install 按钮
  3. 在弹出窗口中输入插件名称(支持同时安装多个插件):
    • 多个插件用空格或换行符分隔
    • 可指定自定义 npm 镜像源:
      • 直接在插件名后添加 --registry=镜像地址
      • 或从下拉列表选择历史使用过的镜像源
install plugins

文本框中的冗余文本不会影响结果,Whistle 会自动过滤文本框中的冗余文本,仅提取插件名称及 registry 安装信息

安装成功后,稍等片刻即可在插件列表中查看新安装的插件:

plugins

自定义协议

每个插件可注册两种协议类型,配置方式跟普通协议一样:

txt
# 长协议
pattern whistle.plugin-name://value [inludeFilter://pattern1 ... excludeFilter://pattern2 ...]
# 短协议
pattern plugin-name://value [inludeFilter://pattern1 ... excludeFilter://pattern2 ...]

Hooks 功能

Whistle 将匹配插件规则的请求与插件对应 Hook 进行交互,可实现以下功能:

插件协议的具体功能看各个插件的帮助文档,插件也可以选择隐藏这些协议

  1. 自动生成并下发 HTTPS 证书
  2. 对代理请求的认证控制,要求用户提供凭证才能访
  3. 实时获取请求头、响应状态码等元数据
  4. 对请求动态设置规则
  5. 将请求转发给插件,由插件完全控制请求处理流程(需要匹配短协议才能实现)

pipe 功能

有些请求/响应内容可能被加密或 protobuf 序列化无法看到明文,可通过以下两种方式实现内容查看与修改:

  1. 插件全权处理
    • 将请求直接转发至插件
    • 插件完全控制处理流程
    • 注意事项:
      • Whistle 内置规则将失效
      • 需插件自行实现所有处理逻辑
      • 如需在抓包界面显示解密内容,插件必须调用 Whistle API 回传数据
  2. 管道流式处理(推荐)
    • 通过 pipe 协议建立处理管道
    • 请求/响应流程:
      • 进入 Whistle 时:插件解密
      • 离开 Whistle 时:插件加密
    • 优势:
      • 保持明文请求特性
      • 完整支持 Whistle 内置规则
      • 抓包界面可直接查看明文

技术说明:

  • pipe 流功能为可选实现,各插件支持情况请查阅具体文档
  • 方案二处理后的请求完全等同于普通明文请求

操作界面

访问插件操作界面

在 Whistle 插件管理面板中,您可以通过以下任一方式访问插件功能:

  1. 点击插件条目右侧的 Option 按钮
  2. 在插件列表直接单击插件名称

界面特性

呈现形式: 模态对话框或独立标签页

核心能力:

  1. 提供可视化配置和管理功能
  2. 支持与 Whistle 核心的实时交互
  3. 显示插件运行状态、请求统计数据、日志信息等

技术说明

  1. 插件本质上是与 Whistle 直接交互的 HTTP Server
  2. 操作界面的具体功能由各插件自行实现
  3. 插件可选择不提供操作界面(仅提供后台服务或命令行操作

扩展 Whistle 界面

插件可通过以下方式增强 Whistle 的用户界面功能:

Network 扩展

  1. 抓包列表上下文菜单

    在抓包列表项右键菜单中添加自定义操作

  2. 主视图标签页

    在右侧主面板区创建一级功能标签页

  3. Inspectors 分析工具扩展

    在 Inspectors 面板下添加:

    • 二级功能标签页
    • 三级详细视图标签页
  4. Composer 请求构造器扩展

    在 Composer 工具区添加二级功能标签页

  5. Tools 工具集扩展

    在 Tools 功能区添加二级功能标签页

Rules 扩展

左侧列表上下文菜单

在左侧规则文件列表的右键菜单中添加功能项

Values 扩展

左侧列表上下文菜单

在左侧变量文件列表的右键菜单中添加功能项

实现说明:

  • 各插件可根据功能需求选择适当的扩展位置
  • 具体扩展功能和实现方式请参阅各插件的开发文档
  • 未使用的扩展点不会影响插件基础功能

插件内置规则

插件支持通过以下规则文件扩展系统功能:

  1. 全局规则 (rules.txt)
    • 自动加载时机: 插件初始化时
    • 作用范围: 全局请求
    • 优先级: 低于 Rules 界面配置的规则
    • 典型用途: 插件默认规则配置
  2. 私有规则 (_rules.txt)
    • 触发条件: 匹配插件自定义协议的请求
    • 生效阶段: 请求处理流程
    • 执行顺序: 在全局规则之后应用
    • 典型用途: 请求预处理/改写
  3. 响应阶段规则 (resRules.txt)
    • 触发条件: 匹配插件自定义协议的请求
    • 生效阶段: 响应处理流程
    • 执行顺序: 在全局规则之后应用
    • 典型用途: 响应后处理/改写

插件支持灵活的内置规则配置机制:

  • 可选性: 所有内置规则均为可选配置
  • 按需设置: 插件只需声明必要的规则
  • 规则查看: 通过插件管理界面的 Rules 按钮可查看当前插件配置的所有规则

注意:未配置规则的插件仍可正常使用其他功能

更新卸载插件

在 Whistle 插件管理界面中:

  • 更新插件: 点击插件条目右侧的 Update 按钮
  • 卸载插件: 点击插件条目右侧的 Uninstall 按钮