プロトコルの種類 · コアの互換性 · 用途別の選び方

プロキシプロトコルとコアの解説.

まずサーバー側で提供される方式を確認し、次にコアが設定を読み込めるかを調べ、最後に現在のネットワークでの実際の使い勝手を比べましょう。

クライアント選びやサブスクリプションの移行、ノードの種類を比較するときに役立つページです。プロトコルの設計意図、組み合わせて設定する必要がある項目、プラットフォームごとの違いを解説します。初回接続がまだの場合は、まず入門ガイドに沿ってインストール、設定の読み込み、接続確認を済ませてから、該当する章を参照してください。

プロトコル SS / VMess / Trojan 通信方式 TCP / UDP / QUIC 設定 proxies / proxy-providers

1. プロトコルを選ぶ手順

クライアント、コア、プロトコルを分けて考える

クライアントは操作画面として、ノードの表示、設定の読み込み、システムプロキシの管理、必要な権限の取得を担います。コアは設定の解析やルール判定、接続の確立を担当し、プロトコルはクライアントとサーバー間の認証、データのカプセル化、転送方法を定めます。同じ画面で複数のコアを切り替えられる場合もあれば、同じコアを複数の画面から使う場合もあります。そのため、クライアント名に「Clash」とあっても、すべてのClash設定に対応するとは限らず、特定のノードが必ず接続できるとも限りません。

ノードはプロトコルの種類だけで決まるものではありません。通常、接続設定にはサーバーアドレス、ポート、認証情報、通信方式、暗号化やTLSの設定に加え、パス、ホスト名、追加オプションが含まれます。同じVLESSのノードでも、TCPとWebSocketの違いがあったり、証明書やサーバーの構成が異なったりします。比較する前にノードの詳細を開き、設定項目を確認してください。種類のラベルだけを見ると、回線の違いをプロトコルの違いと取り違えるおそれがあります。

まず利用可能な範囲を確認し、その後で性能を比較する

最初に、サービス提供元がどの方式を提供しているか、mihomoでそのまま読み込める設定かを確認します。次に、アプリストアの説明だけでなく、クライアントが現在どのコアを使っているかを調べます。さらに、現在のネットワークで該当する通信方式が利用できるか確認しましょう。特にQUICを使う方式では、UDP通信が可能である必要があります。この3点を確認してから、Webページの表示待ち時間、大容量ダウンロードの安定性、ビデオ会議の途切れにくさ、スマホのスリープ後の復帰を比べましょう。

この順番で確認すれば、無駄な試行錯誤を減らせます。コアがある方式を認識しない場合、速度測定先を変えても設定の解析エラーは解消しません。サーバーがTCPのみを待ち受けている場合、クライアントでUDPを有効にしてもサーバー側に対応が加わるわけではありません。証明書のホスト名が一致しない場合、ルールグループを変更してもTLSのハンドシェイクは直りません。まず失敗が設定の読み込み、解析、接続、アプリのリクエストのどの段階で起きているかを見極め、その段階に対応する設定を変更しましょう。一度に変更する項目を一種類に絞るほうが、クライアントを何度も再インストールするより効果的です。

接続モードとプロトコルの種類を混同しない

ルール、グローバル、ダイレクトの各モードは通信の経路を決めます。システムプロキシとTUNは、どのアプリの通信をコアに渡すかを決めるもので、ノードのプロトコルとは別の設定です。TUNを有効にすれば、システムプロキシを参照しないアプリの通信もルール処理に渡せますが、SSがHysteria2に変わるわけではなく、サーバー側にUDP転送が自動で追加されるわけでもありません。通信を取り込む範囲を広げると、これまで表面化していなかったDNS、LANアクセス、ほかの仮想ネットワークインターフェースとの競合が起こることもあります。

一般ユーザーは、まず読み込み済みの設定で安定した接続を確認し、その後、通信を取り込む範囲を段階的に広げるのがおすすめです。デスクトップやモバイルでクライアントを選ぶときは、まずClash Plusを確認してください。Linuxデスクトップでは、ダウンロードページからClash Verge RevまたはFlClashを選べます。プラットフォーム別のリンクとインストール形式はクライアントのダウンロードページをご覧ください。ここでのおすすめは操作画面の選択肢です。同じ名前のノードでも、使うクライアントによって回線品質が変わるわけではありません。

