2026年9月14日 · プロトコル解説 · 約10分

Shadowrocketの使い方|対応プロトコル一覧:Shadowsocks・VMess・VLESS・Trojan・Hysteria2

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

この記事の要点

Shadowrocketで使うプロトコルは、利用中のサーバー設定と一致している必要があります。Typeを変更しても、接続方式が別のプロトコルに変わるわけではありません。接続情報やサブスクリプションをすでにお持ちで、Add Serverの各項目を理解したい方向けに、プロトコル・通信方式・TLSの違い、各プロトコルで必要な情報、設定・ネットワーク・ルールのどこに問題があるかを順を追って解説します。

1. プロトコル・通信方式・ルールの違い

Shadowrocketは複数の接続プロトコルに対応していますが、どのようなパラメータの組み合わせでも使えるわけではありません。サーバーが該当プロトコルを提供していることに加え、入力するアドレス、ポート、認証情報、通信オプションも一致している必要があります。この記事では、ご自身で利用中のサービスやサブスクリプションがあることを前提に、アプリの設定項目を解説します。接続サービスの提供・販売・推奨は行いません。

Home → 右上の「+」→ Add Serverを開き、Typeで接続プロトコルを選びます。TLSやWebSocketなどは接続を構成する別の要素で、Typeとは区別して考えます。以下では「認証方法」「通信方法」「どのリクエストに接続を使うか」の3つに分けて説明します。

項目主な設定確認する内容
プロトコル・認証Shadowsocks、VMess、VLESS、TrojanType、PasswordまたはUUID、プロトコル固有の追加項目
通信方式・セキュリティTCP、UDP、TLS、WebSocket、QUICサーバー側の通信方式、証明書名、パスなどの設定
通信の振り分けGlobal Routing、Configのルールリクエストの接続先がDIRECT、プロキシ、REJECTのどれになるか

たとえば、ポートが443だからといって、該当項目がTrojanやTLSを使っているとは限りません。ポートはサーバーが接続を待ち受ける場所です。8443がTLS用に使われる場合もあります。ポートからプロトコルを推測せず、手元の設定情報どおりに入力してください。以下では設定項目を見分けやすいよう、英語表記を使用します。実際に表示される項目や選べる組み合わせは、アプリ内の表示をご確認ください。

2. Shadowsocks・VMess・VLESS・Trojanの設定項目の違い

この4種類は、アドレスが同じという理由で互換性があると誤解されがちです。同じドメインで異なるサービスを提供することもあり、アドレスが正しくても認証や後続の通信が成功するとは限りません。まずType、次に認証情報、最後に通信オプションを確認すると、関係のない項目を何度も変更せずに済みます。

プロトコル主な特徴Add Serverで確認する項目
Shadowsocks指定の暗号化方式とパスワードでプロキシ接続を確立します。TCP・UDPを利用できるかは、設定とサーバー側の対応状況によります。Address、Port、Method、Password。既存の設定にobfuscationなどの追加項目があれば、それらも一致させます。
VMessUUIDなどで認証し、サーバー側の設定に応じて異なる通信方式を組み合わせます。Address、Port、UUID、暗号化オプションに加え、既存設定で指定されているTLSやWebSocketなどの項目。
VLESSUUIDで認証します。プロトコル自体は通信内容を暗号化しないため、セキュリティは実際の通信設定とあわせて確認してください。Address、Port、UUIDに加え、サーバー側で指定されたTLS、通信方式、その他の拡張パラメータ。
Trojan通常はTLS接続でパスワード認証を行います。証明書名と接続先アドレスが異なる場合があります。Address、Port、Password、TLS関連の設定。特にサーバー側で指定されたSNIを確認します。

UUID・Password・TLSは互いに代用できない

要点:プロトコル名だけでなく、設定一式を照合する

接続できない場合は、同じ項目のType、ポート、認証情報、TLS、通信オプションを元の設定と一つずつ照合します。Typeだけを変更したり、別の項目のSNI、Host、パスを組み合わせたりしないでください。

3. HTTP/SOCKS5・WireGuard・Hysteria2の特徴

