サブスクリプションリンクは、トークンを含んだ一本のURLです。クライアントがこれを取得してデコードすると、サーバー一覧が手に入ります。サーバーアドレス、ポート、プロトコル、暗号化方式、トランスポート層のパラメータは、すべてその中に書かれています。つまりこのURLは、設定の取得元とアカウントの認証情報という二つの役割を同時に担っています。

多くの人はこれを普通のURLとして扱います。コピーして、貼り付けて、あとは忘れる。ところが端末を替えたり、サーバーが使えなくなったり、あるいは第三者にリンクを見られたりして初めて、このURLを管理する必要があると気づきます。以下では「何か」「どこで取得するか」「どう導入するか」「どのくらいで更新されるか」「漏れたらどうするか」の5つに分けて、そのまま実行できる手順を示します。

サブスクリプションリンクの構成:4層の情報と1本のトークン

サブスクリプションリンクの骨格はとてもシンプルです。ドメイン、パス、そして token パラメータが一つ。

https://sub.example.com/summit/2024/client/subscribe?token=9f2c8a1e4b7d

ドメインとパスはサーバー側が決めます。token はアカウントに紐づくランダムな文字列で、UUID や32桁の16進数がよく使われます。サーバーはリクエストを受け取るとまず token を検証し、次にアカウントの状態(プランが有効期間内か、通信量を使い切っていないか)に応じたサーバー一覧を生成して返します。token が違えば 403 か空のリストが返ります。token が正しくてもプランが期限切れなら、同じく空のリストになります。

返ってくる形式は主に二つです。一つは Base64 でエンコードされた複数行の URI で、デコードすると1行につき1台のサーバーが並び、先頭は ss://、vmess://、trojan://、vless://、hysteria2://、tuic:// のいずれかになります。もう一つは YAML で、Clash 系と Mihomo 系のクライアントはこちらを読みます。中身は proxies、proxy-groups、rules の3セクションに分かれています。

サーバー1行を分解すると、4層の情報が見えてきます。

  • プロトコルと認証情報:Shadowsocks の暗号化方式とパスワード、VMess と VLESS の UUID、Trojan のパスワード、Hysteria2 と TUIC のパスフレーズ。
  • 接続先アドレス:サーバーのドメインまたは IP とポート。直接接続の入口もあれば中継の入口もあり、クライアント画面では見分けがつきませんが、実際に通る経路は異なります。
  • トランスポート層のパラメータ:WebSocket の path と host、gRPC の serviceName、TLS の SNI と ALPN。TUIC には輻輳制御アルゴリズムも付きます。
  • トークン:サブスクリプションリンク本体にだけ存在し、サーバー1行の中には書き込まれません。だからこそ、サーバー1台分のリンクを共有しても損害は限られますが、サブスクリプションリンクを丸ごと共有するのはアカウントを渡すのと同じになります。
// サブスクリプションリンクと単体サーバーリンクの違い
比較項目サブスクリプションリンク単体サーバーリンク
内容アカウントの状態に応じて変わるサーバー一覧固定された1台のサーバー
形式HTTPS の URL で、Base64 テキストまたは YAML を返すss://、vmess:// のような1行の URI
更新方法クライアントが定期的に取得し、サーバー側の変更が自動で反映される手動で差し替える。入口が変わったら再インポートが必要
漏えい時の影響アカウントの認証情報と同じで、長期間使い回される影響は1台のサーバーに限られるが、同じく使い回される
向いている場面複数端末、サーバーが頻繁に入れ替わる場合一時的なテスト、1台だけの固定利用

取得場所:正規ルートとリスクの高い入手元

サブスクリプションリンクが正当に存在する場所は三つだけです。自分のアカウントの管理画面、自分で構築したサーバーの管理画面、そしてサービス提供元が案内する予備ドメインです。それ以外の入手元には、まず疑問符を付けたほうがよいでしょう。

サービス提供元の管理画面

VPNQF を例にすると、ログイン後のサブスクリプションページで完全なリンクをコピーするか、QR コードを保存できます。当サービスの登録に必要なのはユーザー名とパスワードだけで、メールアドレスは不要です。そのためサブスクリプションリンクがメールで送られることはなく、漏えい経路が一つ減ります。代わりに、リンクを失った場合はメールを探すのではなく管理画面に戻ってコピーし直すことになります。

自前のサーバー

管理パネルで自前構築する場合、サブスクリプションの入口は通常「クライアント」または「サブスクリプション」ページにあります。生成ルールはパネルの設定次第で、ユーザーごとに1本のまとめサブスクリプションを作るものもあれば、プロトコルごとに分けて作るものもあります。自前の利点はトークンを自分で握れること、代償はサーバーの保守と証明書の更新を自分でこなす必要があることです。

