Files
ProxyCat/ProxyCat-Manual/logs.md
T
2026-10-06 18:54:03 +08:00

29 KiB
Raw Blame History

返回 README

2026/10/05(ProxyCat V3.0.0)

新增功能

  • 上游取代理的接口凭据改由面板管理:可保存、删除多套命名凭据(接口地址 + 账号密码),随时切换当前启用的那一套;切换后立即写入配置并对运行中的服务生效,换代理商接口不用再手改 config.ini(凭据存于 [api_credentials] 段)
  • 新增「代理绕过白名单」:命中的目标域名/IP 直接由本机发出、不经过上游代理(HTTP 与 SOCKS5 都生效),支持 *.baidu.com、192.168.1.* 这类通配符;名单存 config/bypass_whitelist.txt,面板「访问控制」页可直接编辑
  • 「运行日志 → 访问」新增「逐条明细」视图:每次代理请求可按时间范围与条件筛选、分页、导出 CSV/JSON(CSV 带 BOM,Windows 版 Excel 打开不乱码)、清空,记录落 SQLite 重启不丢;保留天数(默认 7 天)、行数上限(默认 20 万)与内存缓冲可配置,热路径只写内存、后台每 5 秒批量落库,与按代理汇总的访问统计互不影响
  • 归属地解析改为本地离线库:GeoLite2(全球,ISO 代码 + 中英名)与纯真库(中国省市 + 运营商),不再调用在线归属地接口;面板「代理池 → 数据库 → 归属地库」显示数据文件清单与待重算条数,可「更新归属地库」(约 104MB,按需下载)与「重算归属地」;库不可用时归属地为空,不回落在线查询
  • 归属地双语:中英两套名称按界面语言显示,另一套进 tooltip,按地区排序也跟随界面语言;译名缺失时标注「原文」并可重算
  • 新增命令面板与全局快捷键:Ctrl/⌘+K 打开可搜索的命令面板(视图跳转、启停服务、刷新出口、批量校验、导入导出、切主题切语言等);1–4 切视图、r 刷新、/ 聚焦搜索、? 快捷键说明;表格里 ↑/↓ 漫游、空格选中、Shift 扩选,输入态自动让路
  • 批量任务进度与取消:导入、批量验证、插件抓取等长任务进入「后台任务」,按当前阶段(初筛端口连通性 / 验证代理)显示进度、速率、预计剩余时间与分类计数(入库/不可用/初筛淘汰/失败),运行中的任务可一键取消(状态显示「已取消」)
  • 新增版本检查模块:启动时查一次、之后每 24 小时一次,检查时间落盘,24 小时内重启不会重复检查(对外最多 24 小时发一次请求);面板的版本接口只读缓存结果,打开面板不会因等网络而卡住;检查失败保留上一次成功拿到的版本
  • 版本检查改从 GitHub 仓库的发布记录取版本号:并发请求官方 releases.atom、gh-proxy 镜像与官方 API 三个地址,谁先返回可用的版本号就用谁,被墙或超时的地址不拖慢整体,全失败约 8 秒返回;新增 version_check_url 配置项,留空用内置三源,填入后只用该地址(可指向自有镜像),保存时校验必须是 http/https 完整地址
  • 面板新增推广/公告位:把 JSON(标题、正文、图片、链接、停留时长)放进 config/ads/ 即可展示,用户可一键关闭,也能从侧栏重新打开(关闭状态不落盘,重启后恢复显示)

界面与交互

  • 侧边栏版本号旁新增「立即检查更新」按钮:点击强制立即检查一次(不受 24 小时限制),按钮转圈期间禁用,结果显示在原处——成功显示「已是最新版本」或「新版本: xxx」(版本号可点击跳转 GitHub Releases 页面),失败显示具体原因(悬停可看全文),不再像以前那样只在成功时才有反馈
  • 面板从横排页签改为左侧固定侧边栏的四个区:代理配置、代理池、访问控制、运行日志;代理池下再分「代理管理 / 池设置 / 数据库维护」三个子视图;服务与池的启停状态常驻侧栏,中英文文案一并补齐
  • 代理配置页重排为分组卡片(来源、监听端口、出口轮换、可用性检测、性能与并发、日志与记录、高级),每项「短标题 + 一行提示 + ⓘ 全文」;数值输入的上下限随服务端 schema 下发;代理认证并为一行「用户名:密码」,填了用户名却没有冒号时会明确提示这样不会启用认证
  • 参数呈现与保存栏:计量单位移到输入框右侧、标题只留短名;保存栏未改动时置灰、新增「放弃修改」、干净态显示「已保存」回执、吸底时带阴影;切语言即时刷新表单
  • 新增深色主题:浅色/深色两档,未手动切换过时跟随系统深色偏好,切换后记住选择;原生下拉与滚动条随主题渲染(color-scheme),深色用户打开页面不再先闪一帧白底;配色按对比度标准重做,深色下正文、按钮与彩色文字全部达标
  • 日志与访问页增强:日志分类标签带数量角标、行尾悬停复制、清空搜索;访问明细的状态码按 2xx/3xx/4xx/5xx 着色;行详情抽屉按「连接 / 质量 / 时间」分段并本地化时间戳;表格右键菜单可复制地址、复制为 curl 命令
  • 失效代理可见性:失效行整行压淡并挂「失效」徽章与原因提示;池概览的失效卡按实际数量着色(失效数为 0 时不再顶着红字)
  • 出口 IP 与入口不同(代理中间还转了一手)时,列表里以警示色轻提示;IPv6 的多种合法写法不会被误判为不同
  • 表格列宽可拖拽调整并记住(下次打开保持),另加「重置列宽」按钮
  • 导入导出交互:导出弹窗三种格式选项卡(txt/json/csv)并显示将导出条数;导入框实时计数
  • 控件与样式统一:删除/批量等危险操作改用自绘确认框(替换浏览器原生 confirm)、Esc 优先关闭已打开的浮层;下拉框自绘箭头、深色下弹层不再白底黑字、拨动开关加大;通知提示加图标并可点击关闭;页头常驻的版本号改为取接口真实值
  • 面板移除 Bootstrap 与外部 JS 脚本,改用自绘样式与系统字体栈(中文回退补齐)
  • 池未运行时面板不再空刷池接口,加载失败会给提示而不是显示成「没有数据」
  • 国际化补全:池设置表单切语言即时刷新、配置校验错误用界面语言返回、设置项说明中英双语(config.ini 内固定中文)、动态内容随语言重渲染