HTTP/SOCKS5はプロキシプロトコル、WireGuardは鍵認証を使うトンネルプロトコル、Hysteria2はQUICをベースにしたプロトコルです。名称だけでなく、認証情報、下位の通信方式、トラブルの調べ方も異なります。サーバーや利用中のネットワークの条件にかかわらず、常に最速となるプロトコルはありません。

種類通信の特徴必要な情報
HTTP/SOCKS5HTTPプロキシは通常CONNECTでTCPトンネルを確立します。SOCKS5はTCPをネゴシエーションでき、UDPリレーの仕様もありますが、実際に利用できるかは双方の設定によります。アドレス、ポート、サーバー側で必要な場合はUsernameとPassword。HTTPプロキシ接続自体でTLSを使うかどうかも別途確認してください。
WireGuardUDPを使って暗号化トンネルを確立し、鍵で認証します。一般的なアカウント名とパスワードによる認証方式ではありません。自分側のPrivate Key、トンネルアドレス、接続相手のPublic Key、Endpointに加え、設定で指定されたルート範囲やその他の項目。
Hysteria2QUICをベースとし、下位の通信にUDPを使用してTLSで保護します。ネットワークで該当するUDP通信が許可されていることが重要です。アドレス、ポート、認証情報、SNI。サーバーでobfuscationが有効な場合は、対応する設定も必要です。

名称から推測せず、プロトコルの仕組みをもとに確認する

実際の通信品質は、帯域幅、パケットロス、サーバー負荷、ネットワークポリシーなどに左右されます。同じネットワーク・同じ時間帯・比較可能なサーバー条件で測定しなければ、一度のConnectivity Testの結果からプロトコルの性能は判断できません。レイテンシが低くても、継続的なダウンロード速度が速いとは限りません。

4. Add Serverで接続情報を追加・確認する

既存設定の情報はできるだけ省略せずに使ってください。手動追加は、項目が少なく情報の出所が明確な接続に適しています。サブスクリプションは、すでにお持ちの複数の接続情報を管理する場合に便利です。Subscribeは情報の取り込み・管理に使う項目で、ShadowsocksやTrojanと並ぶ通信プロトコルではありません。サブスクリプション内の各項目には、それぞれのTypeが設定されています。

  1. 接続情報を準備する

    既存の設定からプロトコル、アドレス、ポート、認証情報を確認します。VMessまたはVLESSの場合は、TLS、通信方式、Host、パスに指定値があるかも確認してください。

  2. 追加画面を開く

    Home → 右上の「+」→ Add Server → Typeの順に開き、元の接続情報と一致するプロトコルを選択します。アドレスの名前やポートから種類を推測しないでください。

  3. 入力して保存する

    画面に表示されるAddress、Port、および選んだTypeで必要な項目を入力します。コピーした値の前後に空白が入っていないか確認してください。保存後にHomeへ戻り、新しく追加した項目が選択されていることを確認します。

  4. サブスクリプションを設定する

    すでにサブスクリプションをお持ちの場合は、Home →「+」→ Type → Subscribeを開き、ご自身のURLを入力して保存します。その後、Homeでサブスクリプションを更新してください。更新するとリモート側の内容で項目が更新されるため、手動で変更した設定は別途記録しておきます。

  5. 接続を確認する

    HomeでConnectivity Testを実行した後、接続を有効にして実際に利用する宛先へアクセスします。テストの完了、接続の確立、宛先へのアクセス可否をそれぞれ記録し、同じ結果として扱わないでください。

5. Global Routingを変更してもプロトコルは変わらない

プロトコルは接続の確立方法を決め、Global Routingはリクエストの経路を決めます。Proxyに切り替えてもShadowsocksがTrojanに変わるわけではなく、Configに切り替えてもUUIDの誤りは直りません。トラブルの切り分けでは、「接続項目が利用できるか」と「宛先が想定したルールに一致するか」を分けて確認してください。

Config:設定に沿って振り分ける

推奨

