PROTOCOL · CORE · COMPATIBILITY

Clashプロトコルとカーネルのリファレンス

SS、VMess、Trojan、VLESS、Hysteria2、TUICの設計上の違いを比較し、接続特性、端末負荷、mihomo互換性、サブスク形式から選択基準を整理します。

代表的な6種類のプロトコル Clashカーネルの系譜 モバイルの電池消費 サブスク互換性の確認

01 · DECISION MODEL

まずプロトコル選びの枠組みを作る

プロトコル名は速度ランキングではない

Clash Plus、Clash Verge Rev、FlClashなどのクライアントでノードの横に表示されるSS、VMess、Trojan、VLESS、Hysteria2、TUICは、まずクライアントとサーバー間のデータ交換に使うプロトコル構造を示すもので、速度順に並べられる製品一覧ではありません。実際の接続性能は、サーバーの処理能力、回線の往復遅延、パケットロス、混雑状況、トランスポート層、暗号化実装、クライアントのカーネル、端末性能などに左右されます。同じプロトコルでも回線やサーバー負荷によって結果は大きく異なり、異なるプロトコルでも安定したネットワークでは近いウェブ閲覧体験になることがあります。

したがって、プロトコルはまず「互換性があるか」を確認し、次に「現在のネットワークに合うか」を見て、最後に速度を比較します。互換性には、クライアントのカーネルがプロトコルをサポートしているか、サブスク変換で必要なフィールドが保持されるか、トランスポート層の組み合わせが実装されているか、端末のOSがUDPやQUICセッションを正常に確立できるかが含まれます。インポート時点で重要なフィールドが失われていれば、その後の速度測定に意味はありません。一般ユーザーには、サブスク提供元が検証した完全な設定を使うほうが、手作業で別プロトコルへ書き換えるより安全です。プロトコル名を1か所変更するだけでは変換できません。

影響要因を4つの層に分ける

第1層は基礎ネットワークです。固定回線は遅延やパケットロスが比較的安定し、TCP系の方式で滑らかな通信になりやすい一方、モバイルデータ、公共Wi-Fi、異なる通信事業者をまたぐ回線では瞬間的なパケットロスやネットワーク切り替えが起こります。この場合、UDPベースで輻輳制御に対応するHysteria2やTUICが適応しやすいことがありますが、UDPを安定して通せることが前提です。第2層はサーバーと回線です。同じプロトコルでも、サーバーのCPU飽和、出口の混雑、遠回りなルーティングがあれば、クライアント側のパラメータ変更でボトルネックは解消できません。

第3層はプロトコルとトランスポートの組み合わせです。VMessやVLESSはTCP、WebSocket、gRPCなどと組み合わせられ、VLESSはTLSやREALITYなどのセキュリティ層と併用されることもあります。SSは比較的シンプルな暗号化プロキシ構造、TrojanはTLSの仕組み、Hysteria2とTUICはQUICやUDPを軸とした方式です。第4層はクライアント実装です。mihomoは新しいプロトコルやルール機能をより広くサポートしますが、古い公式Clashでは設定機能に制限があります。プロトコルを選ぶときは4層をまとめて考え、ネットワーク、回線、カーネルの問題をすべてプロトコル名のせいにしないことが重要です。

01

互換性を確認

カーネル、サブスクのフィールド、トランスポート層、認証パラメータが揃っているか確認します。

02

ネットワークを観察

現在の回線が安定したTCP環境に近いか、パケットロスの多いモバイルネットワークかを判断します。

03

実際の用途でテスト

ウェブの初回表示、継続ダウンロード、音声・動画、スリープ復帰をそれぞれ確認します。

04

フォールバックを残す

UDP制限、ネットワーク切り替え、カーネルの違いに備えて、別種類の利用可能なプロトコルを用意します。

テスト時に記録する項目

クライアントの遅延テストは通常、1回の探測リクエストしか反映せず、長時間接続のスループットや安定性を十分に示しません。実用的なテストには、複数サイトを初めて開いたときの応答、一定時間ダウンロードした際の速度変動、動画や会議中の途切れ、画面ロックから復帰した後の再接続速度を含めます。毎回変える要素は1つにします。たとえば同じネットワークとサーバーでプロトコルだけ比較する、またはプロトコルを固定してWi-Fiとモバイルデータを比べます。ノード、ネットワーク、クライアント、プロトコルを同時に変えると、改善した層を特定できません。

さらに、ログで失敗箇所を確認します。ドメイン名解決エラー、接続タイムアウト、認証失敗、TLSハンドシェイクエラー、UDP到達不能は、それぞれ異なる問題を示します。ログが認証失敗を示している場合、グローバルモードを何度切り替えても解決しません。DNS解決に異常がある場合も、プロトコル変更が有効とは限りません。ログ画面とプロキシ・設定画面の対応関係は、Clash Vergeの画面と機能を一覧で確認できます。このように層ごとに確認すれば、プロトコル選びは「どの名前を試すか」ではなく、再現可能で検証できる技術的判断になります。

02 · ESTABLISHED DESIGNS

SS、VMess、Trojanの設計上の違い

SS:シンプルな構造と幅広い実装

Shadowsocksは通常SSと略され、比較的シンプルな構造で暗号化プロキシ通信を行う方式です。クライアント設定は主にサーバーアドレス、ポート、暗号化方式、認証キーで構成され、プロトコル自体は複雑なユーザー体系や多様なトランスポート層の機能を持ちません。プロトコルのオーバーヘッドが小さく、クロスプラットフォーム実装が成熟しており、設定も簡単なため、リソースの限られた端末やデスクトップ・モバイル間で同じ設定を使いたい場合に長く利用されています。

