Shadowrocketの対応プロトコル|Shadowsocks・VMess・VLESS・Trojan・Hysteria2の基本

Shadowsocks、VMess、VLESS、Trojan、HTTP/SOCKS5、WireGuard、Hysteria2の違いと、Add Serverで入力する項目を解説します。

この記事の要点

利用中のサービス情報や接続パラメータがある場合、Typeでは何を選べばよいでしょうか。この記事では、プロトコルごとの認証・通信方式・TLSの違いを説明し、Home → Add Serverでの入力手順とトラブル時の確認方法を紹介します。Shadowrocketは複数のプロトコルに対応していますが、Typeを変更するだけで同じサーバーを別のプロトコルに切り替えることはできません。プロトコル名から速度を推測するのではなく、手元の設定値と照らし合わせて確認しましょう。

対応プロトコルと、それぞれの違い

プロトコルは相互に置き換えられますか?そのまま置き換えることはできません。Shadowsocks、VMess、VLESS、Trojan、HTTP、SOCKS5、WireGuard、Hysteria2は、それぞれハンドシェイクと認証方式が異なります。まずサービス提供元のプロトコル名を確認し、Home右上の「+」からAdd Serverを開いて、該当するTypeを選択してください。サーバー側で有効になっていないプロトコルは、クライアント側の選択だけでは利用できません。

プロトコル主な確認項目間違えやすい点
ShadowsocksAddress、Port、暗号化方式、Password暗号化方式はサーバー側と一致させる
VMessAddress、Port、UUID、暗号化オプション、通信方式の設定UUIDが正しくても、通信方式の設定が正しいとは限らない
VLESSAddress、Port、UUID、通信方式とセキュリティ設定VMessの設定をすべて流用できるわけではない
TrojanAddress、Port、Password、TLS設定Passwordと証明書の検証は別々に確認する
HTTPAddress、Port、必要に応じてアカウント認証プロキシ認証と通信経路の暗号化は別
SOCKS5Address、Port、必要に応じてアカウント認証プロトコル自体に通信経路の暗号化はない
WireGuard鍵、インターフェースアドレス、対向エンドポイント、ルーティング範囲鍵とトンネルアドレスは組み合わせて確認する
Hysteria2Address、Port、認証情報、TLS設定UDP通信が必要。Hysteriaとは設定を混同しない

Add Serverの項目が常に同じではないのはなぜですか?項目はTypeや有効にしたオプションによって変わります。通信方式を選んだ場合にPathやHostが必要になったり、TLS関連のオプションを選ぶとサーバー名の確認が必要になったりします。表にあるのは主な確認項目で、すべてのプロトコルに同じ入力欄があるわけではありません。実際に選択できる項目はアプリ内の表示を確認してください。

8種類
この記事で個別に解説するプロトコル数。HTTPとSOCKS5は別々にカウント
443
TLSを使うサービスでよく見られるポートの例です。すべてのサーバーで標準とは限りません。
4種類
Global Routing:Proxy / Direct / Config / Scene

要点:まずTypeを選び、必要な項目を確認

設定情報を入手したら、まずプロトコル名とサーバー側のポートを確認し、認証・通信方式・TLSの設定を順に入力します。ポートが443だからといって、TypeをTrojanに決めつけないでください。ポート番号だけではプロトコルを特定できません。

Shadowsocks、VMess、VLESSでは何を入力する?

ShadowsocksはPasswordだけで接続できますか?できません。Address、Port、暗号化方式も確認が必要です。Passwordが同じでも、暗号化方式が異なれば正常に通信できません。追加の通信方式や難読化設定が指定されている場合は、元の情報どおりに入力してください。アドレスとパスワードだけでは不十分です。

UUIDが一致しているのにWebページを開けないのはなぜですか?認証は確認事項の一つにすぎません。サーバー側がWebSocketを使っているのに、クライアント側で別の通信方式を選ぶと、ハンドシェイクが正常に完了しないことがあります。選択した通信方式を確認してから、PathとHostを照合してください。Pathのスラッシュやパスの内容を勝手に削除・変更せず、HostがAddressと同じとは限らない点にも注意してください。

TrojanとHysteria2のTLS設定はどう確認する?

TrojanはPasswordだけで使えますか?サーバーアドレス、ポート、TLS設定も確認が必要です。Trojanの接続には通常TLSを使うため、認証パスワードが正しくても証明書の検証は別途必要です。AddressにIPアドレスを指定し、証明書が特定のドメインに対応している場合は、サービス提供元の案内に従ってサーバー名を入力してください。証明書検証の無効化を通常の解決策として扱わないでください。

Hysteria2とTrojanはどう違いますか?Hysteria2はQUICをベースとしており、UDP通信を必要とします。一方、Trojanで一般的な接続方式はTCPとTLSを使います。どちらも証明書や認証に関係する場合がありますが、設定値を相互に流用することはできません。現在のネットワークでUDPが制限されている、ポートが開いていない、またはサーバーに到達できない場合、Hysteria2はタイムアウトすることがあります。必ずしも認証パスワードの誤りとは限りません。

  1. TypeがHysteria2になっていることを確認してください。名前の似たHysteriaとは別のプロトコルで、そのまま置き換えることはできません。
  2. Portがサーバーの実際の待受ポートと一致するか確認してください。443を使う場合も、UDP通信が到達可能か確認が必要です。
  3. 認証情報、TLSのサーバー名、証明書の要件を確認してください。サーバーで難読化が設定されている場合は、該当する種類とパスワードも照合してください。
  4. 帯域幅などの任意項目がある場合は、実際のサービス設定に従って入力してください。根拠のない大きな値を設定してネットワークのテストに代えることはできません。

Hysteria2にすれば必ず速くなりますか?プロトコル名だけで速度は判断できません。サーバーの負荷、ネットワークの往復遅延、パケットロス、UDPの制限などが結果に影響します。比較する場合は、接続先のWebサイト、デバイス、ネットワーク条件をそろえてください。まず接続が確立したことを確認し、そのうえでページの読み込み完了までの時間を比べます。1回の遅延値だけでは通信速度を判断できません。

HTTP、SOCKS5、WireGuardの違いは?

HTTPやSOCKS5でもUUIDを入力する必要がありますか?通常は不要です。一般的に入力するのはAddress、Port、およびサーバー側で要求されるユーザー名とパスワードです。アカウント認証が有効でない場合、認証情報を推測して追加しないでください。TLSで保護されたプロキシ接続が必要な場合は、対応するTypeまたはセキュリティ設定を選択してください。

項目HTTP / SOCKS5WireGuard
認証情報UsernameとPasswordを使う場合がある自分側の秘密鍵、対向側の公開鍵。設定によっては事前共有鍵も必要
接続先プロキシのアドレスとポート対向アドレスとUDPポート
アドレス情報通常、トンネルインターフェースのアドレス設定は不要割り当てられたインターフェースアドレスとプレフィックスを確認
その他の確認項目認証要件、TLS対応、UDP通信への対応Allowed IPs、DNS、MTUなどの設定

WireGuardでアドレスとパスワードだけでは接続できないのはなぜですか?鍵による認証に加え、トンネル内のアドレスとルーティングの設定が必要です。自分側のPrivate Keyはサーバーに登録されたクライアントの公開鍵と対応している必要があります。対向側のPublic Keyはサーバーを識別するために使われ、両者を入れ替えることはできません。インターフェースアドレス、Allowed IPs、エンドポイントもそれぞれ用途が異なるため、サーバーのグローバルIPを自分のトンネルアドレスとして設定しないでください。

Add Serverから接続テストまでの手順

手動入力とサブスクリプションの読み込み、どちらを先に使うべきですか?すでに有効なサブスクリプションがある場合は、プロトコル、通信方式、セキュリティ設定をそのまま維持してください。サービス提供元から個別接続の情報が明示されている場合や、特定の項目を確認したい場合に、Add Serverで手動入力します。以下は自分のサービス情報をすでに持っていることを前提とした手順であり、サービスの紹介は含みません。

  1. 設定情報を確認

    手元の設定に記載されたプロトコル、アドレス、ポート、認証情報を確認します。機密情報を公開の掲示板などに貼り付けないでください。サブスクリプションリンクしかない場合は、個別サーバーのアドレスとして入力しないでください。

  2. Typeを選択

    Home → 右上の「+」→ Add Server → Typeの順に開き、サーバー側と同じプロトコルを選択します。続けてAddress、Port、該当する認証項目を入力してください。

  3. 必要な項目を入力

    手元の設定に従って、通信方式、Host、Path、TLSなどの項目を入力します。選択したプロトコルで必要な項目だけを設定してください。保存したらHomeに戻り、保存したサーバーを選択します。

  4. 接続を確認

    HomeでConnectivity Testを実行し、接続スイッチをオンにして、利用可能と確認済みのWebページにアクセスします。初回接続時は、システムの案内に従ってVPN構成の追加を許可してください。Global Routingも確認し、Directのままになっていてプロキシの結果を誤認しないようにします。

サブスクリプションはどこで入力しますか?Home右上の「+」からAdd Serverを開き、TypeでSubscribeを選択します。自分のサブスクリプションリンクを入力して保存し、Homeに戻って該当するサブスクリプションを更新してください。更新後は、現在選択されているサーバーを再確認します。サブスクリプションから項目を取得できても、それぞれの接続が実際のWebアクセスで確認済みとは限りません。

サブスクリプションを更新すれば、すべての問題が直りますか?直りません。更新ではサブスクリプション側から返された内容に基づいて項目が更新されますが、現在のネットワークで通信が遮断されている場合や、サーバーが利用できない場合は解決しません。サブスクリプションの項目を手動で変更していた場合は、更新後に該当する設定を再確認してください。Configのルーティング設定も別途確認が必要です。サーバー一覧の更新だけでルールまで同期されたとは限りません。

プロトコルが正しくても、Global Routingで結果が変わるのはなぜ?

サーバーを選択すれば、すべての通信が経由しますか?必ずしもそうではありません。プロトコルはサーバーとの通信方式を決め、Global Routingは接続のルーティング方法を決めます。プロトコルを調べる際は、テスト対象の通信がプロキシ経由になる設定かどうかを先に確認してください。DirectでWebページを開けても、サーバーの設定が正しいことの証明にはなりません。

Config

推奨

現在有効な設定とルールに基づいて経路が選択されます。まずConfigで想定した設定が有効になっていることを確認し、対象の通信がDIRECTまたはプロキシのルールに一致するかを調べてください。一致しない通信がすべて自動的に直接接続されるとは限りません。

向いている用途:確認済みのルールを使い、接続先ごとに経路を分ける日常利用

Proxy

対象となる通信をプロキシ経由にします。ルールによる振り分けの影響を一時的に減らしてテストしたい場合に使えます。切り替えても接続できない場合は、サーバー、認証、通信方式、DNSを引き続き確認してください。これだけを理由に証明書検証を無効にしないでください。

向いている用途:短時間でサーバー接続を検証し、ルールの問題と接続の問題を切り分ける

Direct

直接接続を使うため、特定のプロキシプロトコルが使えることの確認には適しません。比較テストが終わったら、次回のテスト条件が変わらないよう、元のルーティング設定に戻してください。

向いている用途:現在のネットワークで直接アクセスできるかを比較する

SceneやOn Demandもプロトコルですか?いいえ。Global RoutingのSceneは、設定したシーンに応じてルーティングの選択を処理します。動作は実際のシーン設定によって異なります。Settings → On Demandは接続を必要に応じて自動的に開始する設定であり、サーバーに不足している認証情報やTLS設定を補うものではありません。トラブルシューティング中はこれらの設定を記録し、自動接続やシーンの切り替えでテスト条件が変わらないようにしてください。

要点:変更する条件は一度に一つ

サーバーとネットワークの条件を固定し、Proxyで接続を確認してから、Configに戻ってルールを調べてください。ルールは上から順に評価されます。DOMAIN-SUFFIXはドメインのサフィックス、GEOIPとIP-CIDRはIPの条件を照合し、FINALはそれ以前のルールに一致しない通信を処理します。UUIDを確かめるためにルール全体を書き換えないでください。

よくある質問:入力項目不足・タイムアウト・接続後にWebページが開かない

エラーが起きたら、まずどの段階で問題が発生したかを切り分けてください。フォームを保存できない場合は必須項目を確認します。テストがタイムアウトする場合は、アドレス、ポート、ネットワーク、サーバーを確認してください。接続後に一部のWebページで問題が起きる場合は、DNSやルールも確認が必要です。プロトコルを次々と切り替えるより、以下の順序で確認すると原因を特定しやすくなります。

UUIDしかなく、ほかの設定がない場合でも接続できますか?

できません。手元のサービス情報を確認し、Address、Port、プロトコルの種類、通信方式、必要なセキュリティ設定をそろえてから、Home → Add Serverで入力内容を確認してください。UUIDだけでは接続先の情報が分からず、VMessとVLESSのどちらを選ぶべきかも判断できません。

Connectivity Testがタイムアウトするのは、パスワードが間違っているからですか?

必ずしもそうではありません。Homeで現在選択している項目のAddressとPortを確認し、ネットワークで必要なTCPまたはUDP通信が許可されているかも調べてください。テスト結果が示すのはそのテスト経路の状態だけです。認証、DNS、Webページへのアクセスを含む全体の確認に代わるものではありません。

接続中と表示されているのに、Webページが開かないのはなぜ?

システムのVPN接続状態だけでは、接続先のサーバーが正常に動作しているとは限りません。まずHome → Global Routingの設定がテストの目的に合っているかを確認し、サーバーの認証、通信方式、TLSを確認してください。一部のドメインだけで失敗する場合は、DNS設定とConfig内の該当ルールも調べてください。

Hysteria2がWi-Fiでは使えるのに、モバイル通信でタイムアウトする場合は?

同じサーバー設定を使い、2種類のネットワークでそれぞれテストして、特定のネットワークだけで失敗するか確認してください。次にUDPポートへの到達性とサーバーの状態を調べます。サーバー側に対応する別の設定が実際に用意されていない限り、TypeだけをTrojanに変更しないでください。

Shadowrocketを購入したのに、なぜ接続情報の入力が必要ですか?

アプリの買い切り購入と接続サービスの契約は別です。Shadowrocketは商用のクローズドソースアプリで、接続には利用者自身が用意したサービス情報が必要です。App Storeの製品ページで、デベロッパ名がShadow Launch Technology Limited、アプリIDが932747118であることを確認してください。デバイスの互換性とシステム要件はApp Storeのページをご確認ください。

App Storeで正規アプリを確認デベロッパ名とアプリID