現在のConfigにあるルールに従って、接続先のポリシーを選択します。設定済みでルールも確認済みの場合の日常利用に適しています。最終的な経路は、一致したルールとポリシーの定義で決まるため、「それ以外はすべて直結」とは限りません。

適した用途:ルールを確認したうえで、宛先ごとに振り分けたい場合

Proxy:プロキシ経路をまとめて確認

クライアントが処理するリクエストをプロキシ経路に通し、ルールの一致条件を一時的に切り分けます。切り替え後に宛先へアクセスできる場合は、プロトコルの問題と即断せず、元の設定にあるポリシーとルールを確認してください。

適した用途:振り分けルールやポリシー選択を一時的に調べたい場合

Direct:直結経路を確認

クライアントが処理するリクエストを直結経路に通します。この状態で宛先にアクセスできても、追加したプロキシ項目の認証やデータ通信が正常であることの証明にはなりません。

適した用途:現在のネットワークで直結した場合の状態を比較したい場合

Global RoutingのSceneでは、利用シーンごとに動作を設定できます。結果を確認するときは、実際に適用されているSceneとその設定も確認してください。Settings → On Demandは条件に応じて接続を開始する機能で、プロトコルを別の種類に変換するものではありません。接続が自動的に開始される場合は、この設定を個別に確認してください。

Configモードでルールを確認する

Configで現在使用中の設定を確認します。ルールは通常、上から順に照合され、一致したルールのポリシーが適用されます。FINALは、それ以前のルールに一致しなかったリクエストを処理します。以下はルール記述の例であり、サーバー設定やアプリ画面ではありません。

[Rule]
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.0.2.0/24,DIRECT,no-resolve
GEOIP,CN,DIRECT
FINAL,PROXY

6. プロトコル追加後によくある問題

トラブルを調べるときは、一度に変更する項目の種類を一つに絞り、変更前の値も記録してください。以下ではアプリの操作に沿って説明します。設定を確認せずにプロトコルを変更したり、一度のタイムアウトだけでサーバー側の問題と判断したりしないでください。

同じアドレスなのに、VLESSに変えると接続できないのはなぜ?

Homeに戻って該当項目の編集画面を開き、まずTypeを確認してください。サーバーがVLESSを提供し、対応するUUIDと通信設定が指定されている必要があります。アドレスが同じだけでは接続できません。元の情報がVMessの場合はVMessに戻し、既存の設定を一つずつ確認してください。

TrojanのPasswordが正しいのに接続できないのはなぜ?

項目の編集画面でAddress、Port、TLS関連の設定を確認し、特にSNIが既存の設定と一致しているかを調べます。続いて、デバイスの「設定 → 一般 → 日付と時刻」を確認してください。システム時刻が大きくずれていると、証明書の有効期間の判定に影響することがあります。証明書の検証をすぐに無効にするのは避けてください。

Hysteria2がタイムアウトするのに、通常のWebページは開けるのはなぜ?

まず、利用中のサーバー情報にあるアドレス、UDPポート、認証情報が一致しているか確認します。次に、使用が許可されている別のネットワークでも再テストしてください。通常のWebページにTCPで接続できても、QUICに必要なUDP通信が可能とは限りません。ネットワークごとに症状を記録してください。

サブスクリプションの更新後、手動で修正した設定が元に戻るのはなぜ?

Homeに戻り、更新前後の同じ項目を比較してください。サブスクリプションの更新ではリモート側の内容が再読み込みされるため、元の設定情報がある場所で各項目を確認します。手元で切り分ける必要がある場合は、別の手動項目を作成して差分を記録し、一時的な変更をリモート設定の修正と混同しないようにしてください。

Connectivity Testが成功すれば、設定は正しい?

必ずしもそうとは限りません。まず現在のテスト方法を確認し、接続を有効にして実際の宛先へアクセスしてください。一部の宛先だけ失敗する場合は、Home → Global RoutingとConfigで一致しているルールを確認します。テスト結果だけでは、すべてのプロトコル機能、UDPリレー、すべてのWebサイトへのアクセスが正常とは判断できません。

App Storeで正規版を確認開発元とアプリIDを確認