赞
踩
whistle (读音[ˈwɪsəl],拼音[wēisǒu])
whistle是基于Node实现的跨平台web调试代理工具,主要用于查看、修改HTTP、HTTPS、Websocket的请求、响应,也可以作为HTTP代理服务器使用。
类似的工具有Windows平台上的Fiddler,不同于Fiddler通过断点修改请求响应的方式,whistle采用的是类似配置系统hosts的方式,一切操作都可以通过配置实现,支持域名、路径、正则表达式、通配符、通配路径等多种匹配方式,配置使用起来非常简单。
whistle的所有操作都可以通过类似如下配置方式实现:
pattern operatorURI
其中:
# 域名匹配 www.example.com # 带端口的域名 www.example.com:6666 # 带协议的域名,支持:http、https、ws、wss、tunnel http://www.example.com # 路径匹配,同样支持带协议、端口 www.example.com/test https:/www.exapmle.com/test https:/www.exapmle.com:6666/test # 正则匹配 /^https?://www\.example\.com\/test/(.*)/ referer://http://www.test.com/$1 # 通配符匹配 ^www.example.com/test/*** referer://http://www.test.com/$1
operatorURI = opProtocol://opValue):opProtocol(操作协议), 对应某类操作,如:
# 设置请求服务器IP--host
pattern host://opValue
# 本地替换--file协议
pattern file://opValue
opValue(操作值), 对应具体操作的参数值,如:
# 设置请求服务器IP--host协议
pattern host://127.0.0.1:6666 # 或 pattern 127.0.0.1:6666
# 本地替换--file协议
pattern file:///User/test/dirOrFile # 或 pattern /User/test/dirOrFile
pattern file://E:\test\dirOrFile # 或 pattern E:\test\dirOrFile
我是在Windows上安装的,所以有些命令不适用于Mac和Linux哟
【戳官网地址】 (whistle支持v0.10.0以上版本的Node,为获取更好的性能,推荐安装最新版本的Node。)

下载以后直接下一步下一步安装完成即可
完成后确认是否安装成功:cmd 输入 node -v (检查是否显示版本号)

安装whistle
Node安装成功后,执行如下npm命令安装whistle
npm install -g whistle
(Mac 或 Linux 的非 root 用户需要在命令行前面加 sudo,如:sudo npm install -g whistle)

npm默认镜像是在国外,容易出现安装速度很慢或者出现安装不了的情况,比如这样各种超时ERROR……
如果无法安装或者安装很慢,可以使用taobao的镜像安装:
$ npm install cnpm -g --registry=https://registry.npm.taobao.org
$ cnpm install -g whistle
或者直接指定镜像安装:
$ npm install whistle -g --registry=https://registry.npm.taobao.org
忘记截图……如果看到finish或者success之类的肯定就是成功了呀~
启动whistle
默认端口是8899,如果端口被占用,可以在启动时通过 -p 来指定新的端口
我比较习惯在启动的时候自己来指定一个端口,可以和fiddler区分,例如我用的8081:(fiddler是8080~~)
指定端口启动:w2 start -p 8081
不用的时候停止:w2 stop

配置浏览器
启动以后就可以在自己的浏览器上访问到whistle的界面啦~
http://127.0.0.1:8889 打开浏览器确认服务开启成功
四不四很清爽~~

启动完whistle后,再配置代理就可以使用啦。
配置whistle
https抓包勾选上 Capture TUNNEL CONNECTs 否则无法抓取到HTTPS的数据包
如果不需要测试http2,或遇到h2无法使用,把h2的开关取消勾选
注意如果配置有修改,需要重启whistle

浏览器全局代理
需要对PC浏览器请求进行抓包的话,需要配置浏览器全局代理
我平时很少用web端代理,有问题还麻烦指正哟~


移动端配置代理
以iOS为例:
①与电脑接入同一个局域网(我是电脑开了热点)
②配置代理,填写对应IP与端口

下载证书
https的包需要下载证书才可以抓到
①手机连接代理后在浏览器输入IP:端口,访问whistle页面(无法访问检查是否开了防火墙或IP是否填错)
②下载证书

③安装证书(以iOS为例,Android在浏览器下载完成后可以直接安装)
下载后在手机设置里可以看到“已下载描述文件”的入口,点击进入可以直接安装
之后需要在“关于本机”里添加证书信任设置

PS: 如果配置完代理,手机无法访问,可能是whistle所在的电脑防火墙限制了远程访问whistle的端口,
关闭防火墙或者设置白名单:windows 防火墙如何设置允许局域网访问本机端口

暂时先写这么多,之后有时间再补充配置代理的匹配模式的内容呀
撒花✿✿ヽ(°▽°)ノ✿
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。