关于whistle

whistle(读音[ˈwɪsəl],拼音[wēisǒu])基于Node实现的跨平台web调试代理工具,
类似的工具有Windows平台上的Fiddler,主要用于查看、修改HTTP、HTTPS、Websocket的请求、
响应,也可以作为HTTP代理服务器使用,不同于Fiddler通过断点修改请求响应的方式,
whistle采用的是类似配置系统hosts的方式,一切操作都可以通过配置实现,支持域名、路径、
正则表达式、通配符、通配路径等多种匹配方式,且可以通过Node模块扩展功能:

安装启动

1 安装whistle

$ npm install -g whistle

2 启动whistle

$ w2 start

3 停止whistle

$ w2 stop

4 配置代理

1:代理服务器:127.0.0.1

2:默认端口:8899

5 代理配置方式

1:Mac: System Preferences > Network > Advanced > Proxies > HTTP or HTTPS

2:Linux: Settings > Network > VPN > Network Proxy > Manual

3: 浏览器代理,安装Chrome代理插件:推荐安装SwitchyOmega

4:移动端需要在设置中配置当前Wi-Fi的代理

快速上手

rules功能

1 设置hosts

1
2
3
www.ifeng.com 127.0.0.1
# or
127.0.0.1 www.ifeng.com

2 指定www.ifeng.com的ip和端口,把请求转发到本地8080端口,这个在平时开发中可以用来去掉url中的端口号:

1
2
3
4
# www.ifeng.com 127.0.0.1
www.ifeng.com 127.0.0.1:8080
# or
127.0.0.1:8080 www.ifeng.com

3 也可以用某个域名的ip设置hosts

1
2
3
www.ifeng.com host://www.qq.com:8080
# or
host://www.qq.com:8080 www.ifeng.com

匹配模式

域名匹配

1:域名匹配,不仅支持匹配某个域名,也可以限定端口号、协议(http、https、ws、wss、tunnel)
,如果operatorURI不为请求路径,pattern和operatorURI位置可以调换:

1
2
3
4
5
6
7
8
9
10
11
12
# 匹配域名www.test.com下的所有请求,包括http、https、ws、wss,tunnel
www.test.com operatorURI

# 匹配域名www.test.com下的所有http请求
http://www.test.com operatorURI

# 匹配域名www.test.com下的所有https请求
https://www.test.com operatorURI

# 上述匹配也可以限定域名的端口号
www.test.com:8888 operatorURI # 8888端口
www.test.com/ operatorURI # http为80端口,其它443端口

路径匹配

1:指定匹配某个路径,也可以限定端口号、协议(http、https、ws、wss)
等等,如果operatorURI不为请求路径,pattern和operatorURI位置可以调换。

1
2
3
4
5
6
7
# 限定请求协议,只能匹配http请求
http://www.test.com/xxx operatorURI
http://www.test.com:8080/xxx operatorURI

# 匹配指定路径下的所有请求
www.test.com/xxx operatorURI
www.test.com:8080/xxx operatorURI

文档地址

点我传送