Whistle 笔记

安装 Whistle

  1. 如果没有安装 Node.js 先安装, 访问官网下载安装包: https://nodejs.org/
    1. 不确定是否安装,可用终端或cmd检查: node -v
  2. 使用 npm 安装 Whistle
    1. npm install -g whistle
  3. 确认安装结果
    1. 输入命令,如果有返回结果意味着安装成功 `w2 help’

官方文档:http://wproxy.org/whistle/

启动 whistle

w2 start

最新版本支持三种等价命令 w2whistlewproxy

whistle重启、停止、调试模式命令

重启whistle

w2 restart

停止whistle

w2 stop

whistle调试模式

w2 run

MacOS、Windows、iOS、Android使用whistle抓包监测

  • 手动配置代理,IP 和 端口在启动 whistle 命令后可以看到(第二个,不是 127.0.0.1 那个)
  • 如果手机遇到访问无网络,确认电脑是否可以正常操作,如果正常多试试(访问页面、开关wifi、重启whistle)或等一会。

HTTPS 加密协议使用whistle抓包监测

HTTPS、Websocket需要开启HTTPS拦截才可以正常抓包及使用所有匹配模式

在 whistle 控制台点击顶部“HTTPS”菜单

设备配置好代理

电脑:点击直接下载和安装证书

手机:扫描二维码或直接访问 http://rootca.pro (如果没有配置代理无法访问)

iOS 需要使用 Safari 访问,不然无法安装证书。下载好证书需要手动去设置安装,操作位置:设置——通用——VPN与设备管理——描述文件:whistle.**

解决iOS安装证书后whistle依旧提示证书错误未受信任

在 iOS 10.3 之后需要手动信任自定义根证书,设置位置:设置——关于本机——证书信任设置——whistle.**

whistle 升级更新

⚠️ 执行升级安装更新前请先停止 whistle 不然更新会报错。(停止命令 w2 stop

npm i -g whistle

如果更新失败,使用超级管理员再次尝试

sudo npm i -g whistle

访问配置页面

可通过多种方式访问

  1. 域名: http://local.whistlejs.com/
  2. IP+端口,如:http://127.0.0.1:8899 (如果修改了端口,访问时修改为对应端口)
  3. 通过命令 -P 6789 自定义端口: http://127.0.0.1:6789 (6789 为自定义,可自行配置)

whistle 配置 socks 代理抓取检测指定域名数据

配置入口

  • 启用 whistle 后,在界面左边点开规则配置按钮【Rules】,打开规则配置界面
  • 输入所需规则并保存,可通过 Ctrl(Command) + S 快捷键保存

配置方式和规则

  • pattern socks://ip:port
    • pattern 要处理的域名,可以用通配符或者正则
    • socks://ip:port,你的 socks 代理的IP和端口,具体以你 socks 软件提供的为准
      • socks://username:password@ip:port 加账号和密码的配置方式,username 替换你的用户名,password 替换你的密码
  • 注释方式:在一行以开头#可输入注释信息

全部域名都走 socks 代理

* socks://127.0.0.1:1080

指定域名走 socks 代理

play.google.com socks://127.0.0.1:1080

问题

  • socks IP 使用局域网IP(同 whistle 配置)会无效,建议如果socks在本机配置,直接使用 127.0.0.1

相关文档

更多使用指南

其他骚操作

防止他人访问 whistle 配置页面

在启动命令上加登录用户名和密码。

user为用户名,password为密码,请自行替换

w2 start -n user -w password

设置延迟响应 resDelay

  • 使用 resDelay 参数可以模拟弱网环境
  • 需要确保whistle是最新版本,配置方式:
    • timeMS: 参数单位为毫秒
    • 1000 毫秒(ms) = 1 秒(s)
pattern resDelay://timeMS

示例:

# baidu.com 全部子域包括www
*.baidu.com resDelay://3000

# 全部网站或请求
* resDelay://3000

设置响应速度 resSpeed

  • 使用 resSpeed 参数可以模拟弱网环境
  • 需要确保whistle是最新版本,配置方式:
    • kbs: 参数单位为每秒的响应速度为多少kb,比如每秒500k
pattern resSpeed://kbs

示例

# baidu.com 全部子域包括www,每秒3k
*.baidu.com resSpeed://3
# 全部网站或请求,每秒160k
* resSpeed://160

使用 resDelay 和 resSpeed 配置 App 弱网环境 Tunnel 报 captureError 错误如何处理?

  1. 配置 resDelay 和 resSpeed 后部分app无法访问网络,但是网页版可以正常访问
  2. 首先确认 https 是否正常,是否可以抓取 ssl 请求。(是否按照 whistle证书,安装后是否授权确认)
  3. 如果确认 https 正常还是有 captureError 报错,可以将对应域名设置 disable://capture ,设置解析次域名 https 请求
  4. 设置 disable://capture 后,使用 resDelay 和 resSpeed 后,部分域名请求没有起作用
  5. disable://capture 后增加 enable://inspect 参数,然后在对应请求:「点击右键」——「选择 Action」——「再选择 Abort」

示例,解决 Google Play 网页版可以访问 App 无法访问的问题

* socks://127.0.0.1:1080
* resSpeed://160
* resDelay://3500
disable://capture enable://inspect *.googleapis.com *.googleusercontent.com *.google.com *.gstatic.com *.gvt2.com *.apis.google.com *.googlevideo.com

运行过程中,也会报 captureError 的域名

*.appsflyersdk.com *.facebook.com *.isnssdk.com *.tiktokv.com *.jianguoyun.com *.volceapplog.com *.samsung.com.cn *.ytimg.com *.fbcdn.net *.rayjump.com *metrozone.newsroomlabs.com *.gos-gsp.io *.pddpic.com *.pinduoduo.com

whistle 相关 Github Issues: #961 #981 #865


回到顶部

Copyright © 2017-2024 1px.run 像素教程 Distributed by an MIT license.

Site updated at 2024-12-20 08:28