リスクの高い入手元

掲示板やグループチャット、公開リポジトリに出回る「公開サブスクリプション」は、必ず問題があるとは限りません。問題は検証できないことです。通信が誰のサーバーを通るのか、相手がアクセス先を記録しているか、リンクがいつ失効するのか、すべて不明です。こうしたアドレスはたいてい数日で使えなくなり、使い捨て前提なので、日常使いの端末に入れるものではありません。

  • ✅ 自分のアカウントの管理画面からコピーし、コピー後にドメインが提供元のメインドメインか公式の予備ドメインであることを確認する
  • ✅ リンクはパスワードマネージャーかローカルの暗号化ノートに保存し、チャット画面に貼らない
  • ✅ 端末を替えるときは管理画面で取り直し、古いスクリーンショットのリンクを使い回さない
  • ✅ メインドメインの名前解決に異常があるときは予備のサブスクリプションアドレスに切り替える。「最新の使えるサブスクリプション」を検索しに行かない
  • ❌ 出どころの不明な公開サブスクリプションは使わない。通信が誰のサーバーを通るか確認できない
  • ❌ 完全なリンクをグループ、公開リポジトリ、サポートチケットのスクリーンショットに載せない
  • ❌ 第三者の「サブスクリプション変換」サイトで自分のリンクを処理しない。変換サービスに元のアドレスが渡ってしまう

導入手順:5つのプラットフォームでの操作経路

どのクライアントでも、導入の流れは同じ5ステップです。違うのは入口の位置だけです。

  1. 管理画面でサブスクリプションリンクをコピーするか、QR コードを保存します。
  2. クライアントを開き、「サブスクリプション」「プロファイル」「設定」のいずれかのグループを探します。
  3. 新規項目を作成してリンクを貼り、用途や端末名など分かりやすい名前を付けます。
  4. 保存したらすぐに一度「更新」を手動で押し、サーバー一覧が空でないことを確認します。
  5. いずれかのサーバーを選んで接続し、出口情報を表示するページを開いて、出口がローカルネットワークでなくなっていることを確認します。
// 主なクライアントでのインポート位置
プラットフォーム主なクライアントインポート入口注意点
Windowsv2rayN、Clash Vergeサブスクリプション設定 / プロファイル → 新規貼り付けたあとにもう一度更新を押さないと、一覧は空のまま
macOSClashX Meta、Stashメニューバー → プロファイル → マネージドプロファイル初回インポート時にネットワーク権限を求められ、拒否すると取得に失敗する
Androidv2rayNG、Clash Metaサイドメニュー → サブスクリプション設定バックグラウンド動作を許可しないと、定時更新が実行されない
iOS / iPadOSShadowrocket、Stashホーム → サブスクリプションを追加クライアントの配信状況は App Store の地域によって変わる
ルーターOpenClash、PassWall設定ファイルのサブスクリプションルーターはメモリが限られるため、サーバーが多いときはよく使うグループだけ残す

インポート後に確認すべき3点

第一に、サーバー数が管理画面の表示と一致しているか。少なければ取得が不完全なので、もう一度更新します。第二に、任意のサーバーに接続し、出口情報のページで出口が切り替わったことを確認します。第三に、クライアントに表示される遅延の数字はあまり真に受けないこと。あれはローカルから入口までのハンドシェイク1回分の所要時間で、実際のダウンロード速度や夜間の混雑時の挙動とは直接関係しません。入口が日本国内にある中継サーバーは遅延が低く出ますが、速度は出口側の帯域で決まります。

もう一つ見落としやすいのが DNS です。Clash 系のサブスクリプションに dns セクションがある場合、その中の nameserver がローカル回線事業者のアドレスになっていないか確認してください。ローカルで名前解決すると、ドメインの問い合わせがトンネルの外に露出します。いわゆる DNS リークです。クライアントの既定設定がすべてのネットワーク環境に合うとは限らないので、インポート後に1分だけ確認しておくと、あとから原因を探る手間が省けます。

判断基準はシンプルです:更新後にサーバー一覧が空でない、接続できる、出口が正しい。この3ステップをすべて満たせば導入は完了です。どれか一つでも失敗したら、まず管理画面でトークンとプランの状態を確認し、そのうえでクライアントを疑ってください。

更新の頻度:クライアントの定時取得とサーバー側の変更

サブスクリプションはリアルタイム配信ではありません。管理画面でサーバーを追加しても、クライアントにはすぐ現れません。次の取得を待つか、手動で更新を押す必要があります。つまり「どのくらいで更新されるか」は実際には二つの問いに分かれます。クライアントがどのくらいの間隔で取得するのか、サーバー側がいつ変わるのか、です。

