专栏名称: GitHubStore
分享有意思的开源项目
目录
相关文章推荐
新周刊  ·  东北人的第二故乡,已经不是三亚了 ·  昨天  
广西市场监管  ·  一周市局动态(下) ·  2 天前  
广西市场监管  ·  一周市局动态(下) ·  2 天前  
51好读  ›  专栏  ›  GitHubStore

ProxyCat:一款IP代理池中间件

GitHubStore  · 公众号  ·  · 2024-10-05 08:24

正文

项目简介

在渗透过程中,经常需要隐藏或更换IP地址以绕过安全设备。然而,市面上的隧道代理价格高昂,普遍在20-40元/天,这对于许多人来说难以接受。笔者注意到,短效IP的性价比很高,一个IP只需几分钱,平均每天0.2-3元。

综上所述, ProxyCat 应运而生!本工具旨在将持续时间仅有1分钟至60分钟不等的短效IP转变为固定IP供其他工具使用,形成代理池服务器,部署一次即可永久使用。


功能特点

多协议支持

  • SOCKS5 代理 :支持 SOCKS5 协议,适用于各种网络环境。

  • HTTP/HTTPS 代理 :支持 HTTP 和 HTTPS 代理,满足不同应用场景需求。

代理轮换模式

  • 循环模式(Cycle) :按照顺序循环使用代理列表中的每一个代理,确保均衡使用。

  • 负载均衡模式(Load Balance) :随机选择可用代理,分摊流量负载,提升性能。

  • 自定义模式(Custom) :允许用户自定义代理选择逻辑,灵活满足特定需求。

动态代理获取

  • 使用 GetIP 函数获取代理 :支持通过 GetIP 函数动态获取即时可用的代理,保证代理的实时性和有效性。

代理验证

  • 自动检测有效性 :在启动时自动检测代理的可用性,过滤无效代理,确保代理列表的可靠性。

  • 支持多种协议检测 :针对 HTTP、HTTPS 和 SOCKS5 代理进行专门的检测,提升验证精度。

认证机制

  • 用户名/密码认证 :支持基于用户名和密码的代理认证,增强代理的安全性,防止未授权访问。

高并发处理

  • 异步架构 :基于 asyncio 实现异步处理,支持大规模并发连接,适用于高流量需求。

日志与监控

  • 彩色日志输出 :通过 colorama 实现彩色日志,便于实时监控和调试。

  • 实时状态更新 :显示当前代理状态和下次切换时间,帮助用户了解代理动态。

配置灵活

  • 可配置文件 :通过 config.ini 文件轻松调整端口、模式、认证信息等参数,适应不同使用场景。

  • 命令行参数 :支持通过命令行指定配置文件路径,增加使用的便捷性。

自动更新检查

  • 版本检测 :内置版本检测功能,自动检查最新版本并提醒用户更新,确保软件的持续优化。


安装与使用

依赖安装

工具基于 Python 实现,建议使用 Python 3.8 以上版本。在使用前,请使用以下命令配置依赖:

pip install -r requirements.txt# 或推荐使用国内源:pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/

回显如下信息即表示配置成功:

      |\      _,,,---,,_  by 本间白猫ZZZzz /,`.-'`'    -.  ;-;;,_     |,4-  ) )-,_. ,\ (  `'-'    '---''(_/--'  `-'\_)  ProxyCat
用法: ProxyCat.py [-h] [-c]
参数: -h, --help 显示此帮助信息并退出 -c C 指定配置文件名(默认config.ini)


ip.txt 手动录入代理地址

按照以下格式 ( socks5://127.0.0.1:7890 http://127.0.0.1:7890 ),一行一个填入 ip.txt 文件中:

socks5://127.0.0.1:7890https://127.0.0.1:7890http://127.0.0.1:7890...

如果您缺少合适的国内代理地址,且有几块钱预算,可以查看微信公众号:樱花庄的本间白猫。菜单页面长期更新,获取多家低价代理购买地址,为作者带来几毛钱的推荐收益~


配置文件

config.ini (或自定义配置文件)中配置参数:

[SETTINGS]# 本地服务器监听端口(默认为:1080)port = 1080
# 代理地址轮换模式:cycle 表示循环使用,custom 表示使用自定义模式,load_balance 表示负载均衡(默认为:cycle)mode = cycle
# 代理地址更换时间(秒),设置为 0 时每次请求都更换 IP(默认为:300)interval = 300
# 本地服务器端口认证用户名((默认为:neko)当为空时不需要认证username = neko
# 本地服务器端口认证密码(默认为:123456)当为空时不需要认证password = 123456
# 是否使用 getip 模块获取代理地址 True or False(默认为:False)use_getip = False
# 代理地址列表文件(默认为:ip.txt)proxy_file = ip.txt
# 是否启用代理检测功能 True or False(默认为True)check_proxies = True

配置对应参数后即可使用:

python3 ProxyCat.py


演示效果

固定代理地址(默认)

http://neko:[email protected]:1080http://127.0.0.1:1080 socks5://neko:[email protected]:1080socks5://127.0.0.1:1080

如果您是部署在公网,将 127.0.0.1 替换为您的公网IP即可。


使用接口自动获取代理地址

工具支持直接调用代理地址获取的API接口。当您配置 use_getip = True 时,工具将不再从本地 ip.txt 中读取代理地址,而是通过执行 getip.py 脚本来获取新的代理地址(请确保您的IP已加白名单)。

此时,您需要将 getip.py 的内容修改为您自己的接口,格式为 IP:PORT 。默认为 socks5 协议,如需使用 http ,请手动更改。







请到「今天看啥」查看全文