banner
🔥𝓢𝓲𝓰𝓮!𝓢𝓱𝓾𝓸

🔥𝓢𝓲𝓰𝓮!𝓢𝓱𝓾𝓸

tg_channel
telegram
discord server
x
github
medium
threads
instagram
phaver
warpcast
debank

Clash ノード集約管理

科学的なインターネットを利用するユーザーにとって、購入したサーバーは複数あるかもしれません。そのため、通常は複数のサブスクリプションアドレスを持っています。以下の図のように:

image

1 つのサーバーに対して 1 つのサブスクリプションアドレスがあると、以下の欠点があります:

  1. サブスクリプションアドレスの変更コストが高い
    サーバーがサブスクリプションアドレスを変更すると、Clash クライアントは手動でサブスクリプションアドレスを更新する必要があります。複数のサブスクリプションアドレスを同時に使用している場合、変更作業の量は倍増します。特に、サブスクリプションが複数のデバイスで使用されている場合、各デバイスごとに個別に変更する必要があり、操作がさらに煩雑になります。

  2. サブスクリプションの切り替えが不便
    Clash クライアントは毎回 1 つのサブスクリプションしか選択できません。異なるサブスクリプションにはより優れたノードがあるかもしれませんが、サブスクリプションを切り替えなければならず、その過程は面倒で効率が悪いです。

これらの問題に対処するために、複数のサブスクリプションのノードを 1 つのサブスクリプションに統合できるソリューションが切実に必要です。これにより、ユーザーは 1 つの統一されたサブスクリプションアドレスにのみ対処すればよくなり、操作が大幅に簡素化されます。

Sub-Store#

Sub-Store は、この問題を解決するために設計されたツールです。複数のサブスクリプションのノードを 1 つの統一されたサブスクリプションに統合でき、ユーザーはこの統一されたサブスクリプションアドレスを使用することで、すべてのノードを便利に管理および使用できます。Sub-Store を使用することで、サブスクリプションアドレスの変更の複雑さが大幅に軽減され、頻繁にサブスクリプションを切り替える必要がなく、最適なノードの柔軟な使用が容易に実現できます。

構築#

ディレクトリ構造の準備#

.
├── docker-compose.yaml
├── .env
└── redis
    └── redis.conf

.env

# コンテナ名のプレフィックス
COMPOSE_PROJECT_NAME=sub-store
# コンテナデータのルートディレクトリ
PROJECT_HOME=/opt/sub-store
# サブスクリプションの定期更新周期
SUB_STORE_BACKEND_SYNC_CRON='55 23 * * *'
# セキュリティキー(漏洩しないように)
SUB_STORE_FRONTEND_BACKEND_PATH=/h1j2k3l4m5n6o7p8q9r0s1t2u3v

.redis.conf

# Redis設定ファイルの例

# RDB永続性を有効にする
save 900 1
save 300 10
save 60 10000

# AOF永続性を有効にする
appendonly yes

docker-compose.yaml
私たちのサーバー IP が 198.22.145.117 であると仮定します。

services:
 # サブスクリプション変換サービス
  sub:
    image: stilleshan/sub
    restart: always
    environment:
      - API_URL=http://198.22.145.117:13001
      - SHORT_URL=http://198.22.145.117:13003
      - SITE_NAME=SigeShuo
    ports:
      - "13001:80"
  # Sub-Storeサブスクリプション管理サービス
  app:
    image: xream/sub-store
    restart: always
    environment:
      - SUB_STORE_BACKEND_SYNC_CRON=${SUB_STORE_BACKEND_SYNC_CRON}
      - SUB_STORE_FRONTEND_BACKEND_PATH=${SUB_STORE_FRONTEND_BACKEND_PATH}
    ports:
      - "13002:3001"
    volumes:
      - ${PROJECT_HOME}/data:/opt/app/data
  # 短縮URLサービス
  myurls:
    image: stilleshan/myurls:latest
    restart: always
    environment:
      - MYURLS_DOMAIN=198.22.145.117:13003
      - MYURLS_PROTO=http
    volumes:
      - ${PROJECT_HOME}/myurls/logs:/app/logs
    ports:
      - "13003:8080"
    depends_on:
      - redis
  # 短縮URLキャッシュサービス
  redis:
    image: redis:latest
    restart: always
    volumes:
      - ${PROJECT_HOME}/redis:/data
      - ./redis/redis.conf:/usr/local/etc/redis/redis.conf
    command: [ "redis-server", "/usr/local/etc/redis/redis.conf" ]
  # コンテナ自身の更新監視サービス
  watchtower:
    image: containrrr/watchtower
    restart: always
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock

# docker-compose.yamlと同じディレクトリで以下のコマンドを実行することでデプロイできます
docker compose up -d

ドメイン名や nginx のリバースプロキシを使用する場合は、上記の設定の IP をドメイン名に変更するだけで済みます。

使用#

Sub-Store#

Sub-Store のアクセスアドレス:

http://198.22.145.117:13002?api=http://198.22.145.117:13002/h1j2k3l4m5n6o7p8q9r0s1t2u3v
  • h1j2k3l4m5n6o7p8q9r0s1t2u3v これは.env ファイルに設定されたセキュリティキーで、自由に変更できます。キーが更新された場合、上記のアドレスのキーは更新後の値に置き換える必要があります。

単一サブスクリプションの追加#

image

image

組み合わせサブスクリプションの追加#

image

image

Subconverter サブスクリプション変換#

image

まず、Sub-Store から集約サブスクリプションアドレスをコピーします。

image

Subconverter を使用して、グループを含むサブスクリプションアドレスに変換します。

Clash にサブスクリプション変換アドレスをインポート#

image

Subconverter で変換されたサブスクリプションアドレスをインポートします。また、短縮アドレスで生成された短縮リンクを使用することもできます。

まとめ:

Sub-Store を使用して複数のサブスクリプションアドレスを管理する際は、Sub-Store のバックエンドで追加、削除、変更の操作を行うだけで、集約サブスクリプション管理で含まれる個々のサブスクリプション情報を簡単に管理できます。Clash クライアントは必要に応じてリフレッシュを行うだけで、変更が有効になり、手動で Clash の設定を調整する必要はありません。

Sub-Store がパブリックネットワークにデプロイされている場合は、必ず.envファイル内のSUB_STORE_FRONTEND_BACKEND_PATH設定キーを保護し、他人にサブスクリプション情報を取得されないようにしてください。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。