比較する前に、何を重視するかも決めておきましょう。日常的なWeb閲覧なら初回応答と失敗率、大容量ファイルなら持続的な転送速度、リモート端末なら操作時の遅延、モバイル機器ならネットワーク切り替え後の復帰に注目します。目的を定めずに総合ランキングを追うと、不要な機能のために保守の手間を増やしかねません。プロトコルは通信経路の一部にすぎず、サーバーの負荷、出口回線の混雑、DNSの解決場所、アプリ自体がボトルネックになることもあります。

2. SSとVMessの設計上の違い

Shadowsocks:シンプルなプロトコル構成

Shadowsocksは一般にSSと呼ばれ、暗号化プロキシ転送を中心とする比較的シンプルな設定方式です。主な必須項目はサーバー、ポート、パスワード、暗号化方式です。包括的なトンネル管理システムのように、あらゆるルーティング設定を担うわけではありません。どのドメインを直接接続し、どの通信を転送するかは、通常クライアントのルールで決めます。この役割分担により基本設定を理解しやすく、リソースの限られた機器にも導入しやすくなります。ただし、実際のリソース消費は実装、暗号方式、同時接続数、通信量によって変わります。

SSの設定を確認するときは、旧式のストリーム暗号、一般的なAEAD方式、Shadowsocks 2022系を区別しましょう。単に名称が新しくなっただけではなく、鍵の形式や実装要件も異なります。特に2022方式では、パスワードに対応するアルゴリズム固有の形式や長さが求められることがあり、覚えやすい文字列に自由に置き換えられるわけではありません。コアが暗号化方式に対応していないと表示された場合は、方式名とコアの対応状況を確認してください。リスト内の別の方式に置き換えるだけでは解決しません。

SSにはプラグインを使う構成もあります。サーバー側で特定のプラグインが必要な場合、アドレス、パスワード、ポートだけを読み込んでも不十分で、クライアントが該当プラグインとパラメーターに対応している必要があります。スマホアプリで共有リンクを読み込めても、リンク内の拡張機能すべてに対応するとは限りません。UDP転送にもクライアント、サーバー、ネットワーク経路のすべてで対応が必要です。ゲームや音声通話が使えずWebページは表示できる場合は、すぐにパスワードの誤りと決めつけず、UDP転送と通信の取り込み範囲を確認しましょう。

VMess:認証と通信方式の組み合わせ

VMessはV2Rayエコシステムに由来し、ノード設定では通常UUIDをユーザー識別子として使い、プロトコル認証と下位の通信方式を組み合わせます。TCP、WebSocketなどの対応する通信方式と組み合わせ、さらにTLSを使う構成もあります。柔軟なぶん設定項目は多く、アドレスとユーザー識別子だけでなく、通信方式の名前、WebSocketのパス、リクエストのホスト名、TLSのサーバー名がサーバー側と一致しているか確認が必要です。項目が一つ欠けているだけでも、接続が待ち続けることがあります。

古い資料には、ゼロ以外のalterIdを使う旧式のVMess認証が記載されていることがあります。現在の設定ではAEAD方式が一般的で、mihomoでは通常alterId: 0と記述します。読み込みを通すためだけに、古い設定の値を機械的にゼロへ変更してはいけません。サーバー側の認証方式も一致させる必要があります。VMessでは時刻の同期も重要です。システム時刻が大きくずれていると認証に失敗することがあります。認証情報が正しいのに同じ種類のノードがすべて失敗する場合は、自動時刻設定とタイムゾーンの表示を確認しましょう。

確認項目SSVMess
認証の要点パスワードまたは所定の形式の鍵UUIDと対応する認証方式
主な違い暗号化方式、プラグインのパラメーター通信方式、TLS、パス、ホスト名
UDPの条件両端の実装とネットワーク経路が対応していることコア、サーバー、設定のすべてが対応していること
移行時のポイント方式名と鍵の形式を維持する認証情報とすべての通信設定を維持する

互換性と負荷の考え方

すでに安定したSSまたはVMessのノードがあり、クライアントで設定を正しく読み込めて、普段使うアプリも問題なく動作しているなら、プロトコルの登場時期が古いという理由だけで移行する必要はありません。長く使われている設定は想定される動作を確認しやすく、問題が起きたときのチェック項目も明確です。移行を検討する理由は、コアの開発終了、必須機能の不足、サーバー側の変更、現在のネットワークで繰り返し確認できる性能問題などです。一度の速度測定の順位変動だけを理由にする必要はありません。

SSなら必ず省電力、VMessなら必ず高負荷というわけではありません。TLS、外側の通信方式、多重化、接続数、ハードウェアの暗号化機能によって結果は変わります。アイドル中に頻繁な接続確認を行うシンプルなプロトコルのほうが、適切にスリープする複雑な設定より電池を消費することもあります。近距離のVMessノードが、混雑したSSノードより速く応答する場合もあります。異なる回線での速度測定はノード選びの参考にはなりますが、プロトコルの優劣を単独で証明するものではありません。