SSの安全性と性能は、暗号化方式と実装に大きく依存します。現在の設定では、サーバーが明示的に提供し、クライアントのカーネルが対応するAEADなどの現代的な暗号化方式を使い、古い解説だけを頼りにcipherを変更しないでください。暗号化方式は双方の事前設定であり、クライアントとサーバーが一致しなければ接続は直ちに失敗します。一部のサブスクにはプラグインや拡張パラメータも含まれますが、これらは基本的なSSフィールドとは別扱いです。異なるカーネルへインポートする場合は、プラグイン名とパラメータが保持されているか確認してください。インポートできても接続直後に切れる場合は、まず暗号化方式、パスワード、プラグイン、ポートを比較します。

VMess:ID情報と多様なトランスポートの組み合わせ

VMessはクライアントID、時刻に関する検証、豊富なトランスポートの組み合わせを含む設計です。代表的な設定フィールドにはサーバー、ポート、UUID、alterId、cipher、ネットワーク種別、TLS設定があります。現代の設定ではalterIdが0であることが多いものの、古いサブスクには0以外の値が残っている場合があります。利用可否はサーバーとカーネルの実装次第なので、サーバー設定を把握せずに削除・変更しないでください。VMessはTCP、WebSocket、HTTP、gRPCなどと組み合わせられるため、VMessと表示されても上位プロトコルしか分からず、接続経路全体までは判断できません。

この柔軟性は便利な反面、設定ミスの箇所も増やします。WebSocketではpath、Host、TLSのserver name、gRPCではservice name、TLSではサーバー名と証明書検証に関するフィールドを確認します。サブスク変換でアドレス、ポート、UUIDだけが残り、transport-optsが欠落すると、ノード一覧には表示されても接続できないことがあります。VMessも「パラメータが多いほど速い」わけではありません。トランスポート層の追加カプセル化には一定のコストがありますが、具体的な構成では互換性上の利点がある場合もあります。性能は実際の回線で判断してください。

Trojan:TLSセッションを基盤とする認証構造

TrojanはTLS接続を基盤とし、パスワードで認証します。設定には通常、サーバー、ポート、パスワード、SNI、証明書検証の設定、任意のトランスポート設定が含まれます。重要なのは「特定のウェブ通信に似ている」ことではなく、クライアントがTLSハンドシェイクを正しく完了してから認証と転送へ進む点です。そのため、システム時刻、SNI、証明書チェーン、サーバーのドメイン名、TLS実装が接続に影響します。ログにcertificate、handshake、server nameに関するエラーが出た場合は、まずこれらのフィールドを確認してください。

Trojanは構造が分かりやすく、安定したTCPネットワークでは平滑な接続になりやすい方式です。TLSハンドシェイクと暗号化にはCPU負荷がかかりますが、現代のデスクトップや多くのスマートフォンでは通常、主要なボトルネックにはなりません。重視すべきなのは長時間接続の数、サーバーのTLS処理能力、ネットワーク再接続の頻度です。モバイルネットワークで切り替えが頻発すると、セッションを再確立するたびに必要なハンドシェイクをやり直すため、スリープ復帰の体感がネットワーク状態に左右されます。サブスクにTrojanとUDP系プロトコルの両方があるなら、Trojanを安定したTCPのフォールバックとして使い、1種類ですべてのネットワークをカバーできると考えないでください。

プロトコル 主な設定確認項目 代表的な利点 よくある失敗箇所
SS 暗号化方式、パスワード、プラグインパラメータ シンプルな構造、幅広い実装、低いリソース負荷 cipherの不一致、プラグインフィールドの欠落
VMess UUID、トランスポート種別、TLS、パス、サービス名 豊富なトランスポートの組み合わせ、既存設定との高い互換性 トランスポートオプションの欠落、時刻またはIDパラメータの誤り
Trojan パスワード、SNI、証明書チェーン、TLS設定 設定ロジックが明快で、TCP回線が安定しやすい TLSハンドシェイク、証明書名、認証の失敗

この3種類は「新しいか古いか」だけで利用価値を判断すべきではありません。SSのシンプルさは低性能端末で今も有効です。VMessも既存の導入環境やトランスポートの組み合わせが特定の設定に適する場合があります。Trojanも安定したTCP環境で明確な役割を持ちます。より合理的なのは、まずサーバーが提供する完全な組み合わせを検証し、ログと実際の用途をもとに比較することです。設定が長期間安定し、負荷も妥当で、サブスクも正常に更新されているなら、プロトコル名が古いという理由だけで変更しても自動的に改善するわけではありません。

03 · CURRENT OPTIONS

VLESS、Hysteria2、TUICの適用範囲

VLESS:認証層と暗号化層を分けて考える

VLESSはUUIDなどでクライアントのIDを示しますが、プロトコル自体はVMessと同じ内蔵暗号化の仕組みを提供せず、実際の通信の安全性は通常TLS、REALITYなどの外側の仕組みによって担保されます。VLESSを理解するには、プロトコル、トランスポート層、セキュリティ層を分けて考える必要があります。VLESSは認証と転送構造の一部を、TCP、WebSocket、gRPCなどは搬送方式を、TLSやREALITYは対応する安全なハンドシェイクを決めます。クライアント一覧にVLESSとだけ表示されていても、設定を展開してnetwork、tls、servername、reality-opts、flowなどを確認してください。

VLESS設定のflowは、自由に入力できる性能スイッチではありません。特定の組み合わせでは決められたフロー制御値を使うため、クライアント、サーバー、基盤実装が一致している必要があります。誤った値は通常、ハンドシェイクやデータ転送の失敗につながります。REALITY設定にはpublic-key、short-id、servernameが含まれることがあり、これらは連動しています。サブスク変換でフィールド名が書き換えられたり、空値の削除時に必要なパラメータまで消えたり、古いクライアントが構造を認識できなかったりすると、「ノードはあるのに接続できない」状態になります。そのためVLESSは、mihomo対応の現代的なクライアントで完全な設定をインポートするのが適しており、古いClashのサンプルをコピーして手作業で組み立てる方法は避けてください。

