Skip to content

LeilaoMi/AutoMergePublicNodes-Optimized

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

515 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AutoMergePublicNodes-Optimized

License: MIT Python 节点更新

自动聚合公开代理订阅源,使用 sing-box 真实代理测试,输出可直接导入主流客户端的订阅文件,并提供零服务器成本的浏览器端动态订阅网关。 仅供学习研究。公开节点稳定性不可控,请自行评估可用性与合规风险。


🌟 核心特性

  • ⚡ 两阶段测活:先用 100 并发轻量探活(只测 204)快速筛掉不可达节点,再对剩余节点做完整真测,总耗时从 60+ 分钟降到 ~8 分钟。
  • 🎯 7 因子加权评分:延迟、抖动、TCP、下载速度、指纹抗检测、协议历史、来源历史。REALITY/uTLS 优先,443 端口加成,跨周期稳定节点加分。
  • 🔒 SSRF 防投毒:拦截指向私有地址与云元数据端点(如 169.254.169.254)的恶意节点,保护 CI 运行环境。
  • 📈 节点稳定性追踪:跨周期连续真测通过的节点获评分加成,历史稳定的老节点优先排在前面。
  • 🌐 动态订阅网关:GitHub Pages 浏览器端实时筛选,多 CDN 故障转移,本地测速,一键导出 Clash / Base64 / sing-box JSON。

🚀 动态订阅网关 (推荐)

访问项目的 GitHub Pages 站点,在浏览器端实时过滤并生成专属订阅链接: 👉 点击进入动态网关

订阅网关

  • 按地区、协议、关键词实时筛选全量节点池
  • 多 CDN 自动故障转移(jsDelivr → Statically → GitHub Raw),单源挂了也能用
  • 浏览器端测速:对筛选结果并发 TCP 连通性测试,标红超时节点,超时阈值可调
  • 一键下载 Clash YAML(含多分组策略)/ Base64 通用订阅 / sing-box JSON / 复制专属订阅链接
  • 计算全在本地,保护隐私,零服务器开销

订阅源健康面板

👉 订阅源健康

  • 订阅源抓取状态总览(健康 / 失效 / 自动禁用计数)
  • 趋势图:30 轮运行漏斗(原始节点 → 去重 → TCP → 真测 → Verified)
  • 死源清单:连续死亡计数、抓取错误、抓取耗时
  • 源贡献排行:按解析节点数排序,识别高价值源

支持条件:地区 (如 HK,JP)、协议 (如 vless,trojan)。


快速选择

使用场景 推荐文件 说明
Clash / Mihomo output/verified.yaml 首选,真测通过后输出
v2rayN / v2rayNG output/verified.txt base64 通用订阅
Karing / sing-box output/verified.json sing-box JSON 配置
兼顾数量 output/global.yaml / output/global.txt / output/global.json 海外测试通过,但国内站点连通不一定稳定
自行测速 output/all.urls / output/all.txt / output/all.yaml 全量去重候选池,不保证可用
查看状态 output/daily_report.md / output/health_report.md / output/health_report.json / output/source_scores.md / output/scoring_profiles.md / output/source_cleanup_suggestions.md 日报、健康报告、评分模板、源评分、清理建议

verified.* 数量不是固定值。--top-n 只是上限,实际数量取决于本轮真测结果。


订阅地址

GitHub Raw

https://raw.githubusercontent.com/LeilaoMi/AutoMergePublicNodes-Optimized/main/output/verified.txt
https://raw.githubusercontent.com/LeilaoMi/AutoMergePublicNodes-Optimized/main/output/verified.yaml
https://raw.githubusercontent.com/LeilaoMi/AutoMergePublicNodes-Optimized/main/output/verified.json
https://raw.githubusercontent.com/LeilaoMi/AutoMergePublicNodes-Optimized/main/output/global.txt
https://raw.githubusercontent.com/LeilaoMi/AutoMergePublicNodes-Optimized/main/output/global.yaml
https://raw.githubusercontent.com/LeilaoMi/AutoMergePublicNodes-Optimized/main/output/global.json
https://raw.githubusercontent.com/LeilaoMi/AutoMergePublicNodes-Optimized/main/output/all.txt
https://raw.githubusercontent.com/LeilaoMi/AutoMergePublicNodes-Optimized/main/output/all.yaml