3. TrojanとVLESSの接続条件

Trojan:TLSの条件をひとつずつ確認

Trojanは一般に、TLS接続でプロキシリクエストを運び、パスワードでユーザー認証を行います。見落としやすいのはパスワードより、接続先アドレスと証明書名の関係です。サーバーアドレスにはドメイン名もIPアドレスも使えます。一方、TLSハンドシェイクで使用するサーバー名は、サーバー設定と証明書に合っている必要があります。ノードに指定されたSNI、証明書チェーン、ポートは一組として確認しましょう。アドレスを名前解決できるだけでTLSの条件を満たしたとは限りません。

TLSの検証では、証明書の信頼性、名前の一致、有効期限などを確認します。ログに証明書エラーが表示されたら、まず端末の時刻、ノードのサーバー名、サーバー側の証明書の状態を確認してください。証明書の検証を無効にすれば一時的に接続できる場合がありますが、サーバーの身元を確認できなくなり、サブスクリプションに誤った名前が記載されている問題も見逃しかねません。通常の利用では検証を有効にしておきましょう。自分で構築した環境では、正しい証明書または信頼できる証明書チェーンを設定してください。

TrojanでUDP転送に対応していても、クライアントとサーバーの間に独立したネイティブUDP通信が必ず確立されるわけではありません。一般的な実装ではUDPデータを信頼性の高い接続にカプセル化して送るため、外側の接続で発生したパケットロスやキューイングの影響をリアルタイムアプリが受けることがあります。Webページは使えるのに音声が不安定な場合は、アプリのUDP通信がクライアントに届いているか、ノードが転送を許可しているか、外側の通信が混雑していないかを切り分けましょう。ノード詳細のUDPスイッチだけを見ても判断できません。

VLESS:軽量なプロトコルでも外側の設定が重要

VLESSもV2Ray関連のエコシステムに由来し、軽量な認証と転送を基本に設計されています。一般にUUIDでユーザーを識別します。プロトコル層にはVMessと同じ仕組みのペイロード暗号化がないため、導入時には通常TLSなど、対応する安全な通信方式を利用します。「軽量」という名前だけで、より安全または高速になるわけではありません。一部の役割を外側の層に委ねる設計なので、ノード選びではUUIDとアドレスだけでなく、安全性の設定と通信方式も確認してください。

VLESSのTCP、WebSocket、gRPCなどの組み合わせは、自由に入れ替えられるものではありません。サーバーが特定の通信方式で接続を受け付ける場合、クライアント側を別方式に変えると通常は接続できません。REALITYや特定のflowを使うノードでは、対応するコアに加えて、公開鍵、short ID、サーバー名、flowなどの設定も一致させる必要があります。共有リンクにこれらの項目があり、変換後の設定に残っていない場合は、ルールモードを何度も変更せず、まず形式の互換性を確認してください。

高度な設定は両端の対応が必要

クライアントにスイッチがあっても、サーバー側で同じ方式が設定されているとは限りません。特定のflowには、プロトコル、安全性の層、サーバー側の構成が正しくそろっている必要があります。多重化も両端の実装が対応していなければ使えません。高度な設定をすべて有効にしてもメリットが積み上がるわけではなく、原因を特定しにくいハンドシェイクエラーが起きることもあります。提供元の設定をそのまま保ち、まず基本的な接続を確認してから、サーバー側の対応状況を把握したうえで任意の項目を調整するのが安全です。

TrojanとVLESSを比較する際は、現在のノードが適切に構築されているか、クライアントが必要な機能に完全対応しているか、証明書や設定項目を保守しやすいかを確認しましょう。すでに安定したTLSノードを使っているなら、使い続けても構造上の問題はありません。特定の通信方式が必要な場合は、それに対応するVLESSの構成を確認してください。特定の通信方式のメリットを、すべてのVLESSノードがすべてのTrojanノードより優れているという結論に広げてはいけません。

トラブルシューティングでは、ドメイン名の名前解決、ポートへの接続、TLSの完了、認証の成功、宛先からの応答を順に記録するとよいでしょう。証明書エラーはルール設定より前に発生し、認証エラーをDNSキャッシュの削除で直すこともできません。ログが分かりにくい場合は、まず一つのノードで単一のリクエストを試し、複数の自動選択グループを同時に測定しないようにします。その後、該当する段階をよくある質問で確認してください。一度にすべての項目を変更するのは避けましょう。

