yx-auto — サーバー優選ツール(簡易版)

Tool

概要

本リポジトリ「yx-auto」は、サーバー(ノード)優選(ベストなIP/ドメインの選定)を行うための簡易ツールをCloudflare Workers上で動作させるための実装です。内蔵の優選ドメインリストや外部(GitHub)から取得する優選IPをベースに、15分ごとのIP優选処理やIPv4/IPv6切替、キャリア別フィルタリングを提供。生成したノードはClash、Surge、Quantumultなど複数のプロファイル形式での出力に対応し、Cloudflare WorkersのエンドポイントにUUID等を渡すだけで利用可能です。(約300字)

GitHub

リポジトリの統計情報

  • スター数: 27
  • フォーク数: 116
  • ウォッチャー数: 27
  • コミット数: 6
  • ファイル数: 2
  • メインの言語: JavaScript

主な特徴

  • Cloudflare Workersで動作する軽量な優选(最適化)サーバーツール
  • 15分ごとのIP優选自動実行、GitHubベースの優选IP取得に対応
  • Clash/Surge/Quantumult等複数プロファイルのノード生成をサポート
  • IPv4/IPv6、及び移動/聯通/電信などキャリア別フィルタリング対応

技術的なポイント

yx-autoはCloudflare Workers(サーバーレス環境)の特性を活かし、低レイテンシかつスケーラブルに優选処理を提供する設計になっています。主に1ファイル(_worker.js)で動作ロジックを完結させることで、Workersへの導入が容易であり、エッジ上で定期実行・リクエスト単位でのノード生成を行います。

優选アルゴリズムは大枠で「候補ドメイン/IPのリスト取得 → ラウンドトリップ計測や疎通チェック → レイテンシ/成功率等のスコアリング → 上位のIPを採択」という流れを取ります。リストは内蔵の優先ドメイン群と、GitHub上のリポジトリから取得する外部ソースの両方をサポートしており、常に最新の候補を取り込めるようになっています。頻度は15分ごとに優选を行う設定があり、Workers上での定期実行(Cron Triggersや外部からの呼び出し)と組み合わせることを想定しています。

出力面では、取得した優选ノードを複数のクライアント形式(ClashのYAML、Surgeのプロファイル、Quantumult/Quantumult X用のサブスクリプション)にフォーマットして返却します。Cloudflare WorkersのレスポンスでユーザーがUUIDやドメインをパラメータとして渡すことで、動的にカスタムな購読URLを生成できます。さらにIPv4/IPv6の選択と、主要キャリア(移動/聯通/電信)でのフィルタリング機能により、利用者のネットワーク環境や目的に合わせた最適化が可能です。

実装上の注意点としては、Workersのランタイム制限(CPU時間や外部接続数)に依存する部分があるため、スキャンや計測処理は並列度を抑えつつ短時間で完了するよう設計されています。外部IP情報の取得やヘルスチェックはHTTPフェッチを主体とするため、タイムアウトや再試行ロジックを持たせること、及び結果のキャッシュ(KVや外部キャッシュを用いる設計)が拡張ポイントになります。構造がシンプルなので、必要に応じてチェック項目の追加やスコアリング基準の調整、出力フォーマットの拡張が容易です。(約700〜900字)

プロジェクトの構成

主要なファイルとディレクトリ:

  • README.md: file
  • _worker.js: file

まとめ

Cloudflare Workersで手軽に導入できる、ノード優选と複数クライアント向け購読生成を行う実用的な軽量ツールです。(約50字)

リポジトリ情報:

READMEの抜粋:

服务器优选工具 - 简化版

功能特性

  • 优选域名:自动使用内置的优选域名列表
  • 优选IP:15分钟优选一次
  • GitHub优选:从 GitHub 仓库获取优选IP列表
  • 节点生成:支持生成 Clash、Surge、Quantumult 等格式的订阅
  • 客户端选择:支持 Clash、Surge、Quantumult X 等多种客户端格式
  • IPv4/IPv6 选择:可选择使用 IPv4 或 IPv6 优选IP
  • 运营商筛选:支持按移动、联通、电信筛选优选IP

使用方法

1. 部署到 Cloudflare Workers

  1. 登录 Cloudflare Dashboard
  2. 进入 Workers & Pages
  3. 创建新的 Worker
  4. worker.js 的内容复制到编辑器
  5. 保存并部署

2. 使用界面

  1. 输入域名:输入您的 Cloudflare Workers 域名
  2. 输入UUID:输入您的 UUID(…)