クライアントの既定の間隔

Clash 系と Mihomo 系のクライアントは、サーバーが返す profile-update-interval レスポンスヘッダーを読みます。よくある値は24時間です。v2rayNG や Shadowrocket といったクライアントは、サブスクリプション項目ごとに自動更新のオン・オフと間隔を設定できます。日常利用なら24時間で十分です。サーバーの入れ替えが激しいと感じたら6時間に短縮しても構いませんが、数分間隔まで詰めるのはおすすめしません。サーバー側は通常取得頻度に制限をかけており、レート制限に触れるとクライアントには更新失敗としか表示されず、かえって原因が分かりにくくなるからです。

サーバー側が変わるタイミング

  • サーバーの追加や廃止で、台数が変わる。
  • 入口アドレスの変更。中継入口の差し替えやドメインの変更など。
  • 証明書のローテーション。TLS 関連のパラメータも一緒に更新される。
  • プランの期限切れや通信量の使い切りで、一覧が空になるか案内用のサーバーだけが残る。

「すべてのサーバーがタイムアウト」したときは、まずサブスクリプションを手動で一度更新し、そのうえで特定のサーバーの問題かどうかを見ます。更新後に一覧が正常なのに接続できないなら、問題は経路かローカルネットワーク側にあり、サブスクリプション自体にはありません。

サブスクリプションで取得できる内容は、アカウントに対応するサーバープール次第です。VPNQF のサブスクリプションは90以上の国・地域、220以上のサーバーをカバーし、同時接続端末数は無制限、60日以内なら理由を問わず返金に応じます。

90+対応国・地域
220+サーバー
無制限同時接続端末
60 日理由不要の返金

リンクが漏れたら:トークン再発行と被害を止める順序

サブスクリプションリンク内の token は認証情報そのものです。手に入れた人はユーザー名とパスワードなしで同じサーバー一覧を取得でき、あなたの通信量を使えます。当サービスは同時接続端末数が無制限なので、第三者に使われても締め出されることはありませんが、通信量は同じプールで、消費はあなたのアカウントに計上されます。

リンクが公開の場に貼られているのを見つけたら、次の順で対処します。なお、まずパスワードを変えないでください。パスワードを変えても古いリンクは無効になりません。

  1. 管理画面でサブスクリプショントークンを再発行するか、「サブスクリプションアドレスをリセット」を押します。この操作で古いリンクは即座にエラーを返すようになり、旧リンクを使っているクライアントはすべて更新に失敗します。
  2. 各端末で古いサブスクリプション項目を削除し、新しいリンクを貼り直して一度手動更新します。
  3. 1〜2日ほど通信量の推移を見て、異常な増加がないことを確認します。
  4. 漏えい経路を振り返ります。スクリーンショットか、チャット履歴か、あるいはどこかのオンライン変換サービスか。

よくある誤解とセルフチェック

誤解1:サブスクリプションリンクはサーバーリンクのこと

違います。サブスクリプションリンクは一覧を指し、サーバーリンクはその一覧の1行です。前者はアカウントの状態で変化し、後者は固定された1台のサーバーなので、入口が変われば再インポートが必要になります。

誤解2:サブスクリプションを更新すると通信量を消費する

消費しません。取得するのはテキストで、ふつう数 KB から数十 KB 程度、Web ページを1枚開くのと変わりません。プランの通信量には計上されません。

誤解3:リンクが開ければサーバーも使える

そうとは限りません。設定を取得できたのはトークンが有効でアカウント状態が正常だというだけのことで、サーバーに実際につながるかは一度接続してみないと分かりません。逆に、リンクが開けない場合もトークン失効とは限らず、まずローカルネットワークからそのドメインに到達できるかを確認してください。

  • ✅ サブスクリプションリンクは自分の端末とパスワードマネージャーにだけ置く
  • ✅ 端末ごとに個別に導入し、名前には端末や用途を入れておくと、切り分けのときにすぐ照合できる
  • ✅ 24時間の自動更新を維持し、つながらないときはまず手動更新してから判断する
  • ✅ 端末を替えるときや漏えいを疑うときは、先に管理画面でトークンを再発行してから再インポートする
  • ❌ 完全なリンクをチャット、スクリーンショット、公開リポジトリに貼らない
  • ❌ サブスクリプションリンクを「貸す」つもりで友人に転送しない。通信量も責任もアカウントに計上される
まとめ:サブスクリプションリンクは設定の取得元であり、アカウントの認証情報でもあります。管理画面から取得する、プラットフォームごとに導入する、24時間の自動更新を保つ、漏れたらトークンを再発行する。この4つを守れば、この URL が大きなリスクになることはありません。