4. Hysteria2とTUICに必要なUDP環境

QUICが解決するのはどの層の問題か

Hysteria2とTUICはどちらもQUICを基盤とし、通常はUDPで通信します。QUICは信頼性のある転送、安全なハンドシェイク、多重ストリームの管理をユーザー空間で実装できます。TCPの単一バイトストリームでパケットロスが起き、すべての論理ストリームが同じ順序で待たされる問題を避けられる場合があります。ただし、ネットワークの帯域は共有され、送信速度は輻輳制御の影響を受けます。多重ストリームでも各接続に専用帯域が割り当てられるわけではなく、パケットロス後の再送コストがなくなるわけでもありません。

最初に確認すべきなのはUDPの通信経路です。ゲスト用ネットワークなどでは、利用できる通信方式が限られていたり、長時間のUDPセッションが不安定になったりすることがあります。その場合、あるネットワークでは使えるノードが、別のネットワークではタイムアウトを繰り返すことがあります。システムプロキシとTUNの切り替えで変わるのは端末側の通信の取り込み方であり、外部ネットワークでUDPが許可されるわけではありません。検証済みのTCP系ノードを一つ残しておくほうが、同種のQUICノードを増やし続けるより切り分けに役立ちます。

Hysteria2:帯域設定は大きければよいわけではない

Hysteria2は、パケットロスや遅延の変動がある接続環境を想定し、認証、TLS、輻輳制御に関する機能を備えています。設定にある帯域パラメーターは、コアの実装とサーバーとのネゴシエーション方法を踏まえて解釈してください。サブスクリプションサービスが保証する帯域ではなく、数値を大きくすれば速度が上がるわけでもありません。帯域推定に基づく送信方式を使う場合、実際の回線能力を大幅に超える値を設定すると、キューイングやパケットロスが増え、同じネットワーク上のほかのアプリにも影響することがあります。

サーバーとコアが帯域情報のネゴシエーションに対応している場合は、まず提供元の設定に従いましょう。手動設定が必要なら、現在の接続ネットワークで持続的に利用できる帯域を基準にし、操作やほかの機器のための余裕を残してください。スマホがWi-Fiからモバイル回線に切り替わると、以前の推定値が適切とは限りません。HysteriaとHysteria2は、種類の名前だけを変更すれば使える同一のプロトコルではありません。読み込み時にサーバー側の世代とクライアントの実装が一致しているか確認してください。

TUIC:認証、輻輳制御、セッション管理

TUICもQUICを利用してプロキシ通信を行い、一般的な設定にはUUID、パスワード、TLSサーバー名、ALPN、輻輳制御のオプションが含まれます。プロトコルの世代や実装によって互換性に差があり、共有リンクの見た目が似ていても、クライアントとサーバーが対応するとは限りません。読み込みには成功してすぐ切断される場合は、ハートビート間隔を短くする前に、プロトコルの世代、認証情報、ALPNを確認してください。誤ったセッションを維持しようとしても、認証の問題は解決しません。

どちらのプロトコルにもUDPリレー方式、接続維持、ハンドシェイクの最適化に関するオプションがあります。0-RTT方式は確立済みのセッション情報と両端の対応に依存し、リプレイ攻撃のリスクも考慮する必要があるため、汎用的な高速化スイッチとして使うものではありません。接続の移行機能も実装やネットワーク経路に左右されます。Wi-Fiからモバイル回線に切り替えた後も、すべてのアプリの通信がそのまま維持されるとは限りません。アプリ側で再接続が必要になることもあります。

症状まず確認する項目安易に行わない調整
特定の接続ネットワークだけで失敗するUDPの到達性、ネットワークポリシー、名前解決認証パスワードを何度も変更する
通信負荷が増えると途切れる帯域推定、輻輳、端末の処理能力送信帯域の設定をさらに上げる
読み込みはできるがハンドシェイクに失敗するプロトコルの世代、認証、TLS、ALPN証明書の検証をすべて無効にする
しばらくアイドル状態が続くと再接続が必要セッションのタイムアウト、バックグラウンド制限、接続維持の設定ハートビートの間隔を極端に短くする

UDPが利用でき、実際にパケットロスや遅延の変動がある環境では、この2種類の方式を既存ノードと並行して試す価値があります。ただし、暗号化、タイマー、ユーザー空間でのパケット処理も必要なため、端末の負荷と電池消費は実測してください。一度の大容量ダウンロードが速かっただけで、Web閲覧、音声通話、スリープ中の動作、ネットワーク切り替えもすべて改善すると判断しないようにしましょう。性能は具体的な用途ごとに評価してください。

