Shadowrocketの対応プロトコル一覧|Shadowsocks・VMess・VLESS・Trojan・Hysteria2を解説

ShadowrocketのShadowsocks、VMess、VLESS、Trojan、HTTP/SOCKS5、WireGuard、Hysteria2の通信方式と、Add Serverで必要な設定項目を一覧で解説します。

この記事の概要

Shadowrocketは複数の接続プロトコルに対応していますが、クライアントが対応しているからといって、既存サーバーのプロトコルを自由に変更できるわけではありません。接続情報をサービス提供元から入手済みの方向けに、表でプロトコルを確認し、Add Serverで認証・通信方式・TLSの設定を照合する方法を解説します。最後に、プロトコルの設定ミスとGlobal Routingのルールによる問題を切り分けます。サブスクリプションはサービス提供元から入手してください。

プロトコル早見表:通信方式と認証項目

プロトコルは、クライアントとサーバー間のデータ通信方法や認証方法を定めたものです。サーバーアドレス、ポート、認証情報、通信パラメータは一式で一致させる必要があり、アドレスだけでは接続できません。以下に代表的な種類をまとめました。項目名や選択肢はアプリの実際の画面で確認してください。すべての機能を網羅した一覧ではありません。

プロトコル 通信方式の特徴 確認が必要な接続情報
Shadowsocks 指定された暗号化方式でプロキシ通信を保護し、TCPとUDPを利用できます。UDPが使えるかどうかは、サーバーとネットワークにも左右されます。 Address、Port、暗号化方式、Password。プラグインのパラメータがある場合は、サーバー側の設定とも一致させます。
VMess UUIDなどのパラメータで認証し、TCPやWebSocketなどの通信方式を利用できます。TLSは別途確認が必要な設定です。 Address、Port、UUID、暗号化設定に加え、サービス提供元が指定する通信方式、Host、Path、TLSのパラメータ。
VLESS UUIDでユーザーを識別します。プロトコル自体はデータを暗号化しないため、通信の保護は組み合わせるセキュリティ層によって異なります。 Address、Port、UUID、通信方式。接続情報に従ってTLS、セキュリティ設定、Flowを確認し、別の接続設定を流用しないでください。
Trojan 一般的な構成ではTLSで接続を保護し、Passwordで認証します。証明書とサーバー名が確認のポイントです。 Address、Port、Password、TLS、Server Name。その他の通信パラメータはサービス提供元の情報に従って設定します。
HTTP / SOCKS5 汎用プロキシプロトコルです。通常のHTTPプロキシやSOCKS5は、それ自体が暗号化トンネルというわけではありません。SOCKS5でUDPを利用するには、クライアントとサーバーの両方が対応している必要があります。 Address、Port、およびサーバーが要求するUsername、Password。HTTPのTLSオプションは、実際の接続情報に従って設定します。
WireGuard UDPベースの暗号化トンネルで、鍵による認証を使用します。接続先アドレスのほか、トンネルアドレスやピアの設定も必要です。 接続先アドレスとポート、クライアントのPrivate Key、ピアのPublic Key、トンネルアドレス。Preshared Keyがある場合は、それも確認します。
Hysteria2 QUICをベースにUDPを使用し、TLSと認証を組み合わせます。ネットワークでUDPが許可されているかどうかが、接続可否に直結します。 Address、Port、認証情報、Server Name。難読化や帯域幅に関する設定は、サービス提供元が指定する値を使用します。

まとめ:接続情報に合わせてTypeを選択

まずサービス提供元が案内するプロトコル名を確認し、該当するTypeを選択してください。別の通信方式を試すために、Typeだけを変更して元のPasswordやポートなどを使い回さないでください。

表に「対応」と記載されていても、あらゆる拡張設定の組み合わせが使えるとは限りません。たとえば、どちらもVLESSでも、セキュリティ層や通信パラメータが異なる場合があります。インポート後は認識されたTypeを確認してください。認識できないパラメータがある場合は、プロトコル名から推測して設定を補わず、サービス提供元に確認しましょう。

Add Server:接続情報の入力から初回確認まで

手動追加は、接続情報がそろっていて、項目を一つずつ確認したい場合に適しています。サービス提供元がサブスクリプションを提供している場合は、その情報に従ってインポートしてから、項目がすべてそろっているか確認しましょう。サブスクリプションは接続情報をまとめて取得・更新する方法であり、ShadowsocksやTrojanに代わる接続プロトコルではありません。

  1. 接続情報をそろえる

    サービス提供元からプロトコル、アドレス、ポート、認証情報を入手してください。TLS、Server Name、Host、Pathなどの追加パラメータも一緒に控えます。記載のない項目を、別のサーバー設定からコピーしないでください。

  2. プロトコルを選ぶ

    Home → 右上の「+」→ Add Serverを開き、Typeで接続情報に対応するプロトコルを選びます。AddressとPortを入力してください。たとえば指定ポートが443なら443を入力しますが、すべてのプロトコルがそのポートを使うとは限りません。

  3. 認証情報を入力する

    Typeに応じてPassword、UUID、または鍵情報を入力します。VMessやVLESSのUUIDをTrojanのPasswordとして使うことはできません。WireGuardのPrivate KeyとPublic Keyも相互に置き換えられません。

  4. 通信設定を確認する

    サービス提供元の情報に従ってTLSと通信パラメータを設定します。WebSocketを使う場合は、HostとPathも確認してください。パスの先頭のスラッシュ、大文字・小文字、クエリパラメータは、案内されたとおりに入力します。

  5. 保存して接続を確認する

    保存後、Homeに戻ります。SERVER一覧で対象項目の左にある丸を選択し、画面上部の接続スイッチをオンにします。システムの案内に従ってVPN構成の追加を許可したら、Connectivity Testを実行し、実際に利用したいサービスにもアクセスして確認してください。

TLS・Host・Path:同じプロトコルでも接続できない場合

Addressは接続先、Server NameはTLSハンドシェイクで使うサーバー名、HostはHTTPやWebSocketのリクエストに含まれるホスト名です。値が同じ場合もありますが、それぞれ用途が異なるため、一律に同じ設定にはできません。IPアドレスに接続する場合でも、Server Nameにはサービス提供元指定のドメイン名が必要なことがあります。

不具合を切り分ける際は、症状ごとに確認項目を分けます。接続タイムアウトは、アドレス、ポート、ネットワーク、サーバーの状態が原因の可能性があります。認証エラーではPassword、UUID、鍵を確認し、TLSエラーでは証明書とサーバー名を優先して確認してください。異なる原因でも同じテスト失敗として表示される場合があるため、一度の遅延測定だけで原因を特定することはできません。

まとめ:一度に変更するのは一つの項目グループ

まず元の接続情報を残し、アドレスとポート、認証情報、TLSと通信パラメータの順に確認します。変更のたびに同じテストを繰り返してください。複数の項目を同時に変更すると、どの変更が有効だったのか判断できなくなります。

Global Routing:プロトコル設定と通信の振り分けは別

Typeはサーバーへの接続方法を決め、Global Routingはリクエストの処理方法を決めます。サーバーの設定が正しくても、リクエストがDirectに振り分けられれば、選択したサーバーを経由しません。反対に、Global RoutingをProxyに変更しても、Passwordの誤りは解消できません。以下はShadowrocketの設定方法の比較であり、プロトコルの性能ランキングではありません。

Config

ルールに従う

現在有効な設定のルールに従ってリクエストを判定します。判定結果はDIRECT、プロキシポリシー、または設定で定義された別のポリシーになります。先行するルールに一致しなかったリクエストは、通常FINALで指定されたポリシーに処理されます。常に直接接続になるわけではありません。

おすすめの用途:設定済みのルールを確認し、接続先に応じて振り分ける通常の利用。

Proxy

Shadowrocketが処理するリクエストをプロキシポリシーで接続します。ルール判定の影響を一時的に切り分ける場合に利用できます。テスト前に、選択中のサーバーやポリシーが正しいことを確認してください。接続スイッチがオンでも、サーバーが利用できるとは限りません。

おすすめの用途:接続パラメータを確認した後、Config内のルールやポリシー選択の影響を調べる場合。

Direct

選択したプロキシサーバーを経由せず、直接接続します。この状態でWebページが開いても、選択中のShadowsocks、Trojanなどのサーバー認証が成功した証拠にはなりません。

おすすめの用途:直接接続時の到達性と比較し、ローカルネットワークの問題かプロキシ経路の問題かを切り分ける場合。

Global RoutingのSceneは、設定したシーンに応じて動作を選択します。実際のシーン条件とポリシーを確認してください。名前だけでプロキシ経由だと判断することはできません。ルールのDOMAIN-SUFFIXはドメインの末尾、IP-CIDRはアドレス範囲、GEOIPはIPの位置情報データベースに基づいて判定し、FINALはそれ以前のルールに一致しなかったリクエストを処理します。これらのキーワードは、サーバーの認証プロトコルを変更しません。

よくある質問:プロトコルの選択と接続トラブル

VMessをVLESSにそのまま変更できますか?

Typeだけを変更しても接続できません。まずサービス提供元にVLESS用の接続情報が提供されているか確認し、新しい項目を作成してUUID、ポート、セキュリティ層、通信パラメータを入力してください。元の設定を失わないよう、比較用に元の項目は残しておきましょう。

Hysteria2は必ず他のプロトコルより速いですか?

プロトコル名だけで速度は判断できません。同じネットワーク、近い時間帯、同じ接続先で、接続成功率、実際の通信速度、安定性を比較してください。Hysteria2でタイムアウトが続く場合は、まずサービス提供元にUDPポートと認証パラメータを確認し、別の信頼できるネットワークでも再テストします。帯域幅の値をいきなり大きくしないでください。

サブスクリプション更新後、Typeの種類が増えたのはなぜですか?

一つのサブスクリプションに、異なるプロトコルのサーバー項目が含まれることがあります。Homeで各項目を確認し、編集画面でTypeを照合してから、一つずつ選択してテストしてください。サブスクリプション全体を単一のプロトコルとみなしたり、あるサーバーのPasswordを他の項目に使い回したりしないでください。

Connectivity Testでは結果が出るのに、接続先のWebページが開かないのはなぜですか?

テスト結果が示すのは、そのテスト中の接続状況だけです。すべての接続先に到達できることを保証するものではありません。まずSERVERで現在選択している項目を確認し、Global RoutingとConfigで適用されたポリシーを確認してください。特定のドメインだけ開けない場合は、すべてのサーバーを作り直すのではなく、DNS、ルール、接続先サービスの状態を調べます。

トラブルの相談時に、設定一式を他の人に送ってもよいですか?

まずサブスクリプションURL内のトークン、Password、UUID、Private Keyなど、認証情報を削除してください。Type、ネットワーク環境、エラーの内容、確認済みの項目を伝えれば、状況を説明できます。サービス提供元のサポートが必要な場合は、公式の問い合わせ窓口から必要な情報だけを送信し、接続情報一式を公開しないでください。

確認を終えたら:クライアントと接続サービスを区別する

ShadowrocketはAppleプラットフォーム向けの有料クライアントで、主にiPhoneとiPadで利用できます。Mac、Apple TV、Apple Visionとの互換性、システム要件、共通の購入条件は、App Storeページの表示をご確認ください。購入は買い切りで、入手先はApp Storeです。クライアントの購入と接続サービスの契約は別です。接続情報やサブスクリプションはサービス提供元から入手してください。

App Storeでの入手方法先に正規アプリの情報を確認