老E的博客

  • 首页
  • 关于
  • 技术应用
    • VPS相关
    • AI相关
    • 盒子相关
    • 其他
  • 订阅Youtube频道
  • 网络加速
    • expressvpnNo.1 ExpressVPN
    • 最佳免费VPN-PrivadoVPN
    • NordVPN
    • 廉价王者-Surfshark
    • PrivateInternetAccess
    • 解锁一切-PrivateVPN
  • 公益资源
    • AI导航
    • 工具下载
    • Docker镜像加速
  • 友情链接
    • tickcloudTickcloud
老E的博客
专注记录并分享跨境技术应用及随想
  1. 首页
  2. 技术应用
  3. VPS相关
  4. 正文

Serverless方式搭建Socks5代理池

2023年7月14日 2883次阅读 4条评论
clawcloud
expressvpn best vpn
privado vpn
surfshark vpn
private vpn
pia vpn
nord vpn

老E在浏览查询华为云服务产品的过程中,无意关注到了国内一家安全实验室的开源项目SCFProxy,在协议层面支持http(https)和socks,都是标准化协议,而其反向shell的应用,对vps也有所保护,socks也是老E经常使用并推荐的标准化协议,不滥用即可。随便找了一台vps用aws lambda部署了一下,总体来看,值得记录并推荐。如果匹配AWS Lambda,SCFProxy部署最佳实践在vps的选择上,应该是AWS国区的vps或ec2主机,可以确保vps和函数部署区域主机的连接稳定性。我们无从了解其他云服务的客户情况,但很明确的是,AWS、Azure有大量的国内企事业单位乃至机关在其上有业务和生产环境的部署,这样的应用部署状况是非滥用连接稳定的基石。近期通过function部署自定义协议是connect api发布之后的事,“自定义”本身就是最大的特征,清理已部署应用乃至封禁账户都是有可能发生的。

pre SCFProxy简介

SCFProxy 是一个基于多个云服务商提供的云函数及 API 网关实现 HTTP 代理、SOCKS 代理、反向代理的工具。至2023年,SCFProxy仍保持维护状态,并由原先的python使用 Go 重构项目,整合各个板块,支持腾讯云、阿里云、华为云和AWS。本文以AWS为例,演示使用SCFPoxy构建AWS LAMBDA(Serverless Function)并实现多IP出口(IP池)的方式。

SCFProxy项目的github地址如下:

https://github.com/shimmeris/SCFProxy/

1.配置AWS IAM

配置AWS IAM的目的是创建访问密钥、创建角色,并获取角色ARN和访问密钥,作为Lambda API正常运作的证书使用。基本内容如下:

AccessKeyId:
A******************* (一般为20个字符长度)
AccessKeySecret:
*************************** (一般为40个字符长度)
RoleARN:
arn:aws:iam::$account_id:role/$Role_name

2.下载安装SCFProxy

(1)linux amd64版本scfproxy对应下载地址

https://github.com/shimmeris/SCFProxy/releases/download/v0.2.1/SCFProxy_0.2.1_linux_amd64.zip

(2)下载、解压

#apt install unzip -y
cd && curl -sS -L https://github.com/shimmeris/SCFProxy/releases/download/v0.2.1/SCFProxy_0.2.1_linux_amd64.zip -o scfproxy.zip && unzip scfproxy -d ./ && alias scfproxy='~/scfproxy'

3.部署

(1)生成toml配置文件

scfproxy && cd ./.config/scfproxy/

(2)编辑配置文件,将AWS Lambda访问角色id和密钥、ARN填入对应位置

#vim sdk.toml
nano sdk.toml

(3)部署云函数
AWS LAMBDA可部署区域代码可参考LAMBDA控制台面板可用区域列表,国际区域与国内区域不通用、相互独立。
华为云Functiongragh可部署区域代码参考:

https://developer.huaweicloud.com/endpoint?FunctionGraph

本次测试将AWS LAMBDA函数应用部署至"加拿大-中部",区域代码为ca-central-1,“亚太地区-首尔”区域,对应代码为ap-northeast-2,“亚太地区-新加坡”区域为ap-southeast-1。SCFProxy -p、-r均支持多参数,-r支持使用通配符。

如使用scfproxy自动生成的目录和配置文件(sdk.toml),可不使用-c参数指定配置文件路径(下同)。

scfproxy deploy socks -p aws -r ca-central-1,ap-northeast-2

4.运行

运行协议参数和部署协议参数保持一致,-l指定vps接受客户端连接的监听端口,-s指定接受云函数部署服务器连接的监听端口。

scfproxy socks -l 3001 -s 3000 -h $vps_ip

各项参数说明搬运如下:

-l socks_port 监听 socks_port,等待用户的 socks5 连接
-s scf_port 监听 scf_port,等待来自云函数的连接
-h address 用于指定云函数回连(反弹shell)的 vps 地址
--auth [user:pass] 用于指定 socks 认证信息,默认无认证

https协议的支持须在http基础上,首次运行后将生成的证书导入系统、追加信任以支持https。

#scfproxy http -l 0.0.0.0:3001
#cp ~/.config/scfproxy/cert/scfproxy.cer /usr/local/share/ca-certificates/scfproxy.crt && update-ca-certificates
#scfproxy http -l 0.0.0.0:3001 -k .config/scfproxy/cert/scfproxy.key

完成测试和学习后,不再使用scfproxy LAMBDA云函数,可用如下命令清理:

scfproxy clear socks -p aws -r ca-central-1,ap-northeast-2
#scfproxy clear http -p aws -r ca-central-1,ap-northeast-2 -e && rm -f /usr/local/share/ca-certificates/scfproxy.crt && update-ca-certificates

5.本地客户端

本地客户端可以使用switchyOmega,设置http、https或socks代理ip地址指向vps地址和监听端口。

这种方式不应被滥用,否则很快会出现AWS尚可解锁ChatGPT的区域也会被封禁(Block),甚至取消或限制国内用户的Lambda部署权限/区域。

本作品采用 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议 进行许可
标签: serverless socks5 代理 翻墙
最后更新:2024年6月2日

老E

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

  • 梅茶茶

    你好 有办法让链接保持吗 我不需要他每次链接IP都会变动 我想每个客户端链接他的时候 IP都保持这 除非我自己重启应用中断这些链接

    2023年8月23日
    回复
    • 老E

      @梅茶茶 scf不行的 固定不了 需要自己写脚本

      2023年8月24日
      回复
  • nico

    SCFproxy 的socks代理,保持不了长时间连接。会经常断流。bug一直没修复。

    2024年2月21日
    回复
    • webmaster

      @nico 很长不更新了 lab可能已经关了 静下来从事安全研究的快绝迹了

      2024年2月24日
      回复
  • razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
    取消回复

    站内搜索
    归档
    • 2025 年 5 月
    • 2025 年 4 月
    • 2025 年 3 月
    • 2025 年 2 月
    • 2025 年 1 月
    • 2024 年 12 月
    • 2024 年 11 月
    • 2024 年 10 月
    • 2024 年 9 月
    • 2024 年 8 月
    • 2024 年 7 月
    • 2024 年 6 月
    • 2024 年 5 月
    • 2024 年 4 月
    • 2024 年 3 月
    • 2024 年 2 月
    • 2024 年 1 月
    • 2023 年 12 月
    • 2023 年 11 月
    • 2023 年 10 月
    • 2023 年 9 月
    • 2023 年 8 月
    • 2023 年 7 月
    • 2023 年 6 月

    Copyright ©2023-2025 Appscross. All Rights Reserved.