5. 速度、リソース、スマホの電池消費

待ち時間を段階ごとに見る

ノード一覧の遅延は、特定の条件で行った接続確認の結果であり、あらゆるWebサイトへのアクセスにかかる時間とは異なります。実際のリクエストでは、DNSの名前解決、サーバーへの接続、プロトコル認証、TLSハンドシェイク、接続先への通信、応答待ちが発生します。接続確認によって既存接続を再利用する場合も、毎回新しい接続を作る場合もあります。ルールグループを経由する場合もあれば、ノードへ直接接続する場合もあります。クライアント間で測定条件が違う数字を、同じ基準でそのまま比較することはできません。

短いWebリクエストでは初回のハンドシェイクや接続先の応答が影響しやすく、大容量ダウンロードでは帯域、パケットロス、継続的な輻輳が表面化しやすくなります。リモート端末は、一時的なキューイングや操作の引っかかりに敏感です。多重化で接続の繰り返しを減らせても、複数のリクエストが一つの外側の接続に集中する場合があります。混雑時に使い勝手が改善するかどうかは、通信方式と実装によって異なります。最初の表示、再アクセス、継続的なデータ転送をそれぞれ確認し、ダウンロード速度一つで日常の使い勝手を評価しないようにしましょう。

リソース消費はプロトコル名だけでは決まらない

プロセッサの暗号化命令への対応、OSのネットワークスタック、コアの実装、接続数、ログレベルは、いずれもリソース消費に影響します。デスクトップでは目立たない設定が、古いスマホやルーターではボトルネックになることもあります。QUICではユーザー空間の処理やタイマーが負荷になる一方、従来型のプロトコルもプラグイン、多重のカプセル化、多数の同時接続によって負荷が増える場合があります。すべての機器に共通するメモリ使用量や消費電力を、プロトコルごとに一つの数値で示すことはできません。

タスクマネージャーを見るときは、クライアントの画面とコアのプロセスを分けて考えましょう。画面のアニメーション、ログの更新、サブスクリプションの解析、バックグラウンド更新は画面側のプロセスに負荷をかけることがあります。一方、実際の転送処理は別のプロセスで実行される場合があります。測定前に不要なリアルタイムログを停止し、サブスクリプションの更新が終わるのを待って、アプリのタスクを統一してから、CPU使用率とメモリ使用量の推移を確認してください。起動直後のピークだけでは長時間利用時の負荷を判断できません。

スマホの電池消費は起動頻度が影響する

モバイル機器では暗号化の負荷に加えて、無線モジュールが動作している時間も重要です。頻繁な稼働確認、短い間隔のハートビート、繰り返される接続失敗、複数のルールグループによる同時測定は、端末を何度もスリープから起こすことがあります。通信量が少なくても省電力になるとは限りません。不要な確認を減らし、重複するサブスクリプション更新を避けたうえで、実際の切断状況に応じて接続維持を調整するほうが、プロトコルを変えるだけより効果を検証しやすくなります。

AndroidのVpnServiceは、クライアントがシステムの通信を受け取るために使われます。権限を許可しても、システムがアプリのバックグラウンド動作を常に認めるとは限りません。バッテリー最適化、メーカー独自のバックグラウンド管理、自動起動の設定が、復帰の速さに影響する場合があります。詳しくはAndroidのバックグラウンド動作に関する設定をご覧ください。バックグラウンド動作の許可で解決するのはプロセスの維持であり、電池消費の問題すべてがこの権限に起因するわけではありません。検証のためにシステムの省電力機能をすべて長期間無効にする必要もありません。

用途確認する項目統一する条件
Web閲覧とオフィス作業初回応答、再試行の失敗、連続アクセス対象サイト、接続ネットワーク、アプリ
大容量ダウンロード持続的な転送速度、切断、端末の発熱ファイルの取得元、同時接続数、時間帯
スマホの待機中バックグラウンドからの復帰、スリープ解除、電池使用量確認の間隔、画面の状態、電波状況
音声通話とインタラクティブな操作途切れ、一時的な遅延、接続の復帰アプリの動作とUDPの対応状況

比較するときは候補のノードを順番に使い、ネットワーク、時刻、接続先、失敗状況を記録します。普段使う用途を少なくとも一通り試してください。ノードごとにサーバーが異なる場合、結論は「現在の条件ではこのノードが適している」とし、特定のプロトコルが常に速いとは判断しないようにしましょう。スマホの評価では、モバイル回線の電波強度と画面の電池消費にも注目してください。こうした条件が大きく変わる場合、システムの電池使用量の統計だけではプロトコルによる差を独立して証明できません。

