whistle README

The project's README from github.com/avwo/whistle. As one markdown file: README.md.

whistle logo

whistle

NPM version node version npm download NPM count License

中文 · English

Whistle(发音 /ˈwisəl/)是基于 Node.js 的跨平台网络抓包与调试工具,特点如下:

  1. 功能强大
    • 支持 HTTP、HTTPS、HTTP/2、WebSocket、TCP 的抓包与修改请求/响应
    • 支持 HTTP、HTTPS、Socks、反向代理等多种代理模式
    • 内置常用调试工具:Weinre(远程 DOM 检查)、Console(查看 console 日志)、Composer(请求重放与编辑)等
  2. 操作简单
    • 通过规则配置即可修改请求/响应
    • 提供一站式管理界面:抓包、规则、插件、Weinre/Console/Composer 等集中管理
  3. 可扩展
    • 支持插件扩展规则与界面功能
    • 可作为 NPM 模块在项目中引用
  4. 跨平台
    • 支持 macOS、Windows、Linux(Ubuntu / Fedora)等桌面系统
    • 支持无界面 Linux 服务器环境

安装(推荐)

桌面用户(macOS/Windows/Linux)推荐使用 Whistle 客户端:https://github.com/avwo/whistle-client

客户端可以免去大部分手动安装与配置步骤

无界面 Linux / 服务器 安装(命令行)

按以下 4 步在无界面服务器上快速部署:

  1. 安装 Whistle(推荐使用 npm)
    • 需要先安装 Node.js:https://nodejs.org/
    • 安装命令:npm i -g whistle

      也支持 Homebrew:brew install whistle

  2. 启动 Whistle
    • 命令:w2 start
  3. 安装根证书(用于 HTTPS 抓包)
    • 命令:w2 ca
    • 安装过程中可能需手动确认:
      • Windows:最后选择 “是 (Y)” 确认
      • macOS:可能需要输入开机密码或 Touch ID 验证
  4. 设置代理
    • 命令:w2 proxy
    • 设置指定 IP: w2 proxy "10.x.x.x:8888"
    • 关闭系统代理: w2 proxy 0

其它代理方式:

快速上手

详细使用指南与示例请查看官方文档:https://wproxy.org/docs/getting-started.html

常见命令速查

License

MIT(详见 LICENSE 文件)

whistle (avwo/whistle)

Searching Database…

15.7K ·GitHub
这是做什么用的?Whistle 是一个基于 Node.js 的跨平台网页调试代理——它能捕获并让你修改 HTTP、HTTPS、HTTP/2、WebSocket 和 TCP 流量,定位和 Charles、Fiddler 类似(这两者都在它的 GitHub 话题里)。
它是桌面应用,还是要在终端里运行的工具?两者都是:在 macOS、Windows 和 Linux 桌面上有一个 Whistle 客户端,能省去大部分手动配置;服务器端则用 w2 命令来操作——不管哪种方式,抓包、规则和插件都在同一个内置界面里管理。
我怎么把它跑起来?四步:npm i -g whistle(或 brew install whistle),用 w2 start 启动,用 w2 ca 安装 HTTPS 根证书,再用 w2 proxy 把流量指向它(w2 proxy 0 会关闭系统代理)。桌面用户用 Whistle 客户端可以跳过其中大部分步骤。
运行之前需要预先装点什么吗?需要 Node.js——whistle 是以 npm 包的形式发布的,它的包配置要求 Node 14 或更新版本。在 macOS 上也可以用 Homebrew 来安装。
配置起来最麻烦的是哪一步?HTTPS 抓包:必须安装 whistle 的根证书(w2 ca),而且系统会手动引导你完成——Windows 上要选“是”,macOS 可能会要求输入登录密码或使用触控 ID。
它能在哪些系统上运行?macOS、Windows 和 Linux 桌面系统,其中明确点名支持 Ubuntu 和 Fedora;它并不绑定任何单一操作系统。
它能跑在没有图形界面的服务器上吗,还是必须要桌面环境?可以——无头(headless)Linux 服务器环境是明确支持的;上面说的命令行安装方式正是为没有图形界面的机器设计的。
除了被动抓包,它还能做什么?能做的很多:你可以通过规则配置改写请求和响应,用内置的 Composer 重发和编辑请求,用 Weinre 查看远程页面的 DOM,还能查看页面的控制台输出——全部都在同一个界面里完成。
如果我设不了系统代理,或者不想设,怎么办?Whistle 还能作为 HTTP、HTTPS、Socks 或反向代理运行。README 推荐用 Chrome 扩展 ZeroOmega 在不同浏览器间切换代理,对于自身没有代理设置的应用,则推荐用 Proxifier。
我能扩展它,或者把它嵌到我自己的项目里吗?可以——插件既能扩展规则也能扩展界面,而且 whistle 也可以作为 NPM 模块引入到项目里使用。
Creator
avwo
Size
101.4 MB
Stars
15.7K
Updated
CommitOct 11
Age
11y
Commits · 90 Days