专栏首页测试开发架构之路利用AnyProxy代理监控APP流量

利用AnyProxy代理监控APP流量

1.介绍

  • AnyProxy 是阿里巴巴基于 Node.js 开发的一款开源代理服务器
  • 代理服务器站在客户端服务端中间,它可以收集双方通信的每个比特。一个完整的代理请求过程为:客户端首先与代理服务器创建连接,接着根据代理服务所使用的代理协议,请求对目标服务器创建连接或者获取目标服务器的指定资源。一些代理协议允许代理服务器改变客户端的原始请求、目标服务器的原始响应
  • AnyProxy 是完全可以灵活配置的代理服务器。它支持 https明文代理 ,且提供了 Web 界面便于观测请求情况,同时支持二次开发,可以用 JavaScript控制代理的全部流程,搭建前端个性化调试环境。

2.安装

  1. 安装Node.js

  2. 安装AnyProxy

# 安装稳定正式版
$ npm install -g anyproxy
# 最新测试版,需要使用最新版本 node 进行安装
$ npm install -g anyproxy@beta
# 有时需要添加 sudo

3.生成证书(代理https,需要生成证书)

anyproxy-ca

移动端安装证书

浏览器打开地址 http://localhost:8002/fetchCrtFile 进行证书下载
扫描二维码地址 http://localhost:8002/qr_root 进行证书下载

4.安装pm2

安装pm2,执行命令,

npm install pm2 -g

后面的-g也不能少,检查pm2是否安装成功,执行命令,

pm2 --version

5.启动

anyproxy -i
pm2 start anyproxy -x -- -i

6.关闭

通过pm2来初始化并启动一个anyproxy,启动anyproxy后可以随时关闭命令行,若要查看anyproxy启动状况,执行命令,
pm2 list

若要关闭anyproxy,执行命令,

pm2 stop anyproxy

7.重启

pm2 restart anyproxy

8.启动浏览器

http://127.0.0.1:8002/

9.客户端配置代理

  手动 配置服务器与端口

10.网络请求并观测

11.卸载

$ npm uninstall anyproxy

12.清除证书

$ anyproxy --clear

13.扩展

编写规则文件 rule.js
// 允许 Https 解析
module.exports = {

    shouldInterceptHttpsReq : function(req){
        return true;
    }

};

启动并加载规则

anyproxy --rule ./rule.js

测试规则

 直接请求服务器
 curl https://github.com
# 通过代理服务器请求
 curl https://github.com --proxy http://127.0.0.1:8001

14.加载线上规则

 anyproxy --rule https://sample.com/rule.js

参考:http://aiezu.com/article/windows_anyproxy_install.html

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 大数据项目测试<二>项目的测试工作

     后端的测试重点,主要集中在数据的采集处理、标签计算效率、异常数据排查(功能),测试脚本编写(HiveQL)、自动化脚本编写(造数据、数据字段检查等)

    互联网金融打杂
  • C++之内联函数与constexpr

    inline 函数 规模小,流程直接且频繁调用 cout<<shortString(s1,s2)<<endl; = cout<<(s1.size()<s2.si...

    互联网金融打杂
  • c++之函数重载(函数匹配)

    Case void f(); void f(int); void f(int, int); void f(double, double = 3.14); 匹配原...

    互联网金融打杂
  • Python安装升级pip

    py3study
  • 从Oracle新特性看数据库发展

    虽说近些年来,从国内数据库市场来看,Oracle是有些势衰;但从全球角度来说,其霸主地位依然不可撼动。其技术的演讲变化,仍然对行业数据库发展有着颇大的指导引领意...

    jeanron100
  • 让Python删除window下文件

    今天接到电话,有楼下客户反映,数据有问题,我连接到服务器上,发现broke的一个盘符空间满了,导致,应用在报错,停下服务,删除了庞大的日志文件,服务开启,一切正...

    py3study
  • loadrunner 脚本优化-参数化之场景中的参数化取值

    打开Tools>Create Controller Scenario选项,弹出如下图,选中Manual Scenario(手工场景),虚拟用户数为5个,其他选...

    授客
  • 关于Python局部变量和全局变量必须知道的几句话

    虽然Python支持非常复杂的变量作用域和访问顺序(详见:几行代码理解Python变量访问的LEGB顺序、详解Python变量作用域),但是一般而言,能够分清局...

    Python小屋屋主
  • OC学习2——C语言特性之函数

    1、OC是在C语言的基础上进行扩展的,在OC中直接用C语言进行coding也是可以通过编译的。因此,函数定义的语法格式如下: 函数返回值类型 函数名(形参列表...

    mukekeheart
  • 数据挖掘面试题之:梯度提升树

    GBDT是机器学习面试中的常客,但是,要准确地说出它的原理却并不容易,除了掌握DT基本知识外,还要掌握加法模型、前向分步算法、梯度提升思想,本文是对这些知识点的...

    木东居士

扫码关注云+社区

领取腾讯云代金券