Hysteria2:パケットロスの多い回線を想定したQUIC方式

Hysteria2はUDPベースのQUICトランスポート上で動作し、現代的な輻輳制御と多重化によって、遅延、ジッター、パケットロスが目立つ回線への適応を目指します。ただし、すべてのネットワークで速くなるわけではありません。UDP経路が安定し、サーバー帯域が十分で、パラメータも適切なら継続通信で良好なスループットを保てます。一方、ローカルネットワークがUDPを制限したり、経路品質が悪かったり、中間機器がUDPセッションを頻繁に破棄したりすると、接続タイムアウト、速度変動、復帰の遅延が起こる可能性があります。

代表的な設定フィールドには、サーバーアドレス、ポート、認証情報、TLS server name、証明書検証、帯域幅関連のパラメータがあります。帯域幅の値は輻輳制御が送信ペースを判断するための補助であり、数字を大きくするほど速くなるわけではありません。実際の回線能力を大幅に上回る値はキューイングやパケットロスを招き、低すぎる値はスループットを制限します。新しい実装ではモードに応じて自動調整されることもあるため、サブスクで配布された値を使うほうが安全です。ログにUDP timeoutが出た場合は、帯域幅を何度も増やすのではなく、まず別のネットワークで試し、システムのファイアウォール、ルーター、サーバー側ポートを確認してください。

TUIC:低遅延セッションとUDPトランスポート

TUICもQUICとUDPを基盤とし、接続の素早い確立、多重化、ヘッドオブラインブロッキングの軽減を重視します。設定には通常、UUID、パスワード、サーバー名、輻輳制御オプション、UDPリレー方式などが含まれます。実装や設定世代によってフィールドが異なることがあるため、サブスクのプロトコル識別子、バージョンの意味、認証構造をサーバーと一致させる必要があります。mihomoは一般的なTUIC設定を認識できますが、古いカーネルやクライアントでは解析できない場合があります。インポート後に無視されてもサブスクが空とは限らず、カーネルがそのノード種別をサポートしていない可能性があります。

TUICは、セッションを頻繁に確立し、ネットワーク品質に変動があり、UDPを利用できる環境に適していますが、TCPプロトコルの全面的な代替ではありません。企業Wi-Fi、ゲストネットワーク、一部のモバイルネットワーク、厳格に設定されたルーターではUDPが制限されることがあります。その場合、TUICとHysteria2が同時に使えなくなる可能性があります。実際の設定ではSS、TrojanなどのTCPトランスポートノードをフォールバックとして残してください。音声、ゲーム、リアルタイム通信では、「クライアントからサーバーまでUDPを使うこと」と「対象アプリがUDP転送されること」を分けて考える必要があります。前者が利用できても、後者のルールやポリシーが正しいとは限りません。

proxies:
  - name: "VLESS-Reference"
    type: vless
    server: node.example.invalid
    port: 443
    uuid: 00000000-0000-4000-8000-000000000000
    network: tcp
    tls: true
    servername: node.example.invalid

  - name: "Hysteria2-Reference"
    type: hysteria2
    server: node.example.invalid
    port: 443
    password: "your-password"
    sni: node.example.invalid

上記の断片は、mihomo YAMLにおけるフィールド階層を示すためのものです。アドレス、ID、パスワードは説明用の値であり、そのまま接続には使えません。実際のサブスクでは、VLESSにREALITYパラメータが追加されたり、Hysteria2にポート範囲や帯域幅設定が加わったりするなど、異なる組み合わせが使われます。設定を編集したら、まずクライアントの設定検査機能を実行し、ログにunsupported、missing field、authentication、handshakeなどが出ていないか確認してください。サブスク由来の設定は、提供元で修正するか、対象形式に明確に対応した変換方法を優先し、更新のたびにローカル変更が上書きされる状態を避けます。

04 · PERFORMANCE

接続速度、スループット、リソース使用量の比較方法

初回表示の速さと継続スループットは別の指標

ユーザーが感じる「速さ」には、少なくとも3種類の指標があります。1つ目は接続確立時間で、DNS問い合わせ、サーバーまでの往復、TCPまたはQUIC接続、TLSハンドシェイク、プロトコル認証が含まれます。ウェブページが多くの短いリクエストで構成される場合、接続確立と再利用の効率が初回表示に大きく影響します。2つ目は継続スループットで、回線帯域、輻輳制御、パケットロスからの復旧、サーバー出口に左右されます。3つ目はジッターと末尾遅延で、動画会議、音声、インタラクティブアプリの断続的な停止を左右します。1回の遅延値だけでは、後者2つの性能は評価できません。

SSはプロトコル処理が比較的シンプルで、CPU性能の低い端末でも負荷を抑えやすい方式です。TrojanやTLSを使うVMess、VLESSではTLS関連の計算が必要ですが、現代のプロセッサなら効率よく処理できます。Hysteria2とTUICのQUICスタックはUDPセッション、輻輳状態、暗号化コンテキストを維持するため、高スループット時にはCPU使用量が増えることがあります。ただしパケットロスの多い回線では、復旧機構が適していることで実効スループットが安定する場合もあります。リソース使用量はネットワーク品質と切り離せません。プロトコル処理が少し増えても再送待ちが減れば、タスク全体は早く終わることがあります。

暗号化、カプセル化、多重化のコスト

どのプロトコルにもヘッダー、認証、暗号化のオーバーヘッドがあります。違いは通常、接続ごとの状態数、カプセル化の層数、パケットサイズに現れます。WebSocket、gRPC、TLSの組み合わせは追加処理を生み、UDP上のQUICにも制御フレームや確認処理があります。大容量ファイル転送では固定コストの割合は小さい一方、多数の短い接続では小さいパケットや頻繁なハンドシェイクの影響が大きくなります。多重化は接続の作り直しを減らせますが、多ければよいわけではありません。多数の論理接続を1本の基盤接続に集中すると、その接続が不安定になった際に複数のタスクが同時に影響を受けます。

