whistle 使用笔记

885 阅读4分钟

whistle 使用笔记

因公司某个项目的开发调试,需要将线上接口代理为本地接口进行调试,于是采用whistle进行代理,一开始使用流程不明确,也踩了或多或少的坑,所以特此记录,也希望能帮助到其他首次使用whistle的小白

1. 安装whistle

执行如下npm命令安装whistleMac或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 -Vw2 -V,查看whistle的版本信息

 w2 -V

如果能正常输出whistle的版本信息,表示whistle已安装成功,也可以通过whistle helpw2 help,查看whistle的帮助信息。

2. 启动whistle

最新版本的whistle支持三种等价的命令whistlew2wproxy

启动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. 配置代理
配置信息
  1. 代理服务器:127.0.0.1 (如果部署在远程服务器或虚拟机上,改成对应服务器或虚拟机的ip即可)
  2. 默认端口:8899 (如果端口被占用,可以在启动时通过 -p 来指定新的端口,更多信息可以通过执行命令行 w2 help (v0.7.0及以上版本也可以使用w2 help) 查看)

浏览器代理:安装浏览器代理插件 SwitchyOmega

如下图,你可以新建一个情景模式: whistle,然后正确配置相关代理信息,图中为whistle的默认配置

0b4bf969b1be871a1aa16fb3168bc20.png

在你使用whistle代理时,记得在被代理的网页开启此插件,并且选择你所设置的情景模式

6f48dfcd9d47fe836f980404087bbfb.png

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 指定了用户名和密码,那么在你访问配置页面时,会弹出以下弹出,让你输入用户名和密码:

178fc66cee0cb3223122b2eeec35555.png

配置页面如图所示:

0de3325a9c189f2239fe0f0d759c067.png

可以在此配置你的代理规则,至于如何配置代理规则,可自行寻找相关文档,本文不做赘述

34f9059aefc1ef270799d422aad993f.png

可以在此查看你的抓包记录

5. 安装根证书

在你配置好你的代理规则,来到被代理的网页,并且选择完代理插件SwitchyOmega中你配置的情景模式后,你会发现Chrome浏览器并不让你访问,警告那不是一个私密连接,不要着急,那是因为你还没有安装根证书,接下来需要安装whistle的根证书

打开配置页面,下载根证书,开启捕获 HTTPS 请求:

58eb909046c0e001ba59a0098447e7a.png

安装证书

  1. Windows:

c38e842c28de66be752419ee27286b5.png

下载证书后,双击证书,根据指引安装证书。证书安装过程,要确保证书存储到受信任的根证书颁发机构

  1. Mac: Mac根证书怎么安装

Mac 安装证书后,需要手动信任证书,步骤如下:

3dcd380a9a755867b2c43a983618e8c.png 打开证书管理界面,找到带有 whistle 的字样的证书,如果有多个又不确定最新安装的是哪个,可以全部删除后重新安装

912120c15b35fed694cccb0e5a12a94.png

如果证书按以上步骤安装后,如果还出现安全提醒,这个主要原因是之前你访问过该页面,导致长连接已建立,可以等段时间再访问、或重新打开浏览器,或重启下whistle: w2 restart

以上就是本人初步使用whistle的笔记,在此做个记录,也希望能帮助到刚开始使用whistle的小白