引言:阿里开源功能强大的代理服务器,可用于移动端测试抓包等操作。

官网:https://github.com/alibaba/anyproxy

简介

  1. AnyProxy是阿里巴巴基于 Node.js 开发的一款开源代理服务器

  2. 代理服务器站在客户端服务端中间,它可以收集双方通信的每个比特。一个完整的代理请求过程为:客户端首先与代理服务器创建连接,接着根据代理服务所使用的代理协议,请求对目标服务器创建连接或者获取目标服务器的指定资源。一些代理协议允许代理服务器改变客户端的原始请求、目标服务器的原始响应

  3. AnyProxy 是完全可以灵活配置的代理服务器。它支持 https明文代理 ,且提供了 Web 界面便于观测请求情况,同时支持二次开发,可以用 JavaScript控制代理的全部流程,搭建前端个性化调试环境。

anyproxy怎么安装?anyproxy怎么在一台机器上开多个实例?anyproxy怎么做到开机自启动?还有怎么防止别人盗用自己搭建的anyproxy服务器?

1、第一个问题,anyproxy怎么安装,首先是拿到一台云主机,先安装node(因为anyproxy需要node环境),再安装npm(npm是用来管理node的),然后用npm安装anyproxy,最后用npm安装pm2(pm2是用来管理anyproxy的)。下面以Ubuntu16.04为例,使用root用户,安装node,执行命令,

apt install nodejs-legacy

或参考我的文章,Linux系统安装Nodejs

检查node是否安装成功,执行命令,

node --version

安装npm,执行命令,

apt install npm

检查npm是否安装成功,执行命令,

npm --version

安装anyproxy,执行命令,

npm install anyproxy -g

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

anyproxy --version

安装pm2,执行命令,

npm install pm2 -g

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

pm2 --version

然后执行命令启动anyproxy,

anyproxy

这里有可能会出现TypeError: Buffer.alloc is not a function的错误,

这是因为node版本和npm版本不够,需要升级node和npm,升级npm,执行命令,

npm install npm -g

升级node,执行两条命令,

npm install -g n
n stable

但是你可能会发现执行node --version和npm --version还是显示原来的版本,其实你已经升级好node和npm的了,只是当前命令行窗口还没刷新过来,如果你新开一个命令行窗口执行node --version和npm --version,就会显示升级后的版本的了。现在再启动执行命令anyproxy启动anyproxy,如果出现以下就是anyproxy启动成功,

进一步访问网址进行anyproxy的启动验证,访问服务器ip:8002,

但是这样启动anyproxy只能代理http,如果要能代理https,需要执行生成ca证书的命令,

anyproxy-ca

回车确认下去既可,然后执行以下命令来启动anyproxy,


linux环境请忽略下面这句
anyproxy --intercept #启动AnyProxy,并解析所有https请求

在手机浏览器中打开"http://ip:8002/fetchCrtFile"(IP换成安装AnyProxy机器的IP,其中查看ip的方法啊,命令行窗口输入ipconfig,即可查看本机的ip),然后就会直接下载证书


anyproxy -i

anyproxy就可以代理https了,但是这样子无法关闭命令行,所以需要用到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

2、第二个问题,anyproxy怎么在一台机器上开多个实例,上面的第一点只说到了用pm2开一个anyproxy实例,其实anyproxy是可以开多个实例的,因为anyproxy可以指定端口指定规则文件来启动。先用回直接anyproxy启动的方式来演示怎么启动不同端口不同规则文件的anyproxy实例,启动第一个anyproxy实例,执行命令,

anyproxy -i -p 8001 -w 8002 -r /usr/local/lib/node_modules/anyproxy/lib/rule_default.js

访问服务器ip:8002检查是否成功,-p参数后面跟的代理端口即手机wifi连接anyproxy代理时的端口,-w参数后面跟的是web端口即在浏览器上查看代理情况的端口,-r参数后面跟的是rule规则文件路径,rule_default.js的文件路径默认是在/usr/local/lib/node_modules/anyproxy/lib/下,其实开多个实例主要是因为rule规则文件的不同。这里的启动你可能会发现有一点不同,

启动语句比平时多了一句,both “-i(–intercept)” and rule.beforeDealHttpsRequest are specified, the “-i” option will be ignored,这句话的意思就是如果rule规则文件中定义了beforeDealHttpsRequest函数, 那么是否代理https将完全由这个函数的返回来决定;如果没有定义这个函数,那么是否代理https就由启动anyproxy时是否传入i参数来决定;所以说这第一个anyproxy实例其实是不能代理https的。那么这里要开的第二个anyproxy实例的rule规则文件可以修改为注释掉beforeDealHttpsRequest函数,

文件也放在/usr/local/lib/node_modules/anyproxy/lib/下,命名为rule_default2.js,执行命令,

anyproxy -i -p 8003 -w 8004 -r /usr/local/lib/node_modules/anyproxy/lib/rule_default2.js

访问服务器ip:8004检查是否成功,这里的启动就没有both “-i(–intercept)” and rule.beforeDealHttpsRequest are specified, the “-i” option will be ignored这句提示了,

证明第二个anyproxy实例是可以代理https的。那么用回pm2来启动多个anyproxy实例,就是执行两条命令,

pm2 start anyproxy --name anyproxy1 -- -i -p 8001 -w 8002 -r /usr/local/lib/node_modules/anyproxy/lib/rule_default.js
pm2 start anyproxy --name anyproxy2 -- -i -p 8003 -w 8004 -r /usr/local/lib/node_modules/anyproxy/lib/rule_default2.js

