diff --git a/ProxyCat-Manual/logs.md b/ProxyCat-Manual/logs.md new file mode 100644 index 0000000..59ad767 --- /dev/null +++ b/ProxyCat-Manual/logs.md @@ -0,0 +1,85 @@ +### 2025/01/07 + +- 引入连接池机制提高性能。 +- 优化部分错误处理和日志记录。 +- 代理切换机制优化。 + +### 2025/01/03 + +- 集中配置参数到配置文件中管理,提升维护便利。 +- 修复部分已知BUG,并提升稳定性和并发能力。 + +### 2025/01/02 + +- 重构软件结构,更加整洁易用。 +- 新增支持黑白名单机制进行身份认证。 +- 在使用GetIP方式的时候,需要先收到一次请求才会获取代理,防止每次运行都浪费资金。 +- 语言配置逻辑更改,不再分为两个版本,通过config.ini文件中的语言配置参数进行显示。 +- 配置信息面板更新,不配置账号密码的情况下也能直接复制地址使用。 +- 新增docker方式部署。 + +### **2024/10/23** + +- 重构代码结构,将部分代码分割成单独文件。 +- 支持代理过程中,遇到代理服务器突然失效,自动请求更换新的代理服务器,并重置更换计时器。 + +### 2024/09/29 + +- 去除使用较少的单次循环,更换为自定义模式,可根据需求自定义更换代理的逻辑。 +- 对代理有效性检测修改为异步,提高速度。 +- 去除问题较多的 SOCKS4 协议的代理支持。 +- 对日志系统进行美化。 +- 改进异常处理逻辑。 +- 增加对代理格式的校验,确保格式正确。 + +### 2024/09/10 + +- 优化并发效率,支持在未收到响应包的情况下提前进行下一个请求,提高效率。 +- 增加负载均衡模式,该模式下将随机向代理地址发送请求,并利用并发代理的方式,提高请求效率。 +- 代理有效性检测修改为异步,提高效率。 + +### 2024/09/09 + +- 增加功能,可设置首次启动时是否对 `ip.txt` 中的代理地址进行有效性校验,并只使用有效的代理地址。 +- 函数降级,支持更低版本的 Python。 + +### 2024/09/03 + +- 增加本地 SOCKS5 监听,适配更多软件。 +- 部分函数更换,适配更低版本的 Python。 +- 美化回显内容。 + +### 2024/08/31 + +- 项目大结构调整。 +- 美化显示,持续提示下一次更换代理地址的时间。 +- 支持 `Ctrl+C` 停止运行。 +- 大幅度调整为异步请求,并发效率提升,实测 **1000** 并发,共 **5000** 包,丢包约 **50** 包,稳定性约 **99%**,**500** 并发无丢包。 +- 不再采取运行时指定参数方案,修改为从本地 `ini` 配置文件中读取,易用性更高。 +- 支持本地无认证,适配更多软件代理方式。 +- 增加版本检测功能,自动提示版本信息。 +- 增加代理服务器地址的身份鉴别功能,仅支持本地读取,因大多数 API 需白名单,未提供重复。 +- 增加功能,仅在收到新请求的情况下才使用 `getip` 更新,减少 IP 消耗。 +- 增加自识别代理服务器地址协议,以适配更多代理商。 +- 增加支持 HTTPS、SOCKS4 代理协议,目前已覆盖 HTTP、HTTPS、SOCKS5、SOCKS4 协议。 +- 修改 `asyncio.timeout()` 为 `asyncio.wait_for()`,适配更低的 Python 版本。 + +### 2024/08/25 + +- 读取 `ip.txt` 时自动跳过空行。 +- 将 `httpx` 更换为并发池,提高性能。 +- 增加缓冲字典,相同站点降低延迟。 +- 每次请求更换 IP 逻辑修改为随机选择代理。 +- 采用更高效的结构和算法,优化请求处理逻辑。 + +### 2024/08/24 + +- 采用异步方案提高并发能力和减少超时。 +- 重复代码封装,提高代码复用性。 + +### 2024/08/23 + +- 修改并发逻辑。 +- 增加身份鉴别功能。 +- 增加 IP 获取接口,永久更换 IP。 +- 增加每次请求更换 IP 功能。 \ No newline at end of file diff --git a/ProxyCat-Manual/排查手册.md b/ProxyCat-Manual/排查手册.md new file mode 100644 index 0000000..e69de29 diff --git a/ProxyCat-Manual/操作手册.md b/ProxyCat-Manual/操作手册.md index 5f4470f..42a4588 100644 --- a/ProxyCat-Manual/操作手册.md +++ b/ProxyCat-Manual/操作手册.md @@ -98,4 +98,4 @@ A:为了防止资源浪费,通过 getip 获取的情况一般是付费购买 Q:为什么我会遇到 XXX 报错?为什么不能用? -A:可先看《报错排查手册》,无法修复的情况下可以找作者询问,提问前请先支付50元作为时间的购买费用,如果您的问题属于百度可查或手册中有的,费用将不会返还;如果属于工具BUG或功能建议,费用将全额返还并将您列入本项目的感谢名单中。(实在是太多人多在问一些非常简单且写在帮助中的问题,时间被极大的浪费了,同时有很多态度非常恶劣的人,这不是我所想要的) \ No newline at end of file +A:可先看《排查手册》,无法修复的情况下可以找作者询问,提问前请先支付50元作为时间的购买费用,如果您的问题属于百度可查或手册中有的,费用将不会返还;如果属于工具BUG或功能建议,费用将全额返还并将您列入本项目的感谢名单中。(实在是太多人多在问一些非常简单且写在帮助中的问题,时间被极大的浪费了,同时有很多态度非常恶劣的人,这不是我所想要的) \ No newline at end of file diff --git a/README.md b/README.md index cb91760..69bdadb 100644 --- a/README.md +++ b/README.md @@ -11,18 +11,10 @@ - [开发缘由](#开发缘由) - [功能特点](#功能特点) - [安装与使用](#安装与使用) - - [依赖安装](#依赖安装) - - [运行工具](#运行工具) - - [手动录入代理地址](#iptxt-手动录入代理地址) - - [配置文件](#配置文件) - - [演示效果](#演示效果) - - [使用接口自动获取代理地址](#使用接口自动获取代理地址) -- [Docker方式部署](#Docker方式部署) -- [性能表现](#性能表现) - [免责申明](#免责申明) - [更新日志](#更新日志) - [开发计划](#开发计划) -- [鸣谢](#鸣谢) +- [特别鸣谢](#特别鸣谢) - [赞助开源](#赞助开源) - [代理推荐](#代理推荐) @@ -49,154 +41,13 @@ - **配置灵活**:通过 config.ini 文件自定义端口、模式和认证信息等。 - **版本检测**:自动检查软件更新,保证版本最新。 -## 安装与使用 +## 工具使用 -### 依赖安装 +[ProxyCat操作手册](.\ProxyCat-Manual\操作手册.md) -工具基于 Python 实现,建议使用 **Python 3.8** 以上版本。在使用前,请使用以下命令配置依赖: +## 报错排查 -```bash -pip install -r requirements.txt -# 或推荐使用国内源: -pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/ -``` - -### 运行工具 - -在项目目录下运行以下命令,查看帮助信息以确认配置成功: - -```bash -python3 ProxyCat.py -h -``` - -回显如下信息即表示配置成功: - -``` - |\ _,,,---,,_ 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` 文件中: - -```txt -socks5://127.0.0.1:7890 -https://127.0.0.1:7890 -http://127.0.0.1:7890 -... -``` - -> 如果您缺少合适的国内代理地址,且有几块钱预算,可以查看微信公众号:樱花庄的本间白猫。菜单页面长期更新,获取多家低价代理购买地址,为作者带来几毛钱的推荐收益~ - -### 配置文件 - -在 `config.ini`(或自定义配置文件)中配置参数: - -```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 - -# 获取新代理地址的URL -getip_url = http://example.com/getip - -# 代理地址列表文件(默认为:ip.txt) -proxy_file = ip.txt - -# 是否启用代理检测功能 True or False(默认为True) -check_proxies = True - -# 语言设置 (cn/en) -language = cn - -# IP白名单文件路径(留空则不启用白名单) -whitelist_file = whitelist.txt - -# IP黑名单文件路径(留空则不启用黑名单) -blacklist_file = blacklist.txt - -# IP认证优先级(whitelist/blacklist) -# whitelist: 优先判断白名单,在白名单中的IP直接放行 -# blacklist: 优先判断黑名单,在黑名单中的IP直接拒绝 -ip_auth_priority = whitelist -``` - -配置对应参数后即可使用: - -```bash -python3 ProxyCat.py -``` - -### 演示效果 - -**固定代理地址(默认)**: - -``` -http://neko:123456@127.0.0.1:1080 -http://127.0.0.1:1080 -socks5://neko:123456@127.0.0.1:1080 -socks5://127.0.0.1:1080 -``` - -如果您是部署在公网,将 `127.0.0.1` 替换为您的公网IP即可。 - -![主界面图](./assets/主界面图.png) - -### 使用接口自动获取代理地址 - -工具支持直接调用代理地址获取的API接口。当您配置 `use_getip = True` 时,工具将不再从本地 `ip.txt` 中读取代理地址,而是通过执行 **getip.py** 脚本来获取新的代理地址(请确保您的IP已加白名单,并且格式为IP:端口,每次只能使用一个代理地址)。 - -此时,您需要保证 **getip.py** 获取到的地址信息格式为 `IP:PORT`。默认为 `socks5` 协议,如需使用 `http`,请手动更改。 - -## Docker方式部署 - -请提前安装好Docker和Docker-compose,具体安装方法可自行百度查询。 - -``` -# 拉取项目源码到本地 -git clone https://github.com/honmashironeko/ProxyCat.git - -# 修改config文件夹中的config.ini中的内容 - -# 进入ProxyCat文件夹中并构建镜像和启动容器 -docker-compose up -d --build - -# 停止服务和启动服务(每次修改完配置后需要重启服务) -docker-compose down | docker-compose up -d - -# 查看日志信息 -docker logs proxycat -``` - -## 性能表现 - -经过实际测试,在代理地址服务器性能充足的情况下,ProxyCat 能够处理 **1000** 并发连接且不丢包,基本可以覆盖大部分扫描和渗透测试需求。 - -![性能测试图](./assets/性能测试图.png) +[ProxyCat排查手册]() ## 免责申明 @@ -209,113 +60,19 @@ docker logs proxycat ## 更新日志 -### 2025/01/07 - -- 引入连接池机制提高性能。 -- 优化部分错误处理和日志记录。 -- 代理切换机制优化。 - -### 2025/01/03 - -- 集中配置参数到配置文件中管理,提升维护便利。 -- 修复部分已知BUG,并提升稳定性和并发能力。 - -### 2025/01/02 - -- 重构软件结构,更加整洁易用。 -- 新增支持黑白名单机制进行身份认证。 -- 在使用GetIP方式的时候,需要先收到一次请求才会获取代理,防止每次运行都浪费资金。 -- 语言配置逻辑更改,不再分为两个版本,通过config.ini文件中的语言配置参数进行显示。 -- 配置信息面板更新,不配置账号密码的情况下也能直接复制地址使用。 -- 新增docker方式部署。 - -### **2024/10/23** - -- 重构代码结构,将部分代码分割成单独文件。 -- 支持代理过程中,遇到代理服务器突然失效,自动请求更换新的代理服务器,并重置更换计时器。 - -### 2024/09/29 - -- 去除使用较少的单次循环,更换为自定义模式,可根据需求自定义更换代理的逻辑。 -- 对代理有效性检测修改为异步,提高速度。 -- 去除问题较多的 SOCKS4 协议的代理支持。 -- 对日志系统进行美化。 -- 改进异常处理逻辑。 -- 增加对代理格式的校验,确保格式正确。 - -### 2024/09/10 - -- 优化并发效率,支持在未收到响应包的情况下提前进行下一个请求,提高效率。 -- 增加负载均衡模式,该模式下将随机向代理地址发送请求,并利用并发代理的方式,提高请求效率。 -- 代理有效性检测修改为异步,提高效率。 - -### 2024/09/09 - -- 增加功能,可设置首次启动时是否对 `ip.txt` 中的代理地址进行有效性校验,并只使用有效的代理地址。 -- 函数降级,支持更低版本的 Python。 - -### 2024/09/03 - -- 增加本地 SOCKS5 监听,适配更多软件。 -- 部分函数更换,适配更低版本的 Python。 -- 美化回显内容。 - -### 2024/08/31 - -- 项目大结构调整。 -- 美化显示,持续提示下一次更换代理地址的时间。 -- 支持 `Ctrl+C` 停止运行。 -- 大幅度调整为异步请求,并发效率提升,实测 **1000** 并发,共 **5000** 包,丢包约 **50** 包,稳定性约 **99%**,**500** 并发无丢包。 -- 不再采取运行时指定参数方案,修改为从本地 `ini` 配置文件中读取,易用性更高。 -- 支持本地无认证,适配更多软件代理方式。 -- 增加版本检测功能,自动提示版本信息。 -- 增加代理服务器地址的身份鉴别功能,仅支持本地读取,因大多数 API 需白名单,未提供重复。 -- 增加功能,仅在收到新请求的情况下才使用 `getip` 更新,减少 IP 消耗。 -- 增加自识别代理服务器地址协议,以适配更多代理商。 -- 增加支持 HTTPS、SOCKS4 代理协议,目前已覆盖 HTTP、HTTPS、SOCKS5、SOCKS4 协议。 -- 修改 `asyncio.timeout()` 为 `asyncio.wait_for()`,适配更低的 Python 版本。 - -### 2024/08/25 - -- 读取 `ip.txt` 时自动跳过空行。 -- 将 `httpx` 更换为并发池,提高性能。 -- 增加缓冲字典,相同站点降低延迟。 -- 每次请求更换 IP 逻辑修改为随机选择代理。 -- 采用更高效的结构和算法,优化请求处理逻辑。 - -### 2024/08/24 - -- 采用异步方案提高并发能力和减少超时。 -- 重复代码封装,提高代码复用性。 - -### 2024/08/23 - -- 修改并发逻辑。 -- 增加身份鉴别功能。 -- 增加 IP 获取接口,永久更换 IP。 -- 增加每次请求更换 IP 功能。 +[更新日志记录]() ## 开发计划 -- [x] 增加本地服务器身份鉴别功能,保证在公网使用过程中不被恶意盗用。 -- [x] 增加每次请求更换 IP 功能。 -- [x] 增加静态代理自动获取更新模块,从而永久运行。 -- [x] 增加负载均衡模式,同时使用大量代理地址发送,提高并发效率,减少单一服务器负载。 -- [x] 增加版本检测功能。 -- [x] 增加代理地址身份鉴别支持。 -- [x] 增加功能,仅在收到新请求的情况下才使用 `getip` 更新,减少 IP 消耗。 -- [x] 首次启动时批量对 `ip.txt` 中的代理服务器进行有效性检查。 -- [x] 增加本地监听 SOCKS 协议,或全面改成 SOCKS,以适配更多软件。 - [ ] 增加详细日志记录,记录所有连接 ProxyCat 的 IP 身份,支持多用户。 - [ ] 增加Web UI,提供更加强大易用的界面。 -- [x] 增加docker一键部署,简单易用。 - [ ] 开发 babycat 模块,可将 babycat 在任意服务器或主机上运行,即可变成一台代理服务器。 如果您有好的创意,或在使用过程中遇到bug,请通过以下方式联系作者反馈! 微信公众号:**樱花庄的本间白猫** -## 鸣谢 +## 特别鸣谢 本排名不分先后,感谢为本项目提供帮助的师傅们。 @@ -326,8 +83,6 @@ docker logs proxycat - qianzai(千载) - ziwindlu -![Star History Chart](https://api.star-history.com/svg?repos=honmashironeko/ProxyCat&type=Date) - ## 赞助开源 开源不易,如果您觉得工具不错,或许可以试着赞助一下作者的开发哦~ @@ -340,3 +95,4 @@ docker logs proxycat - [各大运营商流量卡](https://172.lot-ml.com/ProductEn/Index/0b7c9adef5e9648f) - [国外匿名代理](https://www.ipmart.io?source=Shironeko) +![Star History Chart](https://api.star-history.com/svg?repos=honmashironeko/ProxyCat&type=Date)