Shadowrocketの対応プロトコル:Shadowsocks・VMess・VLESS・Trojan・Hysteria2を1分で解説

Shadowrocketで追加できるShadowsocks、VMess、VLESS、Trojan、HTTP/SOCKS5、WireGuard、Hysteria2を一覧で解説。特徴とAdd Serverの設定項目を確認できます。

この記事の概要

Shadowrocketは複数の接続プロトコルに対応しています。追加時は、プロトコル名から速度を推測せず、利用中のサービスから提供された設定情報に従ってください。サービスと接続情報をすでにお持ちの方向けに、プロトコル・認証方式・トランスポートを確認し、Add Serverの項目と照合する方法を解説します。プロトコルの接続問題とGlobal Routingのルールの問題も切り分けます。サブスクリプションリンクはサービス提供元から入手してください。

対応プロトコル:認証項目と通信条件を確認

Shadowsocks、VMess、VLESS、Trojan、HTTP、SOCKS5、WireGuard、Hysteria2には、それぞれ異なる設定項目があります。同じ設定の名前違いではありません。サーバーが使用するプロトコルに合わせて、クライアント側でも該当するTypeを選ぶ必要があります。登録済みのTypeをShadowsocksからTrojanに変更しても、サーバー側の設定は切り替わらず、速度改善にもなりません。

主なプロトコルの設定確認表
プロトコル主な確認項目間違えやすいポイント
ShadowsocksAddress、Port、Password、暗号化方式Passwordが正しくても、暗号化方式が異なると正常に通信できません
VMessAddress、Port、UUID、暗号化設定、トランスポート設定UUIDは一般的なアカウントのパスワードとは異なります。トランスポートも一致させる必要があります
VLESSAddress、Port、UUID、サーバー指定のトランスポートとセキュリティ設定プロトコル自体はペイロードを暗号化しません。組み合わせるセキュリティ層も確認してください
TrojanAddress、Port、Password、TLS、サーバー名接続先のアドレスと証明書検証に使う名前は、異なる場合があります
HTTP / SOCKS5Address、Port、サーバー指定のユーザー名とパスワードHTTPとSOCKS5ではハンドシェイク方式が異なり、互換性はありません
WireGuardローカル秘密鍵、Peerの公開鍵、Endpoint、トンネルアドレス、ルーティング設定サーバーアドレスとパスワードだけでは設定できません
Hysteria2Address、Port、認証情報、TLS、帯域幅関連の設定QUICベースのため、該当するUDP通信がネットワークで許可されている必要があります

Add Serverに表示される項目はTypeによって異なります。アプリの画面バージョンによって、項目のグループ分けや名称が変わることもあります。この表は確認すべき設定の意味を示したもので、すべてのTypeに同じ入力欄が表示されるわけではありません。サービス情報に記載のない詳細設定は、まずインポート時の値を維持し、別のプロトコルの設定を流用しないでください。

要点:設定値を一致させてから接続をテスト

サブスクリプションを正常にインポートできている場合は、まずインポートした設定で接続してください。サービス提供元の情報と異なる項目が確認できた場合に限り変更し、比較できるよう元の設定を残しておきましょう。

Shadowsocks、VMess、VLESS、Trojanの違い

Shadowsocksでは主に暗号化方式とPasswordを確認します。VMessとVLESSでは通常、UUIDでユーザーを識別し、異なるトランスポートを組み合わせる場合もあります。Trojanはパスワード認証とTLSを使用します。プロトコル名だけで分かるのは接続手順の一部です。接続できるかどうかは、サーバーで開放されているポート、トランスポート設定、証明書の条件にも左右されます。

Address、SNI、Hostは同じ値にしない

Addressはクライアントが接続を試みるサーバーアドレスです。SNIはTLSハンドシェイクでサーバー名を通知するために使われます。WebSocketなどのトランスポートでは、Hostがアプリケーション層のリクエストに使われる場合があります。設定によっては同じ値になることも、異なることもあります。「統一」のためにすべてを同じIPアドレスに変更しないでください。

トランスポートにWebSocketを使う場合は、PathとHostも個別に確認してください。Pathのスラッシュや大文字・小文字が重要な場合があります。ハンドシェイクに失敗したら、証明書検証をすぐに無効にするのではなく、まずこれらの項目を確認してください。検証を無効にすると本人確認が弱まるため、通常の修正方法としては適切ではありません。

Hysteria2、WireGuard、HTTP/SOCKS5の違い

Hysteria2とWireGuardはいずれもUDPを扱いますが、用途と設定方法は異なります。HTTP/SOCKS5はプロキシプロトコルであり、Typeを選ぶだけで通信全体が暗号化されるわけではありません。まずサーバーが実際に対応しているプロトコルを確認し、使用中のネットワークで該当する通信が許可されているかを確かめてください。

Hysteria2
QUICベースの通信では、通常UDPで到達できる必要があります。サービス提供元から認証情報、難読化、帯域幅の設定が指定されている場合は、その値を確認してください。帯域幅の数値を大きくしても回線の実容量は増えません。UDPが遮断されている場合、認証パスワードだけを変更しても接続タイムアウトは解消しません。
WireGuard
鍵とPeerの設定を使ってトンネルを構築します。ローカルのPrivate Keyと相手側のPublic Keyは役割が異なるため、入れ替えられません。Endpointは相手側のアドレスとポートを指定し、トンネルアドレスとルーティング範囲によってトンネル内の通信経路が決まります。手動で設定する場合は、完全な設定情報を入手してください。Endpointだけをコピーしても設定できません。
HTTP / SOCKS5
該当する種類のプロキシサービスへの接続に使います。認証情報が必要かどうかはサーバー側の設定によります。一般的なHTTPプロキシとSOCKS5は、それ自体では通信経路全体を暗号化しません。HTTPプロキシでTLSを使用するかどうかは、別途確認してください。SOCKS5でUDPを利用できるかどうかは、サーバーとネットワークの対応状況にも左右されます。TCPで接続できても、UDPが使えるとは限りません。

「遅延が小さい」だけで特定のプロトコルのほうが速いと判断しないでください。短時間の接続テスト、継続的なダウンロード、動画再生、UDPアプリでは通信負荷が異なります。サーバーの負荷、パケットロス、通信経路、サーバー側の速度制限によっても結果は変わります。この記事では測定条件を無視した速度ランキングは示さず、すべてのネットワークに通用する標準のプロトコルも定めていません。

Add Serverの設定方法:4つの手順で確認

手動追加は、設定情報がすべてそろっている場合に適しています。サブスクリプションリンクしかない場合は、Subscribeからインポートしてください。サブスクリプションURLを各プロトコルのAddressに入力してはいけません。サブスクリプションは設定情報の取得方法で、VMessやTrojanなどが接続に使われるプロトコルです。

  1. 設定情報を確認

    サービス提供元から、プロトコル名、サーバーアドレス、ポート、認証情報を入手します。サブスクリプションリンクが提供されている場合は、その方法でインポートしてください。個別の接続パラメータが提供されている場合は、手動で追加します。

  2. プロトコルを選択

    Home → 右上の「+」→ Add Server → Typeの順に開き、設定情報に記載されたプロトコルを選択します。サブスクリプションを追加する場合はSubscribeを選び、自分のサブスクリプションリンクを入力して保存してください。ポート番号からTypeを推測しないでください。

  3. 項目ごとに入力

    Address、Port、プロトコルに対応する認証情報を設定し、TLS、SNI、トランスポート、Pathなどの追加項目も確認してください。ポートが8443なら8443を入力します。普段443を使っているからといって置き換えないでください。

  4. 保存して接続を確認

    保存したらHomeに戻り、該当する設定を選択して接続します。初回接続時は、システムの案内に従ってVPN構成の追加を許可してください。まず接続が確立するか確認し、次に実際にアクセスしたいWebページを開いて動作を確かめます。1回の遅延テストだけで、すべての機能が正常だと判断することはできません。

サブスクリプションを更新すると、通常はサーバーから設定情報を再取得するため、手動で変更した項目が上書きされる場合があります。比較テストを行う場合は、元の設定を残すかテスト用の設定を別に保存し、変更した項目を記録してください。サブスクリプションのインポートや管理方法はサブスクリプションマニュアル、更新に関する問題はSubscribeの更新についてをご覧ください。

プロトコルとGlobal Routing:接続方式と通信の振り分けは別

プロトコルは選択したサーバーへの接続方法を決め、Global Routingは通信の経路を決めます。TrojanやHysteria2の設定が正しくても、Directになっていると、通信は期待どおり選択中のプロキシを経由しません。問題を切り分ける際は、まずHomeでGlobal Routingを確認し、次にConfigで現在使用中の設定を確認してください。

Config

推奨

現在の設定に含まれるルールとポリシーに従って通信を処理します。プロキシポリシーに一致したリクエストのみが該当する接続を使用します。直接接続や拒否も設定によって決まるため、どのルールにも一致しない通信が自動的に直接接続されるとは限りません。

適した用途:確認済みのルール設定を使った、日常的な通信の振り分け

Proxy

クライアントが処理する通信をプロキシモードで扱います。一時的に通常の振り分けルールの影響を除外して確認できます。使用後も、選択中のサーバーが正しいか確認してください。

適した用途:一時的にサーバー接続を確認し、ルールの問題と接続の問題を切り分ける

Direct

クライアントが処理する通信を直接接続モードで扱います。プロキシプロトコルが利用可能かどうかの確認には使えません。

適した用途:ローカルネットワークの直接接続時の状態と比較する

Sceneを使用している場合は、現在のSceneでどの設定が実際に適用されているかを確認してください。Sceneは別の接続プロトコルではありません。Settings → On Demandでは条件に応じた接続動作を管理できますが、VMessの設定をVLESSに変換する機能ではありません。トラブルシューティングを始める前に関連するスイッチの状態を記録し、自動接続が確認作業に影響しないようにしてください。

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

以下はルール構文の説明です。DOMAIN-SUFFIXはドメインのサフィックス、IP-CIDRはアドレス範囲、GEOIPはIPアドレスの地理的位置、FINALはそれまでに一致しなかった通信に適用されます。例の192.0.2.0/24はドキュメント用のアドレス範囲です。実際の設定は上から順に評価され、最初に一致したルールが適用されます。種類ごとに分類するためだけに既存のルールを並べ替えないでください。

よくある質問:プロトコルを正しく選んでも接続できない理由

同じ443番ポートなのに、Typeを変えると接続できなくなるのはなぜ?

ポートはサービスが接続を待ち受ける場所であり、プロトコルを示すものではありません。Homeから該当する設定の編集画面を開き、サービス情報に記載されたTypeに戻してから、認証とトランスポートの設定を確認してください。Trojan、VMess、VLESSはいずれも443を使う場合がありますが、ハンドシェイクと認証方式は異なります。

遅延テストは成功するのにWebページが開かない。パスワードを入れ直すべき?

まず遅延テストの方式を確認してください。ネットワーク層での到達性だけを確認し、実際のリクエストまでは検証しないテストもあります。次にHomeでGlobal Routingと選択中の設定を確認し、DNSとルールの適用状況を調べてください。Proxyを短時間だけ使って比較したら、元のモードに戻してください。詳しいトラブルシューティングは接続トラブルの対処方法をご覧ください。

Hysteria2がWi-Fiではタイムアウトするのに、モバイル回線では接続できるのはなぜ?

同じ設定とパラメータを維持したまま、ネットワークだけ切り替えて再度確認してください。違いが継続して現れる場合は、元のネットワークでのUDP制限、ゲートウェイのポリシー、通信経路を確認し、サービス提供元にサーバーの稼働状況を問い合わせてください。ポート、パスワード、帯域幅を同時に変更すると、どの要素が影響したのか判断できなくなります。

サブスクリプション内のVLESSをVMessにそのまま変更できる?

Typeを変更するだけでは切り替えられません。VLESSとVMessでは、サーバー側にもそれぞれ対応するプロトコル設定が必要です。UUIDが同じに見えても互換性があるとは限りません。まずサブスクリプションを更新し、別のプロトコルの接続情報が必要な場合はサービス提供元から入手してください。検証のたびに、誤りが確認できた項目を1つずつ修正し、元の設定を損なわないようにしてください。

「設定情報がそろっているか → Typeが一致しているか → 認証とトランスポートが合っているか → ネットワークから到達できるか → 振り分けとDNSが想定どおりか」の順で確認してください。問題を報告する際は、ネットワークの種類、選択したプロトコル、接続時とWebページ閲覧時のどちらでエラーが発生したかを記録し、機密情報を削除してください。「プロトコルが不安定」という一言より、原因の特定に役立ちます。

App Storeで正規アプリを確認 →