代理池

  • 内置代理池从「随包附带、单独启动的程序」变成 ProxyCat 进程内的子系统:不再占 8000 端口、不再由面板拉起子进程,与面板共用同一个 Web 端口,管理入口从「打开池自己的页面」换成面板的「代理池」页签;池的取用与管理接口统一挂到面板端口下的 /api/pool/*(仍受 token 保护)。池配置从 modules/proxypool/config.yaml 迁进 config/config.ini 的 [Pool] 段,首次启动自动搬运旧设置(原文件改名 config.yaml.migrated),面板与配置文件改的是同一份设置
  • 上游出口池:不再一次只用一个上游代理,而是同时维持多个出口(默认 10 个),按实时负载把请求摊到各出口,每个出口有独立并发额度与连接上限;每个出口有自己的寿命——按秒的 interval(默认 60 秒)与按分配次数的 request_interval 两条规则各自独立、同时生效,谁先到谁换;出口故障按最近 10 次结果的失败占比淘汰而不是连续失败次数——连续计数会被一次偶发成功清零,占比则如实反映最近一段时间的失败水平;失效的出口单独补上、不整批替换,候补并发校验后逐槽填满;一个可用出口都没有时请求排队等待(默认 30 秒)再回 503;面板状态卡逐个列出出口及其剩余寿命,原「手动切换」按钮改为「刷新出口」。运行模式按来源分组——local 用 cycle/loadbalance(挑选出口),api/pool 用 continuous(持续更换)/request(触发更换,出厂值;闲时到期的出口直接移除、池子会空),换来源时自动归一到该组默认值
  • 出口池弹性扩容:监听端并发顶到当前容量时立刻把出口数翻倍并一次补齐(上限 2 倍),后台再按「顶到单出口额度的出口占比」兜底逐格加;停止扩容后多出来的出口用满自己的寿命才逐个撤下,不会刚取回来就丢
  • 代理池管理台并入面板:代理列表可按协议、归属地、健康分、匿名度筛选与排序,勾选批量验证/批量删除、收藏、导入导出;插件列表可启停、调抓取周期、立即执行、热重载;数据库可备份、恢复、优化,长任务进入「后台任务」并支持取消
  • 池里的代理升级出质量画像:0-100 健康分(延迟 25%、成功率 25%、稳定性 15%、可用时长 15%、匿名度 10%、存活时长 10% 加权;成功率取 Wilson 置信下界,新代理不会因一两次偶然失败被大幅拉低)、匿名度等级(透明/匿名/高匿)、平均延迟与波动、HTTPS 支持探测;健康分用于排序、筛选与自动清理,取用接口可带 min_health_score 只要高分代理,面板展示有效/失效数与匿名度兜底提示
  • 使用反馈闭环:运行期真实转发发现的坏出口,经独立探测确认后回报给池,池内连续失败达到 use_feedback.invalid_threshold(默认 3 次)就标记失效、列入下一轮自动重验证,测通后自动恢复;反馈只改「是否可用」与检查计数、不碰健康分——检测分不清「代理坏了」和「本机网络抖动」,不该让偶发失败不可逆地删掉一个好代理
  • 出口 IP 与匿名度的探测增强:网关型出口经它探测一次真实出口 IP 再记账(仅 API 来源,每个地址多消耗一次代理流量);匿名度可关(check_anonymity);本机出口 IP 可手填以完全免掉自动探测那次对外请求(host_public_ip,双栈可各填一条);可补充代理够得到的明文回显接口(plain_identity_echo_apis),改善匿名度总被判成兜底档的情况
  • 插件验证策略:每个插件可单独设置是否参与自动重验证、重验证周期,以及入库时是否跳过验证(面向按请求计费、供应商保证有效性的代理源;跳过的记录没有出口 IP、匿名度、延迟与健康分)
  • 插件测试地址:每个插件可单独指定存活检测用的地址,留空时继承全局 test_url,面板上直接显示当前用的是「全局」还是「已指定」
  • 池取用接口 /random 新增按健康分、匿名度、是否收藏、是否支持 HTTPS 与 IP 筛选;原 /best「最优推荐」接口移除,能力并入 /random
  • 批量验证分档:「验证有效性」只做轻量存活检测,「验证全部内容」做完整质量评估;匿名度拿不到回显证据时按透明兜底并明确标注为「推算的」,勾选后可重测
  • 导入流程简化:去掉「导入后自动验证」「自动查询归属地」两个开关,导入的代理一律先逐个验证、只有确认可用的才入库,避免池里混进未验证记录;归属地在入库后自动异步查询
  • 抓取插件瘦身:移除「代理获取1」、OpenProxy、ProxyScrape、PubProxy、Spys.me、free_proxy_list 六个过时插件,只保留 GeoNode 与 GitHub
  • 插件调度修复:执行失败也推进下次运行时间(此前永久失败的插件会被调度器每轮反复抓起来重试);重载失败时把半初始化的模块从 sys.modules 摘掉;插件模块改用 plugin. 前缀注册,避免插件顶掉同名的标准库或主程序模块
  • 池来源的切换优化:不再受切换冷却限制、跳过冗余的 TCP 预检(池内代理已经过验证),面板手动切换时会显示「切换中…」(新状态卡上线后该按钮改称「刷新出口」)

修复

  • 修复自动重验证对每一条代理都失败:auto_revalidator 用了未导入的常量,NameError 被 except 吞成一条警告,验证结果永远写不回池子;同类问题(异常分支里的 logger 未定义)一并修掉
  • 修复主机出口 IP 判定:IPv4 与 IPv6 各探一次(此前取第一个应答的端点,缓存下的地址族会漂移,导致透明代理被误判成匿名);validator.host_public_ip 也支持最多填两条
  • 修复域名统计:开关/落库间隔/保留期保存后即时生效;清空之后正在落库的那批增量会被作废,不会「清了又长回来」;保留期清理不再误删仍在被访问的组合
  • 修复隧道失败归因:直连(绕过代理)请求不再被记成代理的故障;新增「上游未发送任何数据即关闭连接」这一中断原因,不再与客户端主动断开混为一谈
  • 修复去重缓存幽灵键:清理失效代理时同步移除去重缓存,修掉「插件一直在抓、去重后 0 个新代理」;批量写库整批失败改为逐条降级,只丢弃真正写不进去的行并逐条记名,丢弃条数有准确计数
  • 数据库恢复改为「先写临时文件再原子替换」并清掉旧库的 WAL 边车文件,避免恢复中途失败留下半个库、或旧 WAL 把已删除的行带回来
  • 匿名度与 HTTPS 能力检测改为校验证书:不可信的第三方代理无法再靠伪造回显把自己打成高匿/支持 HTTPS(这两项直接参与健康分)
  • 验证前先确认测试地址直连可达:本机断网或目标站被墙时不再把连不上算成代理失败
  • 池配置热更新两处修复:[Pool] 段读不出来时保持当前配置、下轮再试,不再静默套用一整套出厂默认值;池日志的文件路径、单文件大小、保留份数改完即时生效(此前挂过一次 handler 就永远不重挂,是死配置)
  • 池停止与重启保护:上一次停止未完成(线程仍活)时拒绝再次启动,避免两个池实例共用同一个数据库;退出路径的判据改用「线程是否存活」,停止失败后仍会重试、最后一批数据不会丢
  • API 错误反馈:参数不合法返回 400 并带可读原因(此前多数报 500),写队列满返回 503 queue_full
  • 静态资源改为协商缓存:改完 CSS/JS 刷新页面即生效,不用再 Ctrl+F5
  • Ctrl+C 与终止信号会先清理连接与后台线程、排空日志与写队列再退出,跨平台行为一致(Windows 仅 SIGINT,非 Windows 另注册 SIGTERM),并留 3 秒硬超时兜底
  • 复制按钮增加回退方案:Clipboard API 不可用时改用 textarea + execCommand,非 HTTPS(按 IP:端口 访问面板)与旧浏览器下也能复制

性能与稳定性

  • 生产启动改用 waitress 替代 Flask 内置开发服务器(未安装时自动回退),并发与稳定性更好
  • 监听连接改由独立线程 accept:Windows 实测接受速率从约 825 连接/秒提升到 3000+ 连接/秒,客户端在 accept 完成前断开也不再导致监听套接字失效
  • 日志文件写入改为异步队列(每条日志的同步写会吃掉短请求 4%–10% 的吞吐;内存环与控制台仍同步,面板实时性不变);高频故障告警按窗口折叠加计数,高并发下同一句话不再刷屏(折叠只发生在日志层,出口的失败记账与调度不受影响)
  • 池的写入链路重构:新增 SQLite 异步连接池(WAL、读写分离)与代理去重内存缓存(去重查询从全表扫描降为 O(1),并修正只按 IP、不按 ip:port 去重的缺陷);抓取请求改用 aiohttp;验证结果与访问记录改为「内存缓冲 + 后台批量落库」,不再逐条争抢 SQLite
  • 验证提速:连接超时单独设(默认 2 秒,黑洞代理更快失败)、整波验证用墙钟预算(默认 8 秒)、按本机直连耗时自适应单次超时、并发默认提到 400、检测端点直连预筛并按延迟竞速(可用端点不再按 3 个截断)
  • 稳定性修复:连接池事务回滚覆盖任务取消(CancelledError),避免半截事务被下一个操作提交;写队列排空加 15 秒上限,不再把池的停止拖过宿主超时;请求体分块读取加超时;写出成功响应时客户端断开不再记成代理故障、也不会给客户端发两份响应
  • 抓取与验证会话带浏览器 User-Agent,公共代理列表站点(多在 Cloudflare 后)不再直接 403;本机连接池排队超时不再被误判成「代理慢」,排队拥堵有日志(按窗口折叠)
  • Windows 事件循环关闭噪声抑制:对端 RST 产生的「关闭已完成之后」的假错误不再刷 error.log

部署与配置

  • 配置体系重构:config.ini 从 23 个键扩到 93 个键、四个配置段([Server] / [Users] / [api_credentials] / [Pool]),面板按用途分组呈现全部配置,调优参数收进「高级选项」;旧版本配置可直接沿用
  • 代理有效性检测拆成两个独立开关:「启动时批量检测」与「使用时校验」,可分别关闭;旧的 check_proxies 键仍作为启动检测的兼容回退
  • Docker 部署增强:改用 slim 基础镜像并以非 root 用户运行,PUID/PGID 与宿主挂载目录属主对齐(属主不匹配时池建不了库、面板存不了配置);健康检查按 config.ini 里实际的 web_port 探测(改过端口不再误判 unhealthy);stop_grace_period 60 秒保证应用把写队列与落库线程收尾完再退;另装 tzdata 让 TZ 时区设置真正生效;构建不再强制国内 pip 镜像
  • 部署面收敛:默认面板端口从 5000 改为 5001,代理池不再占第二个端口,一个容器只暴露 1080(代理监听)与 5001(面板)
  • 配置读写链路:Web 面板模式下手改 config.ini 也会被按秒热重载,改完不用重启;config.ini 与三份名单文件改为原子写(写临时文件再替换),读者不会再读到写了一半的内容
  • 废弃配置键自动清理:启动/保存时清除 [Server] 的 check_proxies、getip_url、pool_autostart、pool_port、pool_proxy_url、pool_web_url、pool_proxy_count,以及 [Pool] 的 validator.max_ip_retries、geoip.*、plugins.auto_validate_on_fetch 等已无消费方的键
  • 新装默认值调整:运行模式默认 request(触发更换)、出口寿命 60 秒、出口池容量 10、单出口并发默认不限、并发验证 400、同时处理请求上限 3000、无可用出口排队 30 秒,检测冷却与缓存时间下调;代理来源出厂仍为 pool
  • 面板不再展示可由其它项推算的参数(连接池上限、空闲回收、最大客户端数等,旧配置里调大过的值仍兼容生效);新增的域名统计、访问记录、日志大小/份数、隧道超时、使用期反馈等参数全部写进 config.ini 并附说明,设置项说明与 config.ini 注释同源
  • 交付的 config.ini 清掉维护者个人的 API 取代理地址与已保存凭据(api_proxy_url、credential_sets、active_credential 置空),发布配置不再携带私有 key
  • 导出 CSV 带 UTF-8 BOM,Windows 版 Excel 直接打开不乱码;Windows 控制台编码问题不再让程序崩溃;配置读取容忍 BOM 与本地编码回退
  • 新增根目录 API.md(2009 行):把面板 /api/* 与代理池 /api/pool/* 的参数、响应示例与错误码整理成完整接口文档,供外部程序直接对接

2026/09/14

  • 移除 [Pool] enabled,代理池改为按需启动:代理来源为「维护池」且未配置远程池地址时才随服务启动,用本地文件或 API 取代理时不再白耗资源去抓取和验证。运行期把来源切成「维护池」时会自动把池拉起来(否则会得到一个「没有池的池模式」);反向不自动停,避免误停正在提供代理的池。原开关的说明写着「关闭后代理来源无法选择维护池」,但代码里从来没有这条限制;它又只影响下次启动、在面板里改完当前运行中的池不会停,看起来就像没生效。旧配置里的这个键会在首次启动时自动清除
  • 修复明文 HTTP(非 CONNECT)转发一直不可用:依赖缺 httpx 的 socks extra,上游为 socks5 时请求一律 502,且不留任何日志
  • 修复转发请求体时的判定:此前无条件把客户端连接当作请求体流,没有请求体的 GET 会让代理与客户端互等到超时;现在按 Content-Length / Transfer-Encoding 决定读取长度,分块请求体会先解块再转发
  • 修复命令行的启动批量检测在检测出有效代理时崩溃:ProxyCat.py 缺少 from itertools import cycle 导入
  • 重构日志系统:日志按用途分流到 logs/main.log、logs/access.log、logs/proxy.log、logs/error.log,各自按大小轮转(原先全部混写在无轮转的 proxycat.log)
  • 新增访问日志:记录每个代理请求的时间、客户端(IP 与认证账号)、使用的上游代理地址、目标域名、成功或失败、耗时与失败原因;上游代理的密码以 *** 脱敏
  • 新增访问统计:按「域名 × 上游代理」累计成功/失败次数、首末访问时间与最后失败原因,落 SQLite 持久化,重启后仍可查历史
  • 访问统计表按上游代理汇总,展开某个代理即可看到它访问过的域名明细;表格并入「运行日志」页的「访问」类别,不再单列一块统计面板
  • 新增「运行日志」页的分类标签、历史轮转文件浏览、自动刷新暂停开关与域名统计表
  • 修复「重要」筛选恒为空的错误(IMPORTANT 此前被当作日志级别名做等值匹配)
  • 修复日志面板只显示最旧 100 条、看不到新日志的错误
  • 修复日志消息未转义导致的面板注入风险
  • 修复坏代理不会被换掉的问题:上游收下 CONNECT 后既不回数据也不报错(装死,或读走客户端数据后直接断开)时,旧实现等不到任何失败信号 —— 不触发代理故障处理就永远不会做健康检查,于是这个代理一直留在轮换里被反复选中,表现为「每次都卡在同一个坏代理上」。现在按「隧道已建立、客户端发过数据、上游一个字节都没回」判定,超时立即收掉隧道并上报故障
  • 新增 [Server] tunnel_idle_timeout(默认 10 秒):隧道建立且客户端发过数据后,上游多久不回数据就判定这条隧道已死。0 表示不判超时
  • 修复隧道类请求(CONNECT / SOCKS5)的成功判据:此前「写回 200 Connection Established」就算成功,而上游收下 CONNECT 却不回数据的代理很常见,于是出现「日志说成功、curl 报 SSL/TLS handshake failed」的矛盾。现在要等上游确实有数据回到客户端才算成功,否则按「客户端是否发过数据」判为失败或中断
  • 访问日志新增「[中断]」结果:客户端连上却没发数据就断开(探活、端口扫描)既不算成功也不算失败,不计入成功率与失败率
  • 修复 Web 面板在窄窗口下日志级别标签被压到裁字的问题(min-width: 0 取消了 flex 项不得窄于内容的保护)
  • 修复运行日志页签渲染在卡片容器之外的问题(「访问控制」页签末尾多了一个 </div>,提前关闭了 .tab-wrap)
  • 修复清除日志后日志文件产生 NUL 空洞的错误(改用 handler 自身的流截断)
  • 修复 [Server] log_level 为死配置的错误:此前可校验可保存但运行期不生效,现真实作用于日志输出并支持面板保存后即时生效

2025/03/23

  • 修复负载均衡模式无法调用的BUG
  • 修复socks5连接错误
  • 修复http、socks5监听下的目标网站错误和代理地址失效情况一致导致无法正常触发代理切换
  • 修改代理有效性校验,配置为可控检测,关闭后将不会进行有效性检查避免特殊情况一直切换
  • 修复并发下导致大规模触发更换和提示的问题,锁定操作的原子性
  • 修复大量细节逻辑、描述错误
  • 当前代理切换触发条件为:时间间隔到期切换、代理失效自动切换、Web手动切换、API下首次请求自动获取

2025/03/17

  • 修复目标站点本身错误时会触发代理切换的错误逻辑
  • 修改连接关闭方式
  • 优化监听服务器性能
  • 修复多处错误BUG

2025/03/14

  • 修复'_last_used'报错问题,连接关闭方式修正
  • 修复本地代理读取时切换逻辑失效问题
  • 增加切换时间间隔设置为0时进入每次请求都更换IP

2025/03/03

  • 美化 Web管理界面
  • 修复大量 BUG
  • 添加更多处理小脚本辅助使用

2025/02/21

  • 增加 Web 管理界面

  • 增加多用户模式

  • 代码结构大改

  • config.ini及相关文件动态更新不需要重启

  • 增加日志显示级别控制

  • 增加记录连接人信息日志,包括连接的IP和使用的账号密码

  • 以及其他乱七八糟的修改,这次大版本更新改的太多,我有点忘记了~

2025/02/06

  • Docker 安装依赖库采用国内源
  • 增加Getip方式下主动提示:当前为API模式,收到请求将自动获取代理地址
  • 修改加白方式,自动根据请求结果加白

2025/01/14

  • 增加 getip 方式下自动添加白名单机制。
  • 支持带有账号密码的本地读取、getip获取、有效性校验的代理地址。
  • 整理代码结构,合并一些代码、删除一些多余代码。

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 功能。