whistle
使用笔记
因公司某个项目的开发调试,需要将线上接口代理为本地接口进行调试,于是采用whistle
进行代理,一开始使用流程不明确,也踩了或多或少的坑,所以特此记录,也希望能帮助到其他首次使用whistle
的小白
1. 安装whistle
执行如下npm
命令安装whistle
(Mac或Linux的非root用户需要在命令行前面加sudo
,如:sudo npm install -g whistle
)
npm install -g whistle
npm
默认镜像是在国外,有时候安装速度很慢或者出现安装不了的情况,如果无法安装或者安装很慢,可以使用 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
whistle安装完成后,执行命令 whistle -V
或 w2 -V
,查看whistle
的版本信息
w2 -V
如果能正常输出whistle
的版本信息,表示whistle已安装成功,也可以通过whistle help
或 w2 help
,查看whistle的帮助信息。
2. 启动whistle
最新版本的whistle支持三种等价的命令whistle
、w2
、wproxy
启动whistle:
w2 start
[i] whistle@2.8.0 started
[i] 1. use your device to visit the following URL list, gets the IP of the URL you can access:
http://127.0.0.1:8899/
http://10.101.138.197:8899/
Note: If all the above URLs are unable to access, check the firewall settings
For help see https://github.com/avwo/whistle
[i] 2. configure your device to use whistle as its HTTP and HTTPS proxy on IP:8899
[i] 3. use Chrome to visit http://local.whistlejs.com/ to get started
Note: 如果要防止其他人访问配置页面,可以在启动时加上登录用户名和密码 -n yourusername -w yourpassword
。用户名和密码可以自定义
重启whsitle:
w2 restart
停止whistle:
w2 stop
调试模式启动whistle(主要用于查看whistle的异常及插件开发):
w2 run
3. 配置代理
配置信息
- 代理服务器:127.0.0.1 (如果部署在远程服务器或虚拟机上,改成对应服务器或虚拟机的ip即可)
- 默认端口:8899 (如果端口被占用,可以在启动时通过
-p
来指定新的端口,更多信息可以通过执行命令行w2 help
(v0.7.0
及以上版本也可以使用w2 help
) 查看)
浏览器代理:安装浏览器代理插件 SwitchyOmega
如下图,你可以新建一个情景模式: whistle
,然后正确配置相关代理信息,图中为whistle
的默认配置
在你使用whistle
代理时,记得在被代理的网页开启此插件,并且选择你所设置的情景模式
4. 访问配置页面
启动whistle及配置完代理后,用**Chrome浏览器(由于css兼容性问题界面只支持Chrome浏览器)**访问配置页面,如果能正常打开页面,whistle安装启动完毕,可以开始使用。
可以通过以下两种方式来访问配置页面:
- 方式1:域名访问 local.whistlejs.com/
- 方式2:通过ip+端口来访问,形式如
http://whistleServerIP:whistlePort/
e.g. http://127.0.0.1:8899 - 方式3:通过命令行参数
-P xxxx
自定义webui的端口(xxxx
表示要设置的端口号),自定义端口支持上述两种方式访问,也支持 http://127.0.0.1:xxxx
如果你在 w2 start 的时候,通过 -n 和 -w 指定了用户名和密码,那么在你访问配置页面时,会弹出以下弹出,让你输入用户名和密码:
配置页面如图所示:
可以在此配置你的代理规则,至于如何配置代理规则,可自行寻找相关文档,本文不做赘述
可以在此查看你的抓包记录
5. 安装根证书
在你配置好你的代理规则,来到被代理的网页,并且选择完代理插件SwitchyOmega
中你配置的情景模式后,你会发现Chrome
浏览器并不让你访问,警告那不是一个私密连接,不要着急,那是因为你还没有安装根证书,接下来需要安装whistle
的根证书
打开配置页面,下载根证书,开启捕获 HTTPS 请求:
安装证书
- Windows:
下载证书后,双击证书,根据指引安装证书。证书安装过程,要确保证书存储到受信任的根证书颁发机构
下
- Mac: Mac根证书怎么安装
Mac 安装证书后,需要手动信任证书,步骤如下:
打开证书管理界面,找到带有
whistle
的字样的证书,如果有多个又不确定最新安装的是哪个,可以全部删除后重新安装
如果证书按以上步骤安装后,如果还出现安全提醒,这个主要原因是之前你访问过该页面,导致长连接已建立,可以等段时间再访问、或重新打开浏览器,或重启下whistle: w2 restart
以上就是本人初步使用whistle
的笔记,在此做个记录,也希望能帮助到刚开始使用whistle
的小白