Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/avwo/whistle
HTTP, HTTP2, HTTPS, Websocket debugging proxy
https://github.com/avwo/whistle
charles debug fiddler hosts node nodejs proxy web weinre
Last synced: 3 days ago
JSON representation
HTTP, HTTP2, HTTPS, Websocket debugging proxy
- Host: GitHub
- URL: https://github.com/avwo/whistle
- Owner: avwo
- License: mit
- Created: 2015-03-13T05:42:01.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2024-12-02T13:20:38.000Z (10 days ago)
- Last Synced: 2024-12-03T22:34:10.452Z (8 days ago)
- Topics: charles, debug, fiddler, hosts, node, nodejs, proxy, web, weinre
- Language: JavaScript
- Homepage: https://wproxy.org/
- Size: 82.5 MB
- Stars: 14,437
- Watchers: 204
- Forks: 1,092
- Open Issues: 58
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
- awesome - avwo/whistle - HTTP, HTTP2, HTTPS, Websocket debugging proxy (JavaScript)
- awesomeLibrary - whistle
- awesome-ops - avwo/whistle - 03-13|2024-09-23 | 基于 Node 实现的跨平台本地抓包调试工具 | (抓包工具)
- awesome-github-star - whistle
- awesome-network-stuff - **6202**星
- awesome-hacking-lists - avwo/whistle - HTTP, HTTP2, HTTPS, Websocket debugging proxy (JavaScript)
- awesome - avwo/whistle - HTTP, HTTP2, HTTPS, Websocket debugging proxy (JavaScript)
- awesome - avwo/whistle - HTTP, HTTP2, HTTPS, Websocket debugging proxy (JavaScript)
README
# whistle
[![NPM version](https://img.shields.io/npm/v/whistle.svg?style=flat-square)](https://npmjs.org/package/whistle)
[![node version](https://img.shields.io/badge/node.js-%3E=_8-green.svg?style=flat-square)](http://nodejs.org/download/)
[![Test coverage](https://codecov.io/gh/avwo/whistle/branch/master/graph/badge.svg?style=flat-square)](https://codecov.io/gh/avwo/whistle)
[![npm download](https://img.shields.io/npm/dm/whistle.svg?style=flat-square)](https://npmjs.org/package/whistle)
[![NPM count](https://img.shields.io/npm/dt/whistle.svg?style=flat-square)](https://www.npmjs.com/package/whistle)
[![License](https://img.shields.io/aur/license/whistle?style=flat-square)](https://www.npmjs.com/package/whistle)**Mac 或 Windows 系统推荐使用客户端版本:https://github.com/avwo/whistle-client**
Whistle 是基于 Node 实现的跨平台抓包调试工具,其主要特点:
1. **完全跨平台**:支持 Mac、Windows 等桌面系统,且支持服务端等命令行系统
2. **功能强大(理论上可以对请求做任意修改)**:
* 支持作为 HTTP、HTTPS、SOCKS 代理及反向代理
* 支持抓包及修改 HTTP、HTTPS、HTTP2、WebSocket、TCP 请求
* 支持重放及构造 HTTP、HTTPS、HTTP2、WebSocket、TCP 请求
* 支持设置上游代理、PAC 脚本、Hosts、延迟(限速)请求响应等
* 支持查看远程页面的 console 日志及 DOM 节点
* 支持用 Node 开发插件扩展功能,也可以作为独立 npm 包引用
3. **操作简单**:
* 直接通过浏览器查看抓包、修改请求
* 所有修改操作都可以通过配置方式实现(类似系统 Hosts),并支持分组管理
* 项目可以自带代理规则配置并一键设置到本地 Whistle 代理,也可以通过定制插件简化操作# 一键安装
> 已安装 `brew` 的 PC,可以省略以下 1、2 步骤,直接通过以下方式一键安装:`brew install whistle && w2 start --init`1. 安装 Node(建议安装**最新的 LTS 版本**,如已安装忽略此步骤):https://nodejs.org/
2. 一键安装,在命令行执行以下命令:
``` sh
npm i -g whistle && w2 start --init
```
> 上述命令会先全局安装 Whistle 的 npm 包后,启动 Whistle 并设置系统全局代理,以及安装系统根证书,目前一键安装只支持 Mac & Windows 系统,其它系统按照下面 **手动安装** 的方式操作。
>
> 如果安装过程时报错 `Bad CPU type in executable`,在命令执行 `arch -x86_64 zsh` 再重新执行一键安装命令。
3. 一键安装过程中注意事项:
* Mac 需要两次输入开机密码或指纹验证
* Windows 需要最后点击 “是(Y)” 确认
如果需要自定义代理配置或根证书(如设置其它代理,根证书或代理白名单等)可以通过以下命令实现:
1. `w2 proxy` 设置系统全局代理:https://wproxy.org/whistle/proxy.html
2. `w2 ca` 设置系统根证书:https://wproxy.org/whistle/proxy.html也可以用下面 **手动安装** 方式。
### 手动安装
非 Mac & Windows 系统或一键安装失败可以按下面方式设置代理和安装根证书:1. 设置代理:https://wproxy.org/whistle/install.html
2. 安装根证书:https://wproxy.org/whistle/webui/https.html# 快速上手
安装成功后,用 Chrome 打开链接 http://local.whistlejs.com 即可看到 Whistle 的抓包配置界面:### 详细用法参见:[Whistle 帮助文档](https://wproxy.org/whistle/quickstart.html)
# 通过 SwitchyOmega 设置代理
### 安装 SwitchyOmega
打开 Chrome 扩展商店进行安装 https://chrome.google.com/webstore/detail/proxy-switchyomega/padekgcemlokbadohgkifijomclgjgif### 配置 SwitchyOmega
全局代理如果会影响到某些客户端的请求(客户端设置了 ssl pinning),也可以使用 Chrome 插件设置代理(只对 Chrome 生效):
> 可以通过 `w2 proxy off` 关闭全局代理1. 设置 Whistle 代理
2. 选择 Whistle 代理
# 安全设置
1. 通过启动参数给管理界面设置用户名密码:`w2 restart -n yourusername -w yourpassword`
2. 通过插件给经过代理的请求设置用户名密码:https://github.com/whistle-plugins/whistle.proxyauth# License
[MIT](./LICENSE)