6. オリジナル版、Meta、mihomoコア

名称の変遷と対応範囲

オリジナル版Clashでは、YAML設定、プロキシグループ、ルールによる通信の振り分けを中心とする使い方が確立されました。その後、この設定方式をベースにプロトコルやネットワーク機能を拡張したClash.Metaが登場し、後継のMeta系コアはmihomoという名称で使われています。Metaとmihomoは、設定をすべて一から学び直す必要がある無関係なシステムではありません。ただし、名称が似ていても、すべてのバージョンで設定項目や動作が完全に同じとは限りません。

オリジナル版のオープンソースコアとClash Premiumも区別する必要があります。過去の一部のTUN、ルールセット、スクリプト機能は異なる配布系統で提供されていたため、すべてを「オリジナル版が対応」とまとめることはできません。また、古い画面の機能を示す画像だけで、現在のオープンソースコアの動作を判断するのも避けましょう。古いチュートリアルにコアの系統や設定の前提が記載されていない場合は、考え方の参考として扱い、現在の設定項目にそのまま転記しないでください。

大枠の互換性と個々の設定項目の互換性は別

proxies、proxy-groups、rulesなどの一般的な構造には高い継続性があり、基本的なSS、VMess、Trojanの設定も移行できる場合が多くあります。mihomoはVLESS、Hysteria2、TUICなどの種類や、より多くのルール、DNS機能にも対応していますが、実際に使える項目は利用中のビルドによって異なります。プロトコルの種類を認識できるのは最初の確認にすぎません。通信方式の組み合わせ、flow、TLSのオプション、追加の認証項目も確認してください。

逆方向の互換性は失敗しやすくなります。新しいプロトコル、新しいルール構文、新しいDNS項目を含む設定を古いコアで使うと、未知の種類としてエラーになったり、一部の項目が無視されて異なる経路に振り分けられたりすることがあります。ルールセットの形式、マッチング動作、DNSの振り分けには相互の関係があるため、設定が起動しただけでは通信経路が完全に一致しているとは限りません。移行後は、接続先と期待する経路を把握している対象をいくつか選び、実際に適用されたルールと出力先を確認しましょう。

コアの系統設定を読むときのポイント移行時の注意点
オリジナル版Clash(オープンソース)従来のプロトコル、基本的なポリシーとルール構造後から追加された拡張プロトコルに対応しているとは限らない
Clash Premium歴史的な独自機能と設定上のルールを区別するスクリプトなどの機能はそのまま移行できない場合がある
Clash.Meta / mihomo拡張プロトコル、ルールセット、DNS、TUN現在実行中のコアで設定を確認する

実際に動作しているコアを確認する

デスクトップクライアントにはコアが同梱されている場合もあれば、切り替えられる場合や別のサービスプロセスとして動作する場合もあります。アプリのバージョン画面に表示されるクライアントのバージョンが、コアのバージョンと同じとは限りません。トラブルシューティングでは、コア情報や起動ログで名称を確認し、現在の設定をどこから読み込んでいるかを調べましょう。複数のクライアントをインストールしたことがある場合は、システムプロキシの接続先ポートと、古いサービスがバックグラウンドで待ち受けていないかも確認してください。画面上の設定変更が別のプロセスの通信に反映されていない可能性があります。

コマンドラインでは、次のコマンドを使ってmihomoの情報を確認し、指定したディレクトリの設定を検査できます。設定検査に合格しても、構文とコアが認識できる設定項目が正しいことを示すだけです。接続先のパスワード、証明書、回線への到達性までは確認できません。検査を実行する前に、指定したディレクトリが普段使っているものか確認してください。GUIクライアントは独自の実行時設定を生成することが多く、指定したパスを読み込んでいるとは限りません。

mihomo -v
mihomo -t -d "$HOME/.config/mihomo"

コアのアップグレードや切り替えの前に、元の設定、ルールの参照先、ローカルの上書き設定を保存してください。移行後はDNS、システムプロキシ、TUNの状態を確認します。権限不足はシステムとの連携に関する問題であり、ノードのプロトコルを変更しても解決しません。機能の違いはmihomoとオリジナル版コアの違いをご覧ください。サポート終了後のクライアントから設定を移す場合は移行チェックリストを参考にし、元に戻せる動作環境を残しておきましょう。

7. サブスクリプション形式と設定の互換性

URL、ノード一覧、完全な設定ファイル