mihomoの接続再利用、TCP並列数、UDP処理オプションは、クライアントのバージョンとサブスクの説明に従って使い、異なる解説から「万能の最速パラメータ」を寄せ集めないでください。特に帯域幅、輻輳制御、接続プールの設定は、実際の回線に合わせる必要があります。モバイル回線の瞬間帯域は大きく変動するため、固定した上り・下り値はあくまで推定値です。テストではまずサブスクの初期値を維持し、項目を1つずつ変更します。ウェブ、小容量ファイル、長時間転送、スリープ復帰を最低限確認し、偶然のピークではない効果か判断してください。

観察する項目 SS VMess / VLESS / Trojan Hysteria2 / TUIC
接続確立の構成 構造は比較的シンプルで、プラグインにより変化 トランスポート層とTLSの組み合わせでハンドシェイク回数が決まる QUIC接続を確立し、UDPセッションを維持
高パケットロスへの適応 主に下位のTCP復旧に依存 TCPの組み合わせに依存し、詳細はトランスポート層次第 変動する回線に合わせて輻輳制御が動作
CPU負荷 通常は低い TLS、カプセル化、接続数の影響を受ける 高スループット時はQUICと輻輳状態の処理が必要
ネットワーク制限で影響を受けやすい点 ポート、プラグイン、サーバー設定 TLS、SNI、トランスポートフィールドの完全性 UDP到達性、セッション維持、速度制限

再現可能な手順で比較する

まずバックグラウンドのダウンロードとシステム更新を停止し、1台の端末、1種類のネットワーク、同じ時間帯に条件を固定します。各候補ノードで接続テストを1回行い、同じウェブサイト群を連続して開き、その後十分な時間のファイル転送または動画再生を実施します。最後に数分間画面をロックしてから復帰させます。記録するのは小数点以下までの正確な数字でなく、初回表示が安定しているか、継続転送が周期的に低下するか、音声に長い停止があるか、復帰後に手動再接続が必要かです。2~3周繰り返してから判断すると、キャッシュや一時的な混雑を排除できます。

ログとシステムモニターは、リソースのボトルネック特定に役立ちます。1コアのCPU使用率が長時間ほぼ100%で、ネットワークスループットも伸びないなら、端末の処理能力や暗号化実装の制限が考えられます。CPU使用率が低いのにパケットロスと再送が目立つなら、回線を重点的に調べます。同じノードで複数のプロトコルが同時に遅くなる場合は、サーバーや出口側の問題である可能性が高いでしょう。メモリについては、単一のプロトコルよりルールセットの規模、接続数、DNSキャッシュの影響が大きいことがあります。プロトコルを比較する際はルールとDNS設定を揃え、大規模なルール読み込みによるメモリ差をプロトコルの違いと混同しないでください。

05 · MOBILE AND PLATFORM

モバイルの電池、ネットワーク切り替え、プラットフォーム差

電池消費は継続動作の仕方で決まる

モバイル端末の電池消費を、暗号化の強さだけで判断することはできません。主な要因は、無線モジュールがアクティブでいる時間、接続の再確立頻度、バックグラウンドのキープアライブ方法、総データ通信量、DNS問い合わせ数、ルール照合の負荷、CPU処理時間です。あるプロトコルが短時間で処理を終えて無線モジュールを低消費電力状態に戻せるなら、一時的なCPU使用率が少し高くても総消費電力は低くなることがあります。逆に不安定なネットワークで再送や再接続を続けるプロトコルは、1回の処理が軽くても電池を多く消費する可能性があります。

SSは設定がシンプルで回線が安定している場合、処理負荷を低く抑えやすい方式です。Trojan、VMess、VLESSをTLSと組み合わせるとハンドシェイクと暗号化のコストが発生しますが、長時間接続を正常に再利用できれば、継続利用での差は目立たないことがあります。Hysteria2とTUICはUDPまたはQUICセッションを維持するため、ネットワークが安定していれば待ち時間を減らせます。一方、基地局の切り替え、ルーターによるUDPマッピングの破棄、バックグラウンド制限が頻発すると、セッション再構築による復帰回数が増えます。実際の電池消費はAndroidメーカーのバックグラウンド制限、iOSのネットワーク拡張機構、クライアント実装にも左右され、プロトコル名だけでは予測できません。

Android:バックグラウンド制御とVPNサービス

Androidクライアントは通常、システムのVPNサービスを通じて通信を引き受けます。Clash Plus、Clash Meta for Android、FlClash、Surfboardは画面や機能範囲が異なりますが、いずれもシステムの省電力設定、バックグラウンド権限、メーカー独自のプロセス管理の影響を受けます。画面ロック後に通信が切れる場合は、まずクライアントが動作し続けているか、VPNアイコンが残っているか、システムがバックグラウンドの電池使用を制限していないかを確認し、その後でプロトコルを調べます。アプリのプロセスがシステムに停止された場合、別のプロトコルへ変えても根本原因は解決しません。

AndroidではIPv6、プライベートDNS、アプリごとのプロキシ、テザリングにも注意が必要です。一部のアプリがIPv6を直接利用し、設定がIPv4だけを処理していると、特定のアプリだけ接続できないことがあります。プライベートDNSとクライアントのDNSハイジャック設定が併用されると、想定と異なる名前解決経路になる場合があります。アプリごとのプロキシはカーネルに入る通信範囲を変えるため、プロトコルをテストする際は対象アプリが実際に含まれているか確認してください。モバイルデータでHysteria2やTUICに異常がある場合はWi-Fiに切り替えて再テストし、Wi-Fiでは正常でモバイル回線だけタイムアウトが続くなら、UDP経路とネットワークポリシーを優先して確認します。

