博客貌似有很久很久没有更新了。但是其实并没有停止学习(笔记大部分写到了语雀上,有空闲时间同步到博客)。今天看了公众号里的一篇文章,自己实际操作了一下发现有一些坑,所以来做个记录
文章参考:https://mp.weixin.qq.com/s/HT6liYdsaKW34OMQGu3XAw
云函数实现HTTP代理
客户端挂上代理发送数据包,HTTP 代理服务器拦截数据包,提取 HTTP 报文相关信息,然后将报文以某种形式 POST 到云函数进行解析,云函数根据解析到的信息对目标发起请求,最终将结果一层一层返回。
云函数基础配置
选择自定义创建,地域自选,部署模式,代码部署,运行环境Python3.6,其余默认即可。
函数代码配置
然后配置函数代码,服务端代码server.py:
1 | # -*- coding: utf8 -*- |
修改 server.py 中的 SCF_TOKEN 为随机值,该值将用于鉴权, client.py 中的 SCF_TOKEN需要与server.py中的SCF_TOKEN保持一致。
高级配置
云函数操作最大超时限制默认为 3 秒,可以将云函数环境配置中的执行超时时间拉满,其余默认即可
创建触发器
配置完上面的所有内容后,创建触发器,自定义触发器,
触发方式选择 API 网关触发,其他默认就好。
创建好触发器之后,基本配置就完成了,点击完成,等待函数配置完成,就会跳转到管理页面,我们找到触发管理,其中访问路径就是我们的云函数访问地址。
服务端就基本配置好了,下面还需要配置一下客户端。
客户端配置
本地代理这里使用的是mitmproxy,可以直接pip安装。
安装mitmproxy 注意这个版本和本机python的版本是挂钩的。我这边是Python3.7
4.0.1版本的mitmproxy
才能正常使用。(这里尝试了很久,之前没指定版本的时候会报错原因就是Python版本太低而mitmproxy版本太高。具体mitmproxy的版本对应Python哪个版本,大家自己去尝试下。)
1 | python3 -m pip install mitmproxy==4.0.1 |
如果需要代理 HTTPS流量需安装证书。首次运行 mitmdump命令,证书目录自动生成在 ~/.mitmproxy中,安装并信任。
双击 mitmproxy-ca-cert.pem
文件,设为始终信任。
下面需要配置客户端client.py代码,需要将触发器中的访问路径添加至 client.py 中 scf_servers变量中,以逗号 , 分隔。scf_servers 参数可以添加多个API接口,这样就可以获取更多的IP池。
1 | import json |
配置好之后就可以开启代理
1 | mitmdump -s client.py -p 8081 --no-http2 |
在浏览器下配置http代理
我们查看一下ip
可见已经是 腾讯云的地址了。
但是https的站点这里还是会报出ssl错误
一些https的站还是会出问题的。这里找了很久解决办法,还是没搞定。如果大佬们看出有什么问题,请联系下小弟。
云函数实现SOCKS5代理
云函数基础配置
函数代码
1 |
|
修改 server.py中的 bridge_ip与 bridge_port为自己 VPS的 ip及开启监听的端口
高级配置
与上面http一样。
修改云函数超时时间为 900s,这样一个 SOCKS5 连接最多维持 15m
创建触发器
同样与上面http一样 触发方式为API网关触发
客户端配置
下载 https://github.com/culprits/SCFProxy.git 到我们的vps上
执行
Pip3 install -r requirements.txt 安装所需要的库,最后直接执行
1 | python3 socks5.py -u "https://service-q3vrbamf-1257145077.bj.apigw.tencentcs.com/release/socks5" -bp 9001 -sp 9002 --user Sch0lar --passwd Sch0lar |
- -u 参数需要填写 API 网关提供的地址,必填
- -l 表示本机监听的 ip,默认为 0.0.0.0
- -sp 表示 SOCKS5 代理监听的端口,必填
- -bp 表示用于监听来自云函数连接的端口,与 server.py 中的 bridge_port 相同,必填
- –user 和 –passwd 用于 SOCKS5 服务器对连接进行身份验证,客户端需配置相应的用户名和密码
后台运行
1 | screen python3 socks5.py -u "https://service-q3vrbamf-1257145077.bj.apigw.tencentcs.com/release/socks5" -bp 9001 -sp 9002 |
配置好socks5代理