AnyProxy代理
背景:当一个公司测试团队有多个人的时候,只需搭建一个AnyProxy服务,其它小伙伴浏览器上打开AnyProxy页面,手机上设置代理就能抓到http、https请求了。解决了部分人电脑不正经的小伙伴fiddler死活抓不到https请求的问题,也解决了破解charles安装的问题,也不用在每个电脑都去安装一个抓包工具的问题。AnyProxy 是完全可以灵活配置的代理服务器。它支持 https明文代理 ,且提供了 Web 界面便于观测请求情况,同时支持二次开发,可以用 JavaScript 来控制代理的全部流程。
简介:AnyProxy是阿里团队基于node.js开发的一款抓包神器,可以抓取http、https、websocket请求,且高度可定制。优点:
1.同时兼容mac/windows用户
2.只需打开web页面,就能抓到手机app上的http、https请求了
下面介绍一下安装步骤,因为本人使用Mac,所以以Mac安装为例(Windows安装步骤也是类似的):
安装NodeJS:在官网https://nodejs.org/en/下载安装包,下载左边的LTS版本,傻瓜式安装即可 ,如图
安装完成后输入node -v查看版本号
cnpm安装anyproxy:由于新版的nodejs已经集成了npm,所以之前npm也一并安装好了。可以通过输入 :npm -v来测试是否成功安装,如图
如果npm版本过低,可以通过指令升级npm版本:npm install npm -g
通过npm直接安装anyproxy(不过安装速度比较慢):npm install -g anyproxy
因为安装npm很慢,可以通过cnpm安装,使用淘宝镜像地址,这个相当于是npm的升级版,先用npm安装cnpm,淘宝镜像地址:http://registry.npm.taobao.org,命令如下:npm install -g cnpm --registry=https://registry.npm.taobao.org
用cnpm安装anyproxy(安装速度快):cnpm install -g anyproxy
如果报以下错误提示没有权限,可以在命令前加sudo,如图
启动anyproxy:在终端输入:anyproxy,如图
打开浏览器输入:http://localhost:8002或者http://127.0.0.1:8002,就能打开anyproxy页面了(此时还不能抓包)
要想找到https请求,电脑上还需安装证书,打开anyproxy web页面-->RootCA-->Download-->rootCA.crt,傻瓜式下一步安装,如图
确认https证书是否安装可以输入命令查看:anyproxy-ca,如图
安装证书,然后进入证书目录,如图
通过anyproxy -i命令启动监听即可捕获https请求
电脑启动代理,如图
然后手机安装证书,可以直接在浏览器中输入http://xxxx:8002/fetchCrtFile(ip换成自己anyproxy机器地址),安装证书,如图
证书安装完成后,在手机上设置代理,如图
在手机上打开app操作,就能抓到app上 的请求了,如图
anyproxy还可以代理websocket,在终端输入命令:anyproxy --ws-intercept
使用anyproxy -i不能关闭命令行,不过可以使用pm2来管理anyproxy,:pm2 start anyproxy -x -- -i
通过pm2来初始化并启动一个anyproxy,启动anyproxy后可以随时关闭命令行,若要查看anyproxy启动状况,执行命令:pm2 list
如果要关闭anyproxy:pm2 stop anyproxy
如果要再启动anyproxy:pm2 start anyproxy
如果要重启anyproxy:pm2 restart anyproxy
Anyproxy提供的配置还是很灵活的,它提供的一个典型的规则模块代码结构如下:
// rule.js
module.exports = {
// 模块介绍
summary: 'my customized rule for AnyProxy',
// 发送请求前拦截处理
*beforeSendRequest(requestDetail) { /* ... */ },
// 发送响应前处理
*beforeSendResponse(requestDetail, responseDetail) { /* ... */ },
// 是否处理https请求
*beforeDealHttpsRequest(requestDetail) { /* ... */ },
// 请求出错的事件
*onError(requestDetail, error) { /* ... */ },
// https连接服务器出错
*onConnectError(requestDetail, error) { /* ... */ }
};
调用 anyproxy --rule rule.js 即可。
Anyproxy的配置灵活,其他的使用规则可以参考官方文档:http://anyproxy.io/cn/。
————————————————
版权声明:本文为CSDN博主「dou_being」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/dou_being/article/details/101150024
AnyProxy代理的更多相关文章
- 利用AnyProxy代理监控APP流量
1.介绍 AnyProxy 是阿里巴巴基于 Node.js 开发的一款开源代理服务器. 代理服务器站在客户端和服务端的中间,它可以收集双方通信的每个比特.一个完整的代理请求过程为:客户端首先与代理服务 ...
- mac抓包工具anyproxy
本文以 mac为代理,ios手机为客户端举例. 文档地址:http://anyproxy.io/ 1.环境配置: 安装 node :参考 https://www.jianshu.com/p/3 ...
- windows安装AnyProxy 配合夜神模拟器抓包
AnyProxy是阿里巴巴基于 Node.js 开发的一款开源代理服务器.做为中间代理服务器,它可以收集所有经过它的http请求流量(包括https明文内容):它提供了友好的web界面,便于直观的查看 ...
- 微信公众号批量爬取java版
最近需要爬取微信公众号的文章信息.在网上找了找发现微信公众号爬取的难点在于公众号文章链接在pc端是打不开的,要用微信的自带浏览器(拿到微信客户端补充的参数,才可以在其它平台打开),这就给爬虫程序造成很 ...
- airtest IDE问题汇总
FAQ 1.同一个脚本,使用IDE可以运行,使用命令行运行报错 原因:曾经开启过anyproxy代理,添加过HTTP_PROXY环境变量,将其取消即可 unset HTTP_PROXY https:/ ...
- JS中注入eval, Function等系统函数截获动态代码
正文 现在很多网站都上了各种前端反爬手段,无论手段如何,最重要的是要把包含反爬手段的前端javascript代码加密隐藏起来,然后在运行时实时解密动态执行. 动态执行js代码无非两种方法,即eval和 ...
- nodejs反向代理插件anyproxy安装
目前我使用的是Anyproxy,AnyProxy .这个软件的特点是可以获取到https链接的内容.在2016年年初的时候微信公众号和微信文章开始使用https链接.并且Anyproxy可以通过修改r ...
- 抓包工具Charles,anyproxy,mitmproxy等
Charles:图形化界面,看着比较方便友好,也可以抓取https,不过电脑和手机都要下载证书,主要我的电脑上不能添加一添加就卡死 所以,抓取https的话,就用mitmproxy比较简单 1.安装C ...
- node anyproxy ssi简易支持
在项目中,ssi include是一个比较常用的功能,这样我们就可以通过web服务器的支持,将公用的html提取出来,改一个文件就会修改全部内容 但是这也带来了问题,在开发的时候没办法的刷新查看,需要 ...
随机推荐
- Linux从入门到放弃、零基础入门Linux(第二篇):在虚拟机vmware中安装linux(一)超详细手把手教你安装centos分步图解
一.Vmware vmware介绍:VMware,Inc. (Virtual Machine ware)是一个“虚拟PC”软件公司,提供服务器.桌面虚拟化的解决方案.其虚拟化平台的产品包括播放器:它能 ...
- mybatis中的高级查询
Mybatis作为一个ORM框架,肯定是支持sql高级查询的. 下面的一个案例来为大家详细讲解mybatis中的高级查询. 案例说明: 此案例的业务关系是用户,订单,订单详情与商品之间的关系. 以订单 ...
- scrapy设置logger日志
1.在settings中设置log级别,在settings.py中添加一行: LOG_LEVEL = 'WARNING' Scrapy提供5层logging级别: CRITICAL - 严重错误 ER ...
- 分布式异步框架celery
Celery 1.什么是Clelery Celery是一个简单.灵活且可靠的,处理大量消息的分布式系统 专注于实时处理的异步任务队列 同时也支持任务调度 Celery架构 Celery的架构由三部分组 ...
- django-orm 快速清理migrations缓存
Shell #!/bin/bash Project_dir=`pwd` find $Project_dir -type d -a -name 'migrations' \ -exec rm -rf { ...
- Resin开放远程调试端口
Resin开放远程调试端口在启动加载的resin.xml中,找到 <server-default>, 在其下加入 <jvm-arg>-Xdebug</jvm-arg&g ...
- matplotlib 绘制正余弦曲线图
1.普通风格 代码 import numpy as npimport matplotlib.pyplot as plt x = np.linspace(0, 2*np.pi, 50)y1 = np.s ...
- 逆向破解之160个CrackMe —— 031
CrackMe —— 031 160 CrackMe 是比较适合新手学习逆向破解的CrackMe的一个集合一共160个待逆向破解的程序 CrackMe:它们都是一些公开给别人尝试破解的小程序,制作 c ...
- np.append()
1.numpy.append() np.append(arr,values,axis=None) 功能:在array后面追加values 参数: arr:array_like 值将附加到此数组的副本. ...
- Python面试题(2)
1.一行代码实现1-100的和 ? 1 2 3 print(sum(range(1,101))) #range中的参数是1<=i<101 #sum是计算参数的和 2.在函数内部改变全局变量 ...