サブスクリプションURLはリソースを取得するための入口であり、返される内容に統一規格があるわけではありません。完全なClash YAMLが返る場合もあれば、複数の共有リンクをエンコードした一覧が返る場合や、リクエストヘッダーによって形式が変わる場合もあります。完全な設定には通常、ノード、プロキシグループ、ルール、DNS設定が含まれます。一方、ノード一覧はノード情報のみを提供します。この2つを取り違えると、ノードは表示されても想定したプロキシグループがない、または読み込み時に必須の構造が不足していると表示されることがあります。

proxy-providersは外部リソースからノードを読み込み、プロキシグループから参照するために使います。rule-providersはルールセットを提供します。どちらも、完全なサブスクリプションURLを入れれば自動で内容が分割される機能ではありません。特にルールプロバイダーでは、宣言した動作とファイル形式を一致させる必要があります。ドメイン一覧、IP一覧、ルール一式を同じ形式として扱うことはできません。問題を調べる前に、実際に返されたリソースの構造を確認し、参照先と一致しているかチェックしましょう。

変換時に失われやすい情報

サブスクリプションを変換するには、元の形式を移行先のコアが認識できる項目に対応付ける必要があります。基本的なアドレスやパスワードは保持されやすい一方、新しいプロトコルのオプション、プラグインのパラメーター、ALPN、flow、REALITYの設定、一部のUDP通信オプションは非対応の場合があります。変換に成功したという表示は、移行先の形式を生成できたことを示すだけで、ノードの情報がすべて保持された保証にはなりません。特定の種類のノードがまとめて失敗する場合は、同じ内容を繰り返し変換するのではなく、元のノード情報と読み込み後の詳細を項目ごとに比較してください。

提供元がmihomo向けの設定を直接提供している場合は、中間変換を減らすためにその形式を優先しましょう。変換が必要な場合は、変換ツールが該当するプロトコルに対応しているか、ルールのテンプレートやDNS設定を置き換えていないかを確認してください。サブスクリプションURLに個人用のアクセス認証情報が含まれることがあります。データの取り扱いが分からないサービスに送信したり、公開スクリーンショット、問い合わせ、ログの添付にURL全体を含めたりしないでください。

小さな設定例で構造を把握し、未知の項目をつなぎ合わせない

以下はmihomoで読み込める、ダイレクト接続用の最小設定例です。待ち受けポート、プロキシグループ、ルールの関係を示しており、リモートノードを含まず、リモートプロキシへの接続も行いません。バックアップを取ったうえでテスト用ファイルに保存し、構文を確認する用途に適しています。使用中のサブスクリプション設定を上書きしないでください。実際のノードは信頼できる提供元から取得してください。この設定例の名前を変更しても、実在するノードにはなりません。

mixed-port: 7890
allow-lan: false
mode: rule
log-level: info
proxy-groups:
  - name: Route
    type: select
    proxies:
      - DIRECT
rules:
  - MATCH,Route

YAMLではインデントが階層を表し、リストのハイフンや同じ階層のキーの位置も意味を左右します。複数のサブスクリプションを結合すると、同名のノードによってプロキシグループの参照先が分かりにくくなり、同名のグループが既存の定義を上書きすることがあります。ルールの順序が変われば、最初に一致するルールも変わります。2つのファイルを単純に連結してはいけません。取得元ごとに分かりやすい名前の範囲を設定し、参照先のグループがすべて存在することを確認して、最終ルールが想定したフォールバック項目で終わっているかチェックしましょう。

更新の失敗が必ずしも形式の問題とは限りません。リクエストのタイムアウト、認証の失効、ログインページの返却、リモートルールセットへの一時的なアクセス不能などが原因の場合もあります。まずダウンロード状態と応答の種類を確認し、その後で解析エラーを調べましょう。サブスクリプション更新の失敗とノードのハンドシェイク失敗を混同しないでください。更新に関するよくある問題はサブスクリプションに関する質問をご覧ください。設定の切り替えとバックアップについてはProfile入門も参照できます。

動作する設定のスナップショットを一つ保存しておくことも重要です。バックアップにはサブスクリプションURLだけでなく、ローカルルール、プロキシグループの選択、上書き設定も含めてください。トラブルシューティング用の情報を共有するときは、プロトコルの種類、項目名、失敗した段階を残しつつ、認証情報、個人用ドメイン名、サブスクリプションの認証情報は削除します。これなら設定構造の問題を再現しやすく、復旧作業で認証情報を再設定する手間も防げます。

8. 用途別の選び方と動作確認

デスクトップとLinuxでの普段使い