–name参数后面跟的是pm2的服务名,在–参数后面添加anyproxy启动的各种参数,访问服务器ip:8002和服务器ip:8004检查是否成功。

3、第三个问题,anyproxy怎么做到开机自启动,只需执行命令,

pm2 save

保存当前pm2运行的各个应用,重启时就会启动保存的各个应用。再执行命令,

pm2 startup

生成开机服务,重启云服务器检查是否成功。

4、第四个问题,怎么防止别人盗用自己搭建的anyproxy服务器,其实很简单,只要设置为只允许公司内网访问就可以了,回家想访问通过公司的vpn访问。

参考:https://www.jianshu.com/p/2074f7572694
https://www.jianshu.com/p/d978d3b8f2aa

[486]Anyproxy的安装和使用相关推荐

  1. Anyproxy的安装和使用

    anyproxy怎么在一台机器上开多个实例?anyproxy怎么做到开机自启动?还有怎么防止别人盗用自己搭建的anyproxy服务器? 1.第一个问题,anyproxy怎么安装,首先是拿到一台云主机, ...

  2. AnyProxy 安装笔记

    github地址https://github.com/alibaba/anyproxy 官网地址:anyproxy.io(不知道为什么已经被和谐,需要翻墙) 主要步骤 安装nodejs 通过node的 ...

  3. mac上AnyProxy安装与使用

    简介 AnyProxy是阿里开源的一个抓包工具,其原理与fiddler.charles一样,其本质功能都相同.大家如果用过charles的话,会发现AnyProxy的界面更加简洁,操作更加方便. 这个 ...

  4. Anyproxy 安装使用(附代码)

    github地址https://github.com/alibaba/anyproxy 官网地址:anyproxy.io(不知道为什么已经被和谐,需要翻墙) 主要步骤 安装nodejs 通过node的 ...

  5. Linux (centos) 安装anyproxy https手机设备抓包笔记

    Linux (centos) 安装anyproxy https手机设备抓包笔记  安装nodejs curl -sL https://rpm.nodesource.com/setup_14.x | b ...

  6. AnyProxy安装使用【Windows】

    分析网络请求详情是写爬虫应用的初始步骤,抓包便是一种十分强大的分析手段,尤其是对手机App进行抓包,往往能收获到Web端没有的API接口.抓包的工具多种多样,功能用法类似,今天给大家介绍一下AnyPr ...

  7. AnyProxy代理

    背景:当一个公司测试团队有多个人的时候,只需搭建一个AnyProxy服务,其它小伙伴浏览器上打开AnyProxy页面,手机上设置代理就能抓到http.https请求了.解决了部分人电脑不正经的小伙伴f ...

  8. anyproxy学习4-Linux(Centos)搭建anyproxy环境

    前言 anyproxy可以跨平台使用,前面第一篇是搭建在windows机器上,本篇讲如何在linux上搭建anyproxy环境,当然有mac的小伙伴也可以用mac去搭建一个环境. nodejs安装 a ...

  9. windows下pm2启动anyproxy失败

    windows下pm2启动anyproxy后状态显示stop pm2及anyproxy的安装自行网上搜索. 参考网上的文章,用能关闭命令行的方式启动anyproxy,遇到了启动后的状态异常stoppe ...

最新文章

  1. 特使招募-航天三院-智能车竞赛
  2. 电子计算机之父冯.诺依曼的主要贡献,约翰·冯·诺依曼,约翰·冯·诺依曼的生平,贡献等...
  3. java throw异常_java throw拋出异常详解
  4. ptp精准时间协议_PTP协议时间同步精度测试
  5. Angular中ngModel的$render的详解
  6. telnet到设备里 php_金融行业思科设备典型网络故障案例:76系列典型案例(一)...
  7. android--仿网易新闻主界面
  8. linux生成图片快捷方式,在Deepin Linux系统下给AppImage格式软件创建快捷方式的方法...
  9. 马云:格局不够大,人生成就再高也有限!
  10. CentOS开机流程
  11. vSAN一次人肉工程师踩过的坑
  12. 关于Cocos2d-x的粒子系统
  13. wifi扫描流程图_扫描方法与流程
  14. 泰安虚拟服务器怎么样,泰安S5353:搭建您最满意的服务器
  15. 4场直播丨Oracle、openGauss、易鲸捷EsgynDB
  16. 暗影精灵3 PLUS 安装黑苹果
  17. MATLAB线性回归方程与非线性回归方程的相关计算
  18. 【天池大数据竞赛】“数智教育”2019数据可视化竞赛亚军方案总结
  19. mPEG-Pyrene,甲氧基聚乙二醇芘丁酸
  20. 谈一谈企业部署erp系统的三大时间段

热门文章

  1. Ubuntu16.04系统之 - 安装搜狗输入法出现破坏fcitx-ui-qimpanel问题
  2. matlab 中diag函数使用
  3. 风电功率预测_复杂地形风电场的风功率预测技术研究
  4. LeetCode岛屿最大面积
  5. 为什么格上能够构造全同态加密-2
  6. Java语言程序设计(郎波) 笔记(二)
  7. C语言实现巴特沃斯低通滤波器
  8. 抓图工具HyperSnap
  9. exFAT移动硬盘写保护怎么去掉
  10. 音速启动软件,让电脑桌面变的简单、快捷。