Skip to content

调试代理工具介绍 Whistle + SwitchyOmega

Whistle 调试代理工具

文档:https://wproxy.org/

NPM 包 Whistle 是基于 Node.js 的跨平台网络调试代理工具,能捕获分析多种网络流量,支持规则配置修改请求/响应,适用于调试、测试和接口模拟。

主要特性:

  • 多种代理模式:HTTP、HTTPS、Socks、反向代理。
  • 全面抓包:捕获 HTTP、HTTP/2、WebSocket、TCP 流量。
  • 灵活处理机制:通过 pattern operatorURI 规则匹配请求并重定向、替换或模拟
  • 内置调试工具:Weinre、日志、Composer等,便于远程调试和请求重发。
  • 插件扩展:支持新增协议、注入JS、模拟响应、调试移动端控制台。
  • 使用便捷:跨平台、简易安装、本地代理、HTTPS抓包、快速配置。

Whistle 规则系统

Whistle 的核心之一就是它的 Rules(规则)系统,它允许你通过「模式匹配 + 操作指令」的方式,灵活地拦截、修改、重定向、替换请求或响应,是整个调试代理系统的控制中心。

jsx
pattern operator

// 示例
www.example.com http://127.0.0.1:3000 // 把对 www.example.com 的请求转发到本地服务器
  • pattern(模式):匹配请求的目标,如 URL、域名、路径、文件扩展名等。
  • operator(操作):定义对匹配到的请求执行什么操作,比如转发、替换、修改 header、注入 JS 等。

Whistle 会从上到下、逐行匹配规则,只要命中就执行操作。

Proxy SwitchyOmega 3 - 浏览器代理插件

应用场景

首先,在使用插件之前,需要一个代理服务器,并且你已经通过某个代理客户端实现了科学上网,如科学上网客户端大全当中的一些客户端。

当我们把这些代理客户端的代理规则设置为全局模式时,访问国内网站会很慢,所以我们一般会把这些代理客户端的代理规则设置为绕过局域网和大陆,但当我们访问某些国外网站时,如访问职场社交网站 领英 Linkedin 则必须使用全局代理规则,频繁的手动切换代理模式十分麻烦。

这时候使用 SwitchyOmega 来配置代理,就显得十分方便了,在情景模式中把需要通过全局模式访问的网站配置好,当访问这些网站时,会自动切换成通过代理服务器访问,其余网站则不通过代理服务器来访问,免去手动切换代理模式的烦恼。

代理变化

不安装插件时,浏览器的代理取决于系统的默认代理,如某些代理客户端不支持自定义规则就显得十分不方便,安装插件后,浏览器的代理取决于插件的设置,不通过系统的默认代理。

安装插件之前:打开网站 > 发送访问请求 > 系统代理 > 代理客户端 > 代理服务器 > 目标网站

安装插件之后:打开网站 > 发送访问请求 > SwitchyOmega > 代理客户端 > 代理服务器 > 目标网站

  • 安装插件后,可根据插件的默认规则或插件的自定义规则带决定访问的网站是否使用代理以及使用哪个代

总结

我们可以通过 Whistle + Proxy SwitchyOmega 3 来实现在前端通过域名的形式来访问本地 localhost 启动的项目,模拟正式场景