iOS:システムのネットワーク拡張と前後切り替え

iOSクライアントはシステムが提供するネットワーク拡張機能に依存し、接続状態、メモリ予算、バックグラウンド動作はシステムが一元管理します。本サイトのダウンロード一覧ではiOS向けの推奨クライアントをClash Plusとしており、iOSダウンロード欄からApp Storeへ移動できます。使用時は、システム設定のVPN状態、クライアント設定が有効か、Wi-Fiとモバイルネットワークの切り替え後に自動復帰するかを確認してください。iOSでは一般ユーザーがデスクトップと同じプロセス制御の詳細を確認できないため、調査の中心はシステムVPNの状態、設定ログ、ネットワーク切り替え後の結果になります。

モバイル端末でUDP系プロトコルを使うと、ネットワーク切り替えによってローカルアドレスとNATマッピングが変わります。QUICには接続変化を扱う仕組みがありますが、スムーズに復帰できるかはクライアント、サーバー、ネットワーク経路次第です。切り替え後も長時間復帰しない場合は、クライアントを切断して再接続し、ログにtimeoutが繰り返し出ていないか確認してください。TCP系ノードはすぐ復帰するのにUDP系だけ失敗し続けるなら、現在のネットワークがUDPセッションに適していないため、一時的にTCPのフォールバックを使います。

デスクトッププラットフォームで重視する違い

Windows、macOS、Linuxでは通常、スマートフォンの電池やバックグラウンド停止の問題はありませんが、システムプロキシ、TUN権限、ファイアウォール、スリープ復帰が重要です。Windowsの一部アプリはシステムプロキシに完全には従わないため、TUNモードやアプリ側の設定が必要です。ストアアプリはループバック制限の影響を受けることがあり、Windows UWPアプリのループバック制限を確認できます。macOSではシステムプロキシと仮想ネットワークインターフェースを区別し、スリープ後に接続が不安定ならシステムプロキシまたはTUNを再起動します。Linuxではデスクトッププロキシ設定、ルーティング権限、systemdサービスの状態、DNS管理コンポーネントを重点的に確認してください。

モバイルで優先して確認する項目

バックグラウンド権限、VPN状態、ネットワーク切り替え後の復帰、UDP到達性、アプリごとのプロキシ、DNS経路。

デスクトップで優先して確認する項目

システムプロキシ、TUN権限、ファイアウォール、アプリのプロキシ動作、スリープ復帰、ルーティングテーブル。

モバイルの電池消費を評価する際は、数分間の瞬間的なパーセンテージではなく、システムの電池統計で1回の利用サイクル全体を観察することをおすすめします。画面使用時間、データ量、アプリのタスクを近い条件に揃え、候補プロトコルを個別にテストしてください。信号が弱いときに端末が発熱し続けたり、バックグラウンド動作時間が明らかに増えたり、復帰後に再接続を繰り返したりする場合は、安定したノードへ変更するかフォールバックを使います。電池性能はプロトコル、ネットワーク、クライアント、システムスケジューリングの結果であり、抽象的な最低負荷を追うのではなく、無駄な動作を減らすことが選定の目標です。

06 · CORE FAMILY

公式Clash、Meta、mihomoの系譜

クライアントの画面とカーネルは別の層

Clashエコシステムでは、「クライアント」と「カーネル」を分けて理解する必要があります。クライアントはウィンドウ画面、サブスク管理、システムプロキシ、TUN権限、ログ表示、更新処理を担当します。カーネルは設定の読み込み、プロキシ接続の確立、ルールの実行、DNS、通信の転送を担当します。同じカーネルを異なる画面で包むこともあれば、同じクライアントプロジェクトが開発過程でカーネルを変更することもあります。プロトコル対応を判断するときは、ソフトウェア名だけでなく、クライアントが実際に使っているカーネルを確認してください。

公式Clashは、YAML設定、プロキシグループ、ルールマッチング、制御インターフェースなどの基本構造を築き、多くのサブスク形式もそのフィールドを基盤にしています。プロトコルやネットワーク機能の拡張に伴い、Clash Meta派生版はより多くのプロトコル、トランスポート方式、DNS機能、ルール拡張を追加しました。この派生版は後にmihomoという名称で発展を続けています。日常的にはMeta設定、Clash Metaカーネル、mihomoが同じ進化系統の異なる段階を指すことがありますが、トラブルシューティングでは現在のクライアントに表示されるカーネル名とドキュメントを基準にしてください。

機能差がプロトコル選びに与える影響

古い公式ClashはSS、VMess、Trojanなど一般的な種別を認識できますが、後から追加されたすべてのプロトコルやフィールドを自動的に利用できるわけではありません。VLESS、Hysteria2、TUIC、REALITY関連のオプション、新しいDNSやルール機能には通常mihomoが必要です。これらのノードを含むサブスクを旧カーネルのみ対応のクライアントへインポートすると、ノードが読み飛ばされる、設定検証に失敗する、未知のフィールドが無視される、設定全体を読み込めないといった結果になります。これはノード回線の障害ではなく、解析段階ですでに互換性がない状態です。

Clash Plus、Clash Verge Rev、FlClash、Clash Nyanpasuなどの現代的なGUIクライアントは、対応プラットフォーム、画面機能、カーネル統合にそれぞれ違いがあります。本サイトのダウンロードページではClash Plusを全プラットフォーム向けの第一候補としています。Linuxユーザーはデスクトップ環境に応じてClash Verge RevやFlClashも選べます。クライアントを選ぶ際はインストールできるかだけでなく、サブスクに必要なカーネルを使っているか、カーネルを更新できるか、設定検査エラーを表示できるか、必要なTUNモードに対応しているかを確認してください。サーバーやルーターではMihomoカーネルを直接使えますが、設定ファイル、サービスの起動、ログを自分で管理する必要があります。

