0x01 前言
什么是云函数?
云函数(Serverless Cloud Function,SCF)是云计算厂商为企业和开发者们提供的无服务器执行环境,可在无需购买和管理服务器的情况下运行代码, 是实时文件处理和数据处理等场景下理想的计算平台。只需使用 SCF 平台支持的语言编写核心代码并设置代码运行的条件,即可在某云基础设施上弹性、安全地运行代码。
为什么通过云函数代理IP?
这是因为云函数会自动的在同一个地域内的多个可用区部署,在请求目标时,会自动调用不同的可用区的IP地址。这样一来,每次请求IP会发生改变,也就达到了我们想要建立一个代理池的目的。
0x02 构建云函数代理池
本地环境
系统:macOS Big Sur
Python版本:3.7.7
代理客户端:mitmproxy
云函数厂商:腾讯云
配置云函数
新建云函数
选择自定义部署,运行环境为 Python
,通过在线编辑,将 SCFProxy
工具中的 server.py
文件代码替换进去,然后点击完成会自动部署
创建触发器
按照图示,依次选择创建API网关触发器
将访问路径记下
修改代理客户端配置
打开 SCFProxy
工具目录下的 HTTP
,编辑 client.py
文件,将API网关触发器中的访问路径地址加入到 scf_servers
中
0x03 本地代理
本文章使用的代理客户端为
mitmproxy
,由于使用的是Python脚本处理代理请求,还需要使用pip安装mitmproxy
模块(建议在官网下载对应的whl文件进行安装),这里需要注意安装对应版本的mitmproxy
否则可能会出现一些问题。本文使用代理客户端的版本是 7.0.0,Python模块版本是:7.0.0。
为了方便,我将 client.py
文件复制到了 mitmproxy
工具目录中
然后执行 ./mitmdump -s client.py -p 8081 --no-http2
即可在本地端口8081上开启代理
通过浏览器代理工具进行代理,代理协议为 HTTP
代理服务器为 127.0.0.1
代理端口为 8081
浏览器代理后,可以看到IP地址也变了,每次请求IP地址都会变化
可以看到访问网页的请求都会经过云函数请求返回到本地
0x04 参考资料
链接
工具
Author: wileysec
Permalink: https://wileysec.github.io/618dcd2c2088.html
Comments