サブスクリプション・ノード・プロトコル・ルーティングを一気に解説
サブスクリプション、ノード、回線タイプ、プロトコル、ルーティング、グローバルモードとルールモード——この6つの用語は、クライアントの設定項目のほぼすべてを決めています。本記事では実際の使用順に沿って、それぞれの用語が何を解決するのか、画面のどこに現れるのか、いつ変更が必要になるのかを1つずつ解説します。最後に振り返り用の対照表を用意しました。
サブスクリプション、ノード、回線タイプ、プロトコル、ルーティング、グローバルモードとルールモード——この6つの用語は、クライアントの設定項目のほぼすべてを決めています。本記事では実際の使用順に沿って、それぞれの用語が何を解決するのか、画面のどこに現れるのか、いつ変更が必要になるのかを1つずつ解説します。最後に振り返り用の対照表を用意しました。
サブスクリプション(subscription)は、クライアント上では通常1行のアドレス欄を占めるだけです。それが指すのは特定のサーバーではなく、ノードの一覧です。クライアントはこのアドレスに HTTPS リクエストを送り、返ってきた内容をノードとして解析し、一定の周期で自動更新します。
返ってくる内容の形式はサーバー側が決めますが、よくあるのは2通りです。1つは Base64 でエンコードされた複数行の URI で、1行につき1ノード、ss:// や vmess://、trojan:// などで始まります。もう1つは Clash 系クライアントが使う YAML 設定で、ノード・プロキシグループ・ルーティングルールを1つのファイルにまとめて記述します。
サブスクリプションのアドレスには通常、ランダムな文字列が含まれ、サーバー側はそれでアカウントを識別します。これはサブスクリプション URL の性質を決めます。つまりアカウントの認証情報と同じです。リンクを入手した人はそのままインポートして利用でき、通信量も同じアカウントに計上されます。新しい端末で使うときは、アカウント管理画面からコピーし直し、リンクをチャット履歴に長期間残さないようにしましょう。
ノードを手動で追加する方法もあります。アドレス、ポート、暗号化方式、パスワードまたはユーザー ID をクライアントに1項目ずつ入力します。単体のサーバーに一時的に接続する場合に向いていますが、ノードのパラメータが変わると入力し直しが必要になります。
サブスクリプションをインポートする標準的な手順:
サブスクリプション URL は認証情報であり、共有するものではありません。更新頻度は通常クライアント側が管理しているので、ノードに変更があったときに手動で1回更新すれば十分で、何度も更新を繰り返す必要はありません。
ノード(node)は、クライアントが最終的に接続するサーバーです。設定項目にはアドレス、ポート、暗号化方式、認証情報が含まれます。ノード名に含まれる地域、たとえば「シンガポール 01」は、出口のおおよその位置を示すラベルであり、品質の指標ではありません。
同じ地域でも3種類の回線があり、価格と安定性は大きく異なります:
3種類の回線の比較:
| 回線タイプ | 経路 | レイテンシ | コスト | 向いている用途 |
|---|---|---|---|---|
| ダイレクト接続 | クライアント → サーバーのパブリックアドレス | 公共ルートと夜のピークの影響を受け、変動が大きい | 低 | 一時的な調べもの、予備回線 |
| 中継 | クライアント → 中継入口 → 出口サーバー | 入口区間が安定しており、全体の変動はダイレクト接続より小さい | 中 | 日常のブラウジング、動画視聴 |
| IEPL 専用線 | クライアント → 専用線入口 → 専用線 → 出口サーバー | ジッターが小さく、レイテンシが安定 | 高 | 長時間の会議、安定性重視 |
VPNWI のサブスクリプションを例にすると、回線規模は次のとおりです:
ノードを選ぶ前に、サーバーページで各地域の回線とリアルタイムのレイテンシを確認してから決めるとよいでしょう。変更が必要になるのはどんなときか:既定ではレイテンシテストで上位のノードを選びます。動作が重くなったらまずノードを変え、プロトコルには手を付けません。同じ地域に複数のノードがある場合は、中継または専用線を優先します。
プロトコルは、クライアントとノードの間でどう暗号化し、どうハンドシェイクし、TCP と UDP のどちらを使うかを決めます。ただし出口の位置は変わりません。同じノードでプロトコルを変えても出口の地域は変わらず、変わるのは伝送方式だけです。
主なプロトコルを登場順に並べます:
サブスクリプションのファイルでは、1つのノードが次のような1行の URI になります:
ss://<暗号化方式>:<パスワード>@<サーバーアドレス>:<ポート>#<ノード名>
vmess://<Base64 でエンコードされた JSON>
trojan://<パスワード>@<ドメイン>:443?sni=<ドメイン>#<ノード名>
クライアントはこれらのフィールドを解析してノードの項目を生成します。変更が必要になるのはどんなときか:既定では触りません。クライアントのバージョンが現在のプロトコルに対応していない場合は別のものに変え、ネットワークで UDP が制限されている場合は QUIC 系から TCP 系に戻します。手動で変更するのは、サーバー側からパラメータが明示された場合だけです。
同じサブスクリプション内でも、ノードごとに異なるプロトコルが使われていることがあります。クライアントはノードに含まれるフィールドに従って伝送方式を選ぶため、手動で指定する必要はありません。
ルーティング(routing)とは、クライアントがルールに従って接続ごとに出口を選ぶ仕組みで、プロキシ経由・直接接続・拒否のいずれかを割り当てます。ルールは上から順に照合され、一致した時点で評価が止まります。
照合の条件は主に5種類あります:
GEOIP,CN,DIRECT のようなルールです。典型的なルールセットは3つのことを行います。中国本土のドメインと IP は直接接続し、それ以外の通信はプロキシ経由にし、ストリーミングや特定サービスのドメインは個別にノードを指定します。
ルーティングが決めるのは接続の出口であり、DNS の名前解決はまた別の経路です。DNS クエリがプロキシ経由にならない場合、名前解決のリクエストはローカルネットワークの DNS から送信され、結果が汚染されたり、問い合わせの記録が見られたりする可能性があります。これが DNS リークです。
対処法は主に2つあります。DNS クエリをプロキシ経由にする「リモート DNS」と、fake-ip モードでクライアントが名前解決を引き受け、実際に接続を確立するときだけドメインを解決する方法です。確認方法は簡単です。接続後に IP チェックページを開き、判定された出口の地域が選択中のノードと一致するかを見て、別のノードに切り替えてもう一度試します。
DNS リークは接続を失敗させないため、見落とされがちです。影響するのは「どのドメインにアクセスしたか」という情報の露出で、これはルーティングルールをどれだけ細かく書いても埋められません。
ルーティングルールと DNS の処理はどちらもクライアント側で完結します。サーバー側のプライバシー方針はログを記録しないことです。変更が必要になるのはどんなときか:「直接接続すべき通信がプロキシ経由になっている」「プロキシ経由にすべき通信が直接接続になっている」という場合だけで、普段は既定のルールセットのままで問題ありません。
クライアントのホーム画面には通常モード切り替えがあり、3つの値がそれぞれ全体の方針に対応します:
切り替えの判断手順:
セルフチェックリスト:
これらの概念はどのプラットフォームでも共通で、違いは入口の名称と通信の引き受け方だけです。
プラットフォームを変えても概念を覚え直す必要はなく、クライアント内で対応する入口を探すだけです。サブスクリプションは「プロファイル」、ノードは「サーバー」一覧、モード切り替えは通常ホーム画面の上部にあります。各プラットフォームのインストールとインポートの手順は、使い方ガイドでプラットフォーム別に説明しています。
6つの用語、6つの疑問を1枚の表で振り返る:
| 用語 | ひとこと定義 | 変更が必要になる場面 |
|---|---|---|
| サブスクリプション | ノード一覧を返すアドレス。クライアントが定期的に取得して解析する | 端末やクライアントを変えたとき、アドレスが変更されたときに再インポートする |
| ノード | クライアントが最終的に接続するサーバー。アドレス、ポート、認証情報を含む | 動作が重いとき、出口の地域が合わないときに変更する |
| 回線タイプ | クライアントから出口サーバーまでの経路の形態:ダイレクト接続、中継、IEPL 専用線 | 安定性を重視する場合は中継か専用線を優先する |
| プロトコル | クライアントとノードの間の暗号化と伝送方式 | クライアントが対応していないとき、UDP が制限されているときに切り替える |
| ルーティング | ルールに従って接続ごとにプロキシ経由か直接接続かを決める | 誤判定が起きたときにルールを調整する |
| グローバル / ルール / ダイレクト | 全体の通信の流れを決める3つのモード | 問題の切り分け時に一時的に切り替え、普段はルールモードを使う |
結論:日常的に手を入れる必要があるのは2か所だけです。ノードの選択とサブスクリプションの更新です。プロトコルとルーティングルールは既定のままで構いません。「クライアントが現在のプロトコルに対応していない」「直接接続すべき通信がプロキシ経由になっている」というときにだけ、一段深く確認します。