主な役割 プロトコル互換性との関係
GUIクライアント サブスク、画面、システムプロキシ、TUN、更新、ログへの入口 カーネルのパッケージ化、呼び出し、更新方法を決める
公式Clashカーネル 基本的なプロキシ、ポリシーグループ、ルール、DNS処理 古い一般的なプロトコルと設定構造に適する
Clash Meta / mihomo プロトコル、トランスポート、DNS、ルール、プラットフォーム機能を拡張 VLESS、Hysteria2、TUICなど現代的な設定をカバー
サブスクまたはYAML ノード、ポリシーグループ、ルール、DNSを記述 フィールドは現在のカーネル構文に一致させる必要がある

設定の互換性は完全な後方互換ではない

mihomoは通常、Clashの構造で書かれた多くの設定を読み込めますが、すべての拡張設定を公式Clashの旧カーネルへ逆に渡せるとは限りません。新しいプロトコル、新しいルール種別、拡張DNSフィールドを含む設定は、旧カーネルで失敗する可能性があります。両方のカーネルが同じフィールドを認識していても、DNS処理の順序、ルールプロバイダーの読み込み方法、ヘルスチェック、TUNネットワークスタックの選択など、既定の動作が異なることがあります。クライアントを移行したら、ノード一覧が表示されることだけでなく、設定検証結果、ポリシーグループのメンバー、DNS解決、ルールのヒット状況を再確認してください。

設定ファイルのトップレベル構造も明確に保ちます。proxiesにはノード、proxy-groupsには選択とテストのロジック、rulesには通信先の振り分け、dnsには名前解決の動作を記述します。サブスク更新では一部だけが置き換わる場合もあれば、設定全体が上書きされる場合もあります。クライアントのオーバーライド、マージ、スクリプト機能は、更新後もローカル設定を維持するために使えますが、構文はクライアントによって異なります。マージ順を理解していない場合は、まずサブスクの元設定を保存し、項目を1つずつ追加してください。大量の拡張フィールドを一度に導入すると、エラー箇所の特定が難しくなります。

使用中のカーネルを確認する方法

クライアントの設定、バージョン情報、カーネル画面で名称を確認します。起動ログにもカーネル識別子と設定の読み込み結果が表示されることがあります。インストールパッケージ名から推測しないでください。ログにunsupported proxy typeが出た場合は、まずカーネルがmihomoか確認し、次にクライアントで正しいカーネルファイルが有効になっているか確認します。カーネルの起動は成功していて設定の読み込みに失敗するなら、エラー行とフィールド名を確認します。設定は読み込めても接続できない場合は、認証、TLS、DNS、ネットワークを調べます。「クライアント起動」「設定解析」「ノード接続」「ルール転送」を4段階に分けると、無効な試行を大幅に減らせます。

07 · SUBSCRIPTION

サブスク形式と設定互換性の確認

サブスクURLが固定形式を意味するわけではない

「サブスクURL」は設定を取得する方法を指すだけで、返却内容が常に同じ形式になるとは限りません。サーバーは完全なClash YAML、ノードだけのYAML、エンコードされたURI一覧、特定クライアント向けに生成された設定を返すことがあります。クライアントにインポートする際は、まず内容を取得し、レスポンス形式に応じて解析します。ブラウザでURLを開けても、サーバーがデータを返していることしか確認できず、現在のクライアントやカーネルに適合するとは限りません。

完全なClashまたはmihomo設定には通常、プロキシノード、ポリシーグループ、ルール、DNS、ポート設定が含まれます。ノードサブスクはproxiesデータだけで、ポリシーグループやルールをクライアントのテンプレートで補う場合があります。URI一覧では、ss://vmess://trojan://vless://hysteria2://tuic://などの形式でノードを表します。URIごとに複雑なトランスポートパラメータの表現力や実装の一貫性が異なるため、変換時にはpath、SNI、ALPN、フィンガープリント、REALITY、輻輳制御のフィールドが失われやすくなります。

インポート前後に行う4つの確認

1つ目はレスポンス状態です。インポートに失敗したら、サブスクURLに余分な空白がないか、アクセス時にログインページ、エラーページ、空の内容が返っていないか確認します。2つ目はノード数とプロトコル種別です。想定していたHysteria2、TUIC、VLESSのノードが解析段階で消えていないか確認します。3つ目は重要フィールドです。ノードを1つ展開し、サーバー、ポート、認証、TLS、トランスポート設定を確認します。4つ目はポリシーグループです。ノードが正常に解析されても現在のポリシーグループに追加されなければ、プロキシ画面には古いノードしか表示されないことがあります。

サブスク更新は、設定を再取得してマージする処理です。更新後にローカル変更が消えるなら、その変更がサブスク管理範囲に含まれていたということです。毎回生成ファイルを直接編集するのではなく、クライアントのオーバーライドまたは設定マージ機能を使ってください。更新後にノードが重複する場合は、同じ内容のサブスクを複数有効にしているか、古い設定が置き換えられていない可能性があります。更新時刻が変わってもノード内容が変わらない場合は、ログとレスポンスキャッシュを確認し、サブスクサービスが新しい内容を返しているか確認します。入口の操作方法とエラー分類はClashサブスクURLのインポート方法も参照してください。

FORMAT 01

完全なmihomo YAML

ノード、ポリシーグループ、ルール、DNSを含められます。機能は完全ですが、カーネル構文とフィールド互換性への要求が最も高くなります。

FORMAT 02

ClashノードYAML

proxiesを中心に提供し、通常はクライアントまたはテンプレートでポリシーグループを補います。ノードが選択可能なグループへ自動追加されるか確認してください。

