Last Updated on

前言

抓包,是我们平时最常用的调试方法,用来分析请求,调试找错等。这里记录介绍一个由阿里云开发的抓包工具。Whistle,是基于Node实现的跨平台抓包调试代理工具,基本上覆盖了所有抓包调试代理可以实现的功能。官方GitHub地址

为什么要使用Whistle了,在传统抓包调试时,我们最常用的自然是浏览器的F12,但是有时候并不能完全满足我们的需求,比如手机抓包,网页新增tab时,自带的F12便无法抓到。这时就需要一个功能齐全,又方便好用的抓包工具,将所有http/https请求访问都进行抓包,这样就能更全面的分析。于是我们选择Whistle。

Whistle的使用方法与详细情况,都可以在github上的文档中找到:中文文档,有基础的可以直接查看文档,以官方文档为准,不想看官方文档的,看我下面的基础教程也可以。

正文

1. 安装

whistle是基于node实现的跨平台web调试工具,所以安装whistle需要先安装nodejs。

访问Nodejs官网下载页面,根据自己系统下载安装包,直接安装即可:


安装后,会生产npm命令,使用npm命令安装whistle

$ windows则使用cmd执行下面命令
$ 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

OK,成功执行命令即完成安装。

2. 使用

1. 启动whistle

whistle安装完成后,启动whistle,然后需要设置代理,让流量通过whistle进行转发,这样就可以通过whistle进行抓包分析。

# windows则使用cmd运行,macos等unix系统则直接终端运行即可。
# 启动whistle
$ w2 start

# 关闭whistle
$ w2 stop

# 重启whistle
$ w2 restart

# 查看whistle状态
$ w2 status

启动服务后会出现一些提示,类似如下:


2. 设置代理

启动完成后,默认会监听本地的8899端口,然后pc或手机设置代理后,即可正常抓包。下面详细说明一下PC和手机如何设置代理。详细的可以参考官方文档第4点

PC

windows系统请看Windows

macos系统:系统偏好设置--> 网络 --> 高级 --> 代理--> http(s)代理设置


手机

前提条件,手机和启动whistle的电脑要在同一个网络下,比如连在同一个wifi下,或者电脑开启热点给手机连接等, 或者别的方式,总之放手机和pc能够互访就行。

然后通过手机的wifi网络设置,手动设置代理。

IP 设置为启动whistle的pc的ip

端口设为 whistle的代理端口,默认为8899


3. 设置https证书

代理设置过后,还需要信任证书,才能抓取到https相关的请求,否则只能抓取到http的请求包。

访问whistle的web页面,即启动whistle的电脑的8899端口。下载crt证书,并安装与信任。根据系统不同,操作方式也不同,详细的请看官方教程

安装完成后,即可正常抓去到https请求的包。


4. 访问whistle web页面

代理设置完成后,访问whistle的web页面,即启动whistle的pc的8899端口,即可看到抓取到的包。

PS: 如果配置完代理,手机无法访问,可能是whistle所在的电脑防火墙限制了远程访问whistle的端口,根据系统自行关闭防火墙或者开放防火墙端口。

web页面如下:

结束

OK。利用whistle进行抓包就到这里了。whistle除了抓包,还有别的在线调试等功能,有兴趣的,可以研究一下文档。自行探索新功能。

有任何问题,欢迎留言