主にブラウザー、コード管理、デスクトップ作業で使う場合は、保守状況が明確で、サブスクリプションを正しく読み込めるクライアントを選び、手元にあるSS、VMess、Trojan、VLESSのノードから安定したものを一つ選びましょう。複数の機器で使う場合はClash Plus、Linuxデスクトップではディストリビューションに合わせてClash Verge RevまたはFlClashを確認してください。新しいプロトコルが必要かどうかは、実際の問題や機能要件に基づいて判断します。すべての種類をそろえることが、設定を完成させる条件ではありません。

Linuxでは、アプリがシステムプロキシの設定に従うかどうかも確認が必要です。ブラウザーではアクセスできてもターミナルのツールで失敗する場合、ターミナルがプロキシ環境変数を読み込んでいないことがあります。コンテナや独立したネットワーク名前空間にも、デスクトップの設定が自動で引き継がれるわけではありません。まず通信を取り込む入口を確認し、必要に応じてTUNモードのチュートリアルに沿って権限やルーティングを設定してください。リモートサーバーやルーターでは、サービス管理に慣れたユーザーならコアを直接実行できます。一般的なデスクトップ利用にはGUIクライアントが適しています。

モバイルネットワーク、リアルタイムアプリ、大容量ファイル

スマホがWi-Fiとモバイル回線の間を頻繁に切り替える場合は、最初の速度測定だけでなく、接続の復帰、バックグラウンドでの動作、電池消費を確認しましょう。UDPが安定して使えるなら、Hysteria2やTUICも候補に加えられます。特定の接続ネットワークでタイムアウトが頻発する場合は、検証済みのTCP系ノードを予備として残してください。サーバー側の対応を確認せずに、すべてのノードで多重化を強制したり追加の通信オプションを有効にしたりすると、別々だった問題が同時に発生することがあります。

音声通話、会議、ゲームでは、実際のUDP対応状況、ジッター、一時的な遅延を確認しましょう。プロトコル名にQUICが含まれていても、すべてのリアルタイムアプリで効果があるとは限りません。アプリのサーバーの場所、転送経路、システムが通信を取り込む範囲も影響します。大容量ファイルでは継続的な転送速度と端末の発熱を確認し、操作が必要なアプリの帯域も確保してください。回線速度を最大限に引き出せるノードでも、家庭で複数人が共有するときの最適な標準設定とは限りません。

用途優先する条件確認する項目
デスクトップでのWeb閲覧と開発サブスクリプションの互換性、分かりやすいルール、安定したノード初回応答とツールの通信を取り込む範囲
スマホでの日常利用バックグラウンドからの復帰、適切な接続確認間隔ネットワーク切り替えと待機中の電池消費
変動の大きい回線まずUDPを確認し、その後でQUIC方式を比較パケットロスが続くときの実際の使い勝手
サーバーとルーターアーキテクチャの適合、リソースの余裕、保守しやすい設定負荷、サービスの復旧、ルーティングの範囲

一連のテストで継続利用する価値を判断する

現在使える設定を保存し、候補ノードを一つ選んで、接続ネットワークとテスト先を固定します。Webページへのアクセス、継続的なデータ転送、普段使う操作を一つずつ試し、接続ログでプロキシグループ、適用ルール、実際の出力先を確認してください。リクエストが候補ノードを通っていると確認できてから、使い勝手の差を結果として記録します。ルールによって接続先が直接接続されている場合、測定結果は選んだプロトコルと関係ありません。まずテスト条件を修正してください。

失敗したら段階ごとに確認し、そこで一度止めましょう。読み込みに失敗する場合は形式、起動に失敗する場合は設定項目と参照先、ハンドシェイクに失敗する場合はアドレス、認証、TLSを確認します。リクエストの応答がおかしい場合は接続先サービスとルールを、特定のアプリだけ失敗する場合はシステムが通信を取り込む範囲とDNSを調べてください。一度に一つの段階だけを修正し、成功してから次へ進みます。接続ログには宛先アドレスなどが記録されることがあります。確認が終わったら日常利用に適したログレベルへ戻し、詳細を収集するために高頻度のログ出力を続けないでください。

最終的に使う方式は、現在の用途に適している理由を説明できるものであるべきです。たとえば、既存のサブスクリプションと互換性がある、モバイルネットワークの切り替え後に安定して復帰する、大容量ダウンロードが安定する、保守項目が少ないといった理由です。比較方法やノードの速度測定については速度測定と動作確認のチュートリアルをご覧ください。クライアント画面の違いはクライアント比較ページで確認できます。プロトコル、コア、画面はそれぞれ異なる問題を解決します。この3つの層を分けて考えるほうが、単一のランキングを追いかけるより役立ちます。