FORMAT 03

プロトコルURI一覧

ノード単位で記述・共有しやすい一方、複雑な拡張フィールドは生成器とパーサーの違いで失われることがあります。

フィールドが欠落した場合の切り分け

まず、サブスクの元データとクライアントにインポートした後のノード詳細を比較します。元データの時点でフィールドが欠けていればサブスク生成側の問題です。元データが完全なのにクライアントで欠落するなら、クライアントのパーサー、サブスク変換、カーネル対応に原因がある可能性があります。VMessとVLESSではnetwork、servername、ws-opts、grpc-opts、reality-opts、flowを重点的に確認します。Trojanではpassword、sni、TLS、SSではcipher、password、plugin、Hysteria2とTUICでは認証、SNI、輻輳制御、UDP関連オプションを確認してください。

次に設定検査のエラーを確認します。YAMLはインデントに敏感で、リスト項目、マッピング、文字列の階層を誤ると設定全体を読み込めなくなります。ノード名にコロン、シャープ、特殊文字が含まれる場合は、引用符で囲むと曖昧さを減らせます。ブール値、数値、文字列も混同しないでください。たとえばポートは数値として扱い、UUID、パスワード、パスは通常文字列にします。手動編集後は、まずカーネルに構文チェックを行わせ、その後でシステムプロキシを起動して、形式エラーをネットワーク障害と誤認しないようにします。

mixed-port: 7890
mode: rule

proxy-groups:
  - name: "プロトコル選択"
    type: select
    proxies:
      - "VLESS-Reference"
      - "Hysteria2-Reference"
      - DIRECT

rules:
  - DOMAIN-SUFFIX,example.com,プロトコル選択
  - MATCH,プロトコル選択

この設定例は、ポリシーグループとルールがノード名を参照する仕組みを示しています。参照名は大文字・小文字や空白を含め、proxies内の名前と完全に一致させる必要があります。ノード名を変更すると、ポリシーグループ内の古い名前は無効になります。実際の設定にはDNS、ルールプロバイダー、より多くのポリシーグループも含まれますが、切り分けでは最小構成に絞り、まず1つのノードで接続を確立してから他の部分を戻すと安全です。内容不明の設定を大量にコピーすると、複数の変数が同時に増えて問題箇所を判断しにくくなります。

サブスク変換の限界

変換ツールはコンテナ形式を別の形式へ書き換えられますが、サーバー側のパラメータを新たに補ったり、プロトコルそのものを別のプロトコルへ変換したりはできません。可能なのは、フィールドのマッピング、ポリシーグループの生成、ノードの絞り込み、名前の調整です。新しいプロトコルや拡張トランスポートへの対応は変換ツール自体の実装に依存します。ツールがフィールドを認識しなければ、元のサブスクが正しくても出力は不完全になる可能性があります。VLESS REALITY、Hysteria2、TUICを扱う場合は、サーバーが直接提供するmihomo形式を優先し、更新後に重要フィールドを抜き打ちで確認してください。

サブスクが空、形式を認識できない、更新に失敗するといった場合は、まずよくある質問のインストール・設定カテゴリを確認してください。切り分けの順序は、URLにアクセスできる、レスポンス内容が正しい、形式を認識できる、カーネルがプロトコルに対応している、重要フィールドが揃っている、ノードがポリシーグループに入っている、接続ログが正常、の順に保ちます。この順で層ごとに確認するほうが、クライアントを何度も削除して再インストールするより根本原因を見つけやすくなります。

08 · PRACTICAL CHOICE

用途別にプロトコルを選び、トラブルシューティングを行う

安定した家庭回線と日常のウェブ閲覧

遅延とパケットロスが安定した家庭回線では、プロトコル差より回線差のほうが大きいことがよくあります。SS、Trojan、VMess、VLESSのTCP系構成はいずれも日常用途の候補になります。サブスクの設定が完全で、クライアントログに異常がなく、ウェブの初回表示が安定するノードを優先してください。端末性能が限られる場合は、シンプルなSSから試す価値があります。保守状態の良いTrojanやVLESS TLS設定が提供されているなら、それをそのまま使ってもよいでしょう。継続転送や高パケットロスのテストで明確な効果がない限り、プロトコル名だけを理由にUDP系へ切り替える必要はありません。

家庭ネットワークで、どのプロトコルも特定の時間帯に遅くなるなら、回線の混雑、Wi-Fi信号、ルーター負荷、サーバー出口を確認します。特定のトランスポートだけが失敗する場合は、対応するポート、TLS、SNI、トランスポートパスを確認してください。ルールモードでは、テスト通信が本当に選択したポリシーグループを通っているかも確認します。ルールがDIRECTに一致していれば、ノードを切り替えても結果は変わりません。ログ画面で対象ドメインが最終的にどのルールとポリシーに一致したか確認できます。

モバイルデータ、公共Wi-Fi、高ジッター回線

モバイルデータや公共Wi-Fiでは、遅延、帯域、パケットロスが大きく変動します。UDP経路が安定しているなら、Hysteria2、TUIC、TCPのフォールバックノードを比較してください。重視すべきなのはネットワーク切り替え後の復帰、継続利用中の停止、端末の発熱であり、1回のピーク速度ではありません。Hysteria2の帯域幅設定は実際の能力に近づけ、TUICの輻輳制御とUDPリレー設定はサブスクの組み合わせを使います。ネットワーク切り替え後にUDP系ノードのタイムアウトが続くなら、Trojan、SS、その他のTCPノードへ変更するほうが、再試行を繰り返すより効果的です。