jsDelivr

https://cdn.jsdelivr.net/gh/LeilaoMi/AutoMergePublicNodes-Optimized@main/output/verified.txt
https://cdn.jsdelivr.net/gh/LeilaoMi/AutoMergePublicNodes-Optimized@main/output/verified.yaml
https://cdn.jsdelivr.net/gh/LeilaoMi/AutoMergePublicNodes-Optimized@main/output/verified.json
https://cdn.jsdelivr.net/gh/LeilaoMi/AutoMergePublicNodes-Optimized@main/output/global.txt
https://cdn.jsdelivr.net/gh/LeilaoMi/AutoMergePublicNodes-Optimized@main/output/global.yaml
https://cdn.jsdelivr.net/gh/LeilaoMi/AutoMergePublicNodes-Optimized@main/output/global.json
https://cdn.jsdelivr.net/gh/LeilaoMi/AutoMergePublicNodes-Optimized@main/output/all.txt
https://cdn.jsdelivr.net/gh/LeilaoMi/AutoMergePublicNodes-Optimized@main/output/all.yaml

转换链接见 output/*.converter.md。第三方转换服务可能不可用或记录订阅地址,优先使用本仓库直接生成的订阅文件。


流程概览

订阅源配置
  → 异步抓取与重试
  → 多协议解析
  → 指纹去重 → GeoIP 标记 → SSRF 防投毒拦截
  → 质量预过滤 → TCP 预筛选 → 历史权重下采样
  → 轻量探活(100 并发只测 204,快速筛掉不可达节点)
  → sing-box 真实代理测试(50 并发,完整目标)
  → 综合评分排序输出
  → 生成健康报告、日报、源评分与清理建议

两阶段测试是性能关键:先用高并发探活把 3000 候选筛到 ~1000,再对剩余节点做完整真测,总耗时从 60+ 分钟降到 ~8 分钟。

完整真测包含:海外 204 检测、出口地理检测(cloudflare trace,避免 ipinfo 限流)、中国站点连通检测(baidu)、小文件下载测速、可疑低延迟过滤、Netflix/ChatGPT/Disney 解锁检测、DNS 泄露检测。


评分策略

节点排序不再只看单次延迟,而是使用 config/scoring.yaml 的综合评分。默认权重:

因子 默认权重 说明
latency 25 sing-box 真实代理测试延迟,越低越好
jitter 15 多目标测试抖动,越低越稳定
tcp 10 TCP 预筛选延迟,用作基础可达性参考
speed 10 小文件下载测速,反映实际带宽
fingerprint_resistance 5 指纹抗识别评分,优先不易被识别的节点
protocol_history 15 协议历史通过率,降低长期低质协议权重
source_history 20 订阅源历史通过率,优先稳定来源

权重总和 100,便于分数解释和跨轮对比。配置校验会检查字段、阈值和默认值范围。

可选评分模板:

模板 适用场景 特点
config/scoring.yaml 默认均衡 兼顾延迟、抖动、TCP、协议历史和来源历史
config/scoring.low_latency.yaml 追求速度 提高 latency 权重,优先低延迟节点
config/scoring.stability.yaml 追求稳定 提高 jittersource_history 权重,减少波动节点
config/scoring.source_quality.yaml 公开池噪声较高 强化订阅源和协议历史质量

本地运行时可指定模板:

python main.py --scoring-rules config/scoring.stability.yaml

CI 默认仍使用 config/scoring.yaml。如需切换默认策略,请修改 workflow 中的 --scoring-rules


输出文件

文件 用途
verified.txt/yaml/json/urls 严格真测通过节点
global.txt/yaml/json/urls 海外可用的扩展节点
all.txt/yaml/json/urls 全量去重候选节点
chunks/verified_*.txt 分块订阅(每 100 节点一块,避免单文件过大)
by_protocol/verified_*.txt 按协议分文件(vmess/vless/trojan/ss/hysteria2 独立订阅)
by_region/{region}.txt/yaml/urls 按地区分文件(HK/JP/US/SG 等)

| stats.json | 数量、耗时、协议通过率、错误明细、探活/真测阶段数据、节点速度和解锁状态 | | health_report.md | 当前流水线健康报告,包含评分、来源质量、失败原因与输出保护 | | health_report.json | 输出完整性、重复项、报警、源清理摘要 | | daily_report.md | 面向人工阅读的每日摘要 | | source_scores.md | 订阅源质量评分 | | scoring_profiles.md | 评分模板权重、阈值和默认值对比 | | source_cleanup_suggestions.md/json | 订阅源清理建议 | | source_discovery.json | 从其他项目扫描发现的候选节点统计 | | node_stability.json | 节点跨轮稳定性追踪(连续通过/失败计数) | | trend_history.json | 最近 30 轮核心趋势 | | signature_manifest.json | 输出文件签名清单(完整性校验) | | api_docs.json | Open API 平台接口文档 |

健康状态说明:

  • ok:输出结构正常,未发现关键报警。
  • warning:输出可用,但存在低通过率协议、真测错误或源质量问题。
  • critical:输出缺失、解析异常、verified 为 0 或核心结构不满足要求。

源维护

config/sources.yaml 维护公开订阅源。建议新增源前检查:

  1. URL 可访问。
  2. 能解析出有效节点。
  3. 与现有源相比有去重贡献。
  4. 大体量源设置 max_nodes
  5. 通过配置校验和回归测试。

清理建议默认只读:

python tools/suggest_source_cleanup.py \
  --output-dir output \
  --sources config/sources.yaml \
  --output output/source_cleanup_suggestions.md \
  --json-output output/source_cleanup_suggestions.json

如需应用禁用建议,必须显式确认:

python tools/suggest_source_cleanup.py \
  --output-dir output \
  --sources config/sources.yaml \
  --apply \
  --confirm-disable \
  --only source-a,source-b \
  --exclude source-b

本地运行

git clone https://github.com/LeilaoMi/AutoMergePublicNodes-Optimized.git
cd AutoMergePublicNodes-Optimized
pip install -r requirements.txt

# 下载 sing-box 后运行
python main.py --top-n 100 --test-limit 500

常用检查:

python -m compileall -q main.py core tools tests
python tools/import_contract.py
python tools/validate_config.py --sources config/sources.yaml --filter-rules config/filter_rules.yaml --scoring-rules config/scoring.yaml
python tools/doctor.py
python -m unittest -v tests.test_regressions
python tools/health_report.py --output-dir output --verified-prefix verified --output output/health_report.json
python tools/daily_report.py --output-dir output --output output/daily_report.md
python tools/source_scores_report.py --output-dir output --output output/source_scores.md
python tools/scoring_profiles_report.py --profiles 'config/scoring*.yaml' --output output/scoring_profiles.md
python tools/suggest_source_cleanup.py --output-dir output --sources config/sources.yaml --output output/source_cleanup_suggestions.md --json-output output/source_cleanup_suggestions.json

本地二次筛选:

python tools/local_filter.py --input output/global.urls --output-prefix local_verified --top-n 100

GitHub Actions

  • 自动运行:每 6 小时一次。
  • 手动运行:Actions → 更新节点 → Run workflow
  • top_nverified.* 输出上限,默认 300,最大 1000。
  • test_limit:进入下采样的节点上限,默认 3000,最大 5000。
  • min_retain_ratio:缩水守门比例,默认 0 表示关闭。
  • 轻量探活:默认启用(--lightweight-probe),100 并发先筛不可达节点,再真测剩余。
  • 真测并发:50(--test-concurrency 50),完整目标测试。
  • 超时上限:30 分钟(timeout-minutes: 30)。

CI 会自动生成并上传调试产物:stats.jsonhealth_report.mdhealth_report.jsondaily_report.mdsource_scores.mdscoring_profiles.mdsource_cleanup_suggestions.*trend_history.json


项目结构

AutoMergePublicNodes-Optimized/
├── main.py                         # 主流水线与 CLI
├── core/
│   ├── fetcher.py                  # 异步抓取、重试、jsDelivr/CDN 回退
│   ├── parser.py                   # 多协议解析(ss/ssr/vmess/vless/trojan/hysteria2/tuic/anytls/socks/http)
│   ├── tester.py                   # sing-box 真实代理测试(两阶段:轻量探活 + 完整真测)
│   ├── filtering.py                # 质量预过滤、同源降噪、SSRF 防投毒(拦截私有/元数据地址)
│   ├── sampling.py                 # 真测下采样与历史权重排序
│   ├── generator.py                # 多格式订阅输出(yaml/txt/json/urls,大文件紧凑)
│   ├── scoring.py                  # 综合节点评分(7 因子加权)
│   ├── _fingerprint_test.py        # 协议指纹抗检测评分(REALITY/uTLS/WS+TLS/端口加成)
│   ├── report.py                   # Markdown 健康报告
│   ├── readme_updater.py           # README 状态区自动更新
│   ├── stats.py                    # 源评分、趋势、节点稳定性追踪(EWMA 历史通过率)
│   └── geo.py                      # GeoIP 标记与缓存(ip-api.com 批量)
├── tools/
│   ├── audit_sources.py            # 源健康审计
│   ├── health_report.py            # 输出健康报告
│   ├── daily_report.py             # Markdown 日报
│   ├── source_scores_report.py     # 源质量评分报告
│   ├── scoring_profiles_report.py  # 评分模板对比报告
│   ├── suggest_source_cleanup.py   # 源清理建议与安全应用
│   ├── source_discovery.py         # 从其他项目发现新源
│   ├── discover_tg_channels.py     # Telegram 频道源发现
│   ├── validate_config.py          # 配置静态校验
│   ├── import_contract.py          # 导入契约检查(防悬空 import)
│   ├── doctor.py                   # 本地环境诊断
│   ├── local_filter.py             # 本地二次筛选
│   ├── actions_summary.py          # GitHub Actions 运行摘要
│   └── prepare_artifact_output.py  # 发布产物整理
├── config/                         # 源配置、过滤规则、评分模板
├── tests/                          # 回归测试与协议样例
├── output/                         # CI 输出文件(订阅 + 报告)
├── docs/                           # 使用指南、网关页面、发布说明
│   ├── index.html                  # 动态订阅网关(GitHub Pages)
│   ├── sources.html                # 订阅源健康面板
│   ├── client-guide.md             # 客户端导入指南
│   ├── resources.md                # 测速、转换和排障资源
│   └── releases/                   # 版本发布说明
├── CHANGELOG.md                    # 版本变更记录
└── .github/workflows/update.yml    # 自动更新流程(每 6 小时 + Pages)

文档

License

MIT

致谢

  • sing-box
  • 所有公开订阅源维护者与社区贡献者

当前运行状态

指标 数值
更新时间 2026-07-15 19:22:46
版本 2.4.0
订阅源 103/107
原始节点 76371
去重后 23023
TCP 可达 3000
真实可用 202
真测通过率 6.7%
Verified 输出 202
Global 输出 212
All 输出 23023

输出保护:无。完整报告见 output/health_report.mdoutput/stats.json

Top 节点评分

评分 协议 延迟(ms) 来源
73.43 trojan 382.8 mheidari-all
71.14 trojan 383.5 DeltaKronecker-all
70.01 trojan 432.2 DeltaKronecker-all
69.02 vmess 421.2 Surfboard-tg-mixed
67.02 trojan 445.3 Surfboard-tg-mixed

Top 来源质量

来源 评分 测试数 建议
snakem982 0.976 36 prefer
Surfboard-tg-mixed 0.739 86 prefer
mheidari-all 0.614 86 observe
DeltaKronecker-all 0.613 103 observe
Au1rxx-base64 0.494 8 observe

About

自动聚合公开代理节点,使用 sing-box 真测筛选 verified 订阅,输出 Clash/sing-box/V2Ray 多格式并带健康报告

Topics

Resources

Security policy

Stars

13 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages