Shadowrocketの対応プロトコル一覧|Shadowsocks・VLESS・Hysteria2など7種類を解説

Shadowsocks、VMess、VLESS、Trojan、HTTP/SOCKS5、WireGuard、Hysteria2の特徴と、Add Serverで選ぶTypeを一覧で確認できます。

この記事の概要

Shadowrocketは、この記事で取り上げる7種類の接続プロトコルに対応しています。ただし、既存サーバーのTypeを切り替えて別のプロトコルに変更することはできません。利用中のサービスから取得した設定情報やサブスクリプションをお持ちの方は、まず表でプロトコルを確認し、認証・トランスポート・TLSの3層に分けて各項目を照合してください。そのうえで、接続の問題とルールの問題を切り分けます。7種類というのはこの記事での分類であり、アプリで選べるTypeの総数ではありません。

7種類のプロトコルとAdd ServerのType

既存の設定に記載されたプロトコルを確認し、Home → 右上の「+」→ Add Server → Typeで該当する種類を選びます。ポート番号や名称だけで判断しないでください。同じ443番ポートでも、使用するプロトコルが異なる場合や、TCPとUDPを使い分ける場合があります。Typeはクライアントとサーバーの通信方式を決めるため、サーバー側の設定と一致させる必要があります。

プロトコル 対応するType 主な特徴 最初に確認する項目
Shadowsocks Shadowsocks パスワードと指定された暗号化方式を使ってプロキシ接続を確立します。アルゴリズムは両端で一致させる必要があります。 Address、Port、Password、Method、および既存の設定で指定されたプラグイン項目。
VMess VMess UUIDでユーザーを識別し、複数のトランスポート方式と組み合わせて使用できます。プロトコル認証とTLSは別の層です。 UUID、暗号化オプション、トランスポート方式、およびTLS、Host、Pathなどの関連項目。
VLESS VLESS UUIDで認証します。プロトコル自体はペイロードを暗号化しないため、通信経路の保護は実際のトランスポート設定によります。 UUID、トランスポート方式、TLS、および設定で指定されたその他のハンドシェイク項目。
Trojan Trojan 通常はTLSで接続し、Passwordで認証します。 Password、Port、TLSのサービス名、証明書検証に関する設定。
HTTP / SOCKS5 HTTP / SOCKS5 異なる2種類のプロキシプロトコルです。サーバーによってはユーザー名とパスワードが必要です。Typeは相互に置き換えられません。 サーバーが実際に使用するプロトコル、Address、Port、認証の要否、およびTLSが明示されているか。
WireGuard WireGuard 鍵とピアの設定を使ってUDPベースのトンネルを構築します。一般的なプロキシのパスワード方式は使用しません。 ローカルの秘密鍵、ピアの公開鍵、Endpoint、トンネルアドレス、ルーティング範囲。
Hysteria2 Hysteria2 QUICをベースとし、UDPを使用します。認証、TLS、任意の難読化パラメーターを一致させる必要があります。 Address、Port、認証情報、TLSのサービス名、およびUDP経路が利用可能かどうか。

HTTPとSOCKS5は一覧で把握しやすいように1つの分類にまとめていますが、Typeではそれぞれ別に選択してください。Hysteria2も、名前が似ている別のプロトコルで代用することはできません。表示される項目や選択可能な組み合わせは、アプリ内の該当Typeの編集画面で確認してください。

7種類
この記事での分類。HTTP / SOCKS5はまとめて表示
2種類
HTTPとSOCKS5は別々のTypeを選択
443
ポート番号の例。同じ番号でもプロトコルが同じとは限らない

結論:設定情報に合わせてTypeを選ぶ

既存の設定にVLESSと明記されている場合は、まずVLESSを選び、対応するトランスポート設定を確認してください。なじみのある別のプロトコル名に置き換えたり、例として示した443番をすべてのサーバーで固定の値と考えたりしないでください。

認証・トランスポート・TLSを分けて確認

プロトコル名が示すのは接続の一部にすぎません。認証は「どの認証情報を使うか」、トランスポートは「データをどのように運ぶか」を示し、TLS設定はハンドシェイクや証明書の検証に関わります。この3層を分けて確認すれば、「UUIDが正しいのに接続できない」「アドレスは名前解決できるのにハンドシェイクに失敗する」といった場合に、無関係な項目を何度も変更せずに済みます。

VLESS自体がペイロードを暗号化しないからといって、すべてのVLESS接続が平文で通信するわけではありません。実際の通信経路はTLSなどの設定によります。一方、HTTPやSOCKS5という表示だけで、通信全体が暗号化されていると判断することもできません。プロトコル名だけでなく、実際に有効なトランスポートとセキュリティ設定を確認してください。

既存の設定情報を使った追加と接続確認

手動追加は各項目を個別に照合するときに、サブスクリプションの読み込みはお手元の設定をまとめて登録するときに便利です。どちらの方法でも、登録内容をサーバーの実際の設定に合わせる必要があります。この記事では、すでにお持ちの設定の使い方を説明します。サーバー、サブスクリプション、サービスの提供・販売・推奨は行いません。

  1. 設定情報を確認する

    まずプロトコル、サーバーアドレス、ポート、認証情報を確認し、その後TLS、トランスポート、その他の追加項目を整理します。ポートには既存の設定に記載された値を使ってください。443番を初期値と決めつけないでください。

  2. Typeを選択する

    Home → 右上の「+」→ Add Server → Typeを開き、既存の設定と完全に一致するプロトコルを選択してから、編集画面に戻って該当項目を入力します。

  3. 入力して保存する

    Address、Port、認証項目を順に入力します。TLSや追加のトランスポート設定が必要な場合は、該当する項目も確認してください。保存後はHomeに戻り、追加した項目を選択します。

  4. 接続を確認する

    HomeでGlobal Routingを確認し、Connectivity Testを実行して、明確に指定したテスト先を開きます。テスト先、ネットワーク環境、エラーメッセージを記録し、一度に複数の項目を変更しないようにしてください。

サブスクリプションリンクをお持ちの場合は、Home → 右上の「+」→ Type → Subscribeを開き、ご自身のサブスクリプションURLを入力して保存します。その後、Homeで該当するサブスクリプションを更新してください。更新後は、現在選択されている項目を改めて確認します。リモート設定によってアドレス、ポート、認証情報が変更される場合があります。個別項目の編集とサブスクリプションの更新は別の操作です。また、ローカルでの変更が次回の更新で上書きされることもあります。

プロトコルとGlobal Routingは役割が異なる

プロトコルは接続の確立方法を決め、Global Routingはリクエストを直結またはプロキシのどのポリシーで処理するかを決めます。Hysteria2を選択しても、すべてのリクエストがHysteria2を使うわけではありません。HomeのGlobal RoutingにはProxy、Direct、Config、Sceneがあります。Sceneはシーン設定に使うもので、8種類目の接続プロトコルでも、自動速度測定の結果でもありません。

Config

おすすめ

現在有効なConfigのルールに従ってリクエストを処理します。ルールに一致した後の動作は指定されたポリシーによって異なります。先行するルールに一致しなかったリクエストは、FINALなどのフォールバック設定で処理されるため、すべて直結するとは限りません。

適した用途:Configのルールを確認した後の日常利用

Proxy

引き受けたリクエストをプロキシ経由で処理します。Configでの結果と比較し、ルールによる振り分けの問題を切り分ける際に使えます。ただし、サーバー認証やネットワーク条件を回避することはできません。

適した用途:プロキシ接続とルール処理の結果を一時的に比較

Direct

リクエストを直結で処理します。この状態でWebページを開けても、選択したプロキシ項目が利用可能だとは証明できません。プロトコル接続を確認する際は、どの経路をテストしているかを明確にしてください。

適した用途:現在のネットワークでの直結アクセスを比較

Configでは、DOMAIN-SUFFIXはドメインのサフィックス、IP-CIDRはIPアドレスの範囲、GEOIPはIP地理データベースの分類に基づいて照合します。FINALは先行するルールに一致しなかったリクエストを処理します。これらはルールのキーワードであり、Add Serverで選ぶプロトコルの種類ではありません。確認時は、まずリクエストがどのルールに一致したかを調べ、次にそのポリシーでどの接続項目が使われているかを確認してください。

Settings → On Demandでは、条件に応じて接続を開始する動作を設定できますが、あるプロトコルを別のプロトコルに変換する機能ではありません。原因を調べる間はOn Demandが有効かどうかを記録し、自動接続や再接続をプロトコルの切り替えと誤認しないようにしてください。設定場所はOn Demandの設定方法をご覧ください。

よくある質問と確認手順

以下の問題は、すでにお持ちの設定情報をもとに確認してください。ほかの設定は変えずにType、認証、トランスポートを見直し、その後Global Routingと対象のリクエストを確認します。原因を特定する代わりに、プロトコルを何度も切り替えないでください。

同じアドレスとポートで、別のプロトコルに変更できますか?

クライアントでTypeを変更するだけでは、プロトコルを変換できません。Homeから該当項目の編集画面を開き、Typeが既存の設定と一致しているか確認してください。サーバーが別のプロトコルも実際に提供している場合に限り、そのプロトコルに対応した設定を使用できます。アドレスとポートが同じでも、サーバーが2種類のプロトコルに対応しているとは限りません。

VMessとVLESSはどちらもUUIDを使うのに、なぜそのまま置き換えられないのですか?

UUIDは認証情報の形式であり、ハンドシェイクのプロトコルが同じという意味ではありません。まずTypeを確認し、次にトランスポート方式、TLS、Pathを確認してください。元の設定がVLESSなら、UUIDをVMessにコピーして試し続けないでください。元のTypeに戻り、不足している項目を確認してください。

Hysteria2がWi-Fiでは失敗し、別のネットワークでは接続できるのはなぜですか?

同じ項目と同じテスト先を使って2つのネットワークを比較し、エラーメッセージを記録してください。Hysteria2はUDPを使用するため、ネットワーク経路の違いが接続に影響する場合があります。続いてPort、認証情報、SNI、任意の難読化パラメーターを確認します。この現象だけでサーバー障害と断定したり、特定のプロトコルが常に速いと判断したりすることはできません。

サブスクリプションの更新後、以前は使えていた項目に接続できなくなりました。

Homeで意図した項目が選択されていることを確認し、編集画面で更新後のType、Address、Port、認証情報を確認してください。古いパスワードを新しい項目にそのまま入力しないでください。手元にある最新の設定情報と照合し、Global Routingも変更されていないか確認します。

接続済みと表示されていれば、プロトコル設定はすべて正しいですか?

そうとは限りません。システムの接続状態、サーバー認証、接続先へのアクセスはそれぞれ別の段階です。Homeに戻ってGlobal Routingを確認し、Connectivity Testを実行してから、具体的な接続先を検証してください。想定した項目を経由したリクエストが実際に結果を返した場合に限り、その経路が今回利用できたと判断できます。すべてのネットワークや接続先で利用できるという意味ではありません。

選択の基準はプロトコル名の順番ではなく、既存のサーバー設定との互換性です。各項目の意味を確認するにはプロトコル用語集をご覧ください。現在の設定ファイルや診断の入口を確認するにはConfigの設定方法をご覧ください。プロトコル、トランスポート、ルールを分けて記録しておくと、次回の更新や問題の切り分けに役立ちます。

App Storeで正規アプリを確認