公共Wi-Fiでは、ポータル画面で先にネットワーク認証を完了しなければならないことがあります。Clashに接続する前にシステムプロキシを一時停止し、基礎ネットワークへアクセスできることを確認してください。認証後にクライアントを有効にします。基礎ネットワーク自体がつながっていなければ、どのプロトコルも失敗します。TCPは許可してもUDPを制限するネットワークがあり、その場合Hysteria2とTUICが同時に使えないのは想定内です。ポリシーグループに安定したTCPノードをfallback候補として設定できますが、自動ヘルスチェックは探測先への到達性しか示さないため、実際のアプリでも検証してください。

継続ダウンロード、動画、リアルタイム通信

継続ダウンロードでは、長時間のスループットと変動を確認します。回線品質が良ければ、複数のプロトコルが帯域上限に近づくことがあります。パケットロスが多い場合は、Hysteria2やTUICの輻輳制御が有利になる可能性がありますが、サーバー帯域は依然として物理的な制限です。動画再生はコンテンツ配信、バッファリング、ルールによる振り分けにも左右されるため、1回の停止を直接プロトコルのせいにしないでください。動画ドメインが想定したポリシーグループに入り、DNSの応答が妥当か確認し、同じノードを時間帯を変えて観察します。

リアルタイム通信では、ジッター、末尾遅延、UDP転送がより重要です。クライアントからサーバーまでQUICを使っていても、対象アプリのすべてのUDPパケットが想定どおり転送されるとは限りません。ノードがUDPに対応し、クライアントで必要な機能が有効で、ルールが通信を誤った出口へ送っていないか確認します。音声は接続できるものの周期的に途切れる場合は、ネットワーク切り替え、UDPセッションのタイムアウト、Wi-Fi信号を確認します。まったく確立できない場合は、アプリがVPNを通っているか、DNSが正常か、サーバーが対応する転送をサポートしているかを確認してください。

低性能端末、ルーター、サーバー

リソースの限られたルーターでは、プロトコル比較より先にルールセットの規模、接続数、ログレベルを抑えます。SSのシンプルな実装は基本選択肢に適しています。TLSやQUICプロトコルで期待したスループットが出るかは、端末のCPUと暗号化性能次第です。mihomoカーネルは現代的なプロトコル、ルール、DNS機能が必要な環境に適しますが、大量のルールプロバイダー、複雑なDNS、高い同時接続数はメモリを消費します。本サイトのLinux・カーネルダウンロード欄には、サーバーやルーターユーザー向けのMihomoファイルを用意しています。一般的なデスクトップユーザーにはGUIクライアントが適しています。

サーバー環境ではカーネルをシステムサービスとして管理し、設定の起動に失敗したらサービスログと終了ステータスを確認します。カーネルを更新する前に現在の設定を保存し、先に設定検査を実行してください。新しいプロトコルのノードを読み込めない場合は、バイナリのアーキテクチャと設定構文を確認します。サービスは起動するのにLAN端末から使えない場合は、リッスンアドレス、ファイアウォール、ルーティング、LANアクセス設定を調べます。プロトコル選びは一つの層にすぎず、システムネットワークの設定ミスはノード種別を変えても解消しません。

利用シーン 優先して試すもの 残しておくフォールバック 重点的に見る項目
安定した回線とウェブ閲覧 SS、Trojan、VMess、VLESSのTCP構成 検証済みの同系統ノード 初回表示、TLSエラー、ルール一致
ジッターの大きいモバイル回線 Hysteria2またはTUIC SS、Trojan、VLESSのTCP構成 切り替え後の復帰、UDPタイムアウト、電池
継続転送 回線が安定した候補プロトコルを個別に実測 異なる回線またはトランスポート種別 長時間スループット、パケットロス、CPU
低性能端末 シンプルなSSまたは検証済みの軽量設定 ルールと並列数を抑えた現代的なプロトコル 1コアの使用率、メモリ、端末温度

実行可能な最終判断の手順

第1段階では、サブスクのプロトコルに対応する現代的なクライアントを選びます。クロスプラットフォームで一貫した体験が必要なら、まずClash Plusから始め、OSや画面の要件に応じてClash Verge Rev、FlClashなどを比較します。第2段階では、カーネルがmihomoであることを確認し、設定を構文チェックに通します。第3段階では、サブスクからTCP系ノードとUDP系ノードを1つずつ選び、認証、TLS、トランスポート、ポリシーグループのフィールドを確認します。第4段階では、普段使うネットワークでウェブ、継続転送、リアルタイムアプリ、スリープ復帰をテストします。第5段階では、ログをもとに失敗を解析、認証、TLS、DNS、UDP、ルール、システムプロキシのいずれかに分類し、「このプロトコルは駄目」とだけ記録しないようにします。

第6段階では、主要な用途に第一候補とフォールバックを1つずつ残します。家庭回線では安定したTrojan、VLESS、SSを選び、別の回線を残します。モバイルネットワークではUDPが使える場合にHysteria2やTUICを利用し、同時にTCPノードを残します。リソースの限られた端末では、処理負荷を抑えやすく設定が簡単な方式を優先します。第7段階では、サブスク更新やクライアント更新の後にノードのフィールドとポリシーグループを抜き打ちで確認し、以前の結果が永続的に有効だとは考えません。ネットワーク、サーバー、カーネルは変化するため、選定は繰り返し検証できる方法として運用します。

すべてのノードに接続できない場合は、まず基礎回線に戻ります。端末が正常にインターネットへ接続できるか、システム時刻が正しいか、サブスクを更新できるか、設定が有効か、プロキシモードとシステムプロキシの状態が一致しているかを確認し、最初に現れた明確なエラーログを確認します。特定のアプリだけ異常なら、システムプロキシに従うか、TUNが必要か、独自DNSやUDPを使うかを調べます。特定のプロトコル種別だけ異常なら、対応カーネルとフィールドを確認します。さらに詳しいエラー分岐はFAQのトラブルシューティングを、ポリシーグループの自動選択はurl-test、fallback、load-balanceの比較を参照してください。