Shadowrocketの対応プロトコル一覧|Shadowsocks・VMess・VLESS・Trojan・WireGuard

Shadowrocketに追加できるプロトコルを一覧で解説。Shadowsocks、VMess、VLESS、Trojan、HTTP/SOCKS5、WireGuard、Hysteria2の特徴を比較できます。

この記事の概要

Shadowrocketは複数の接続プロトコルに対応していますが、追加時は任意のTypeを選ぶのではなく、利用中のサービスから提供された設定に合わせる必要があります。この記事では、プロトコル・伝送方式・認証情報を比較し、インポート後の確認手順、Global Routingの役割、接続できない場合の確認順を解説します。既存の設定タイプを確認したい方に向けた内容です。

プロトコル早見表:Typeはサーバー側の設定に合わせる

Shadowsocks、VMess、VLESS、Trojan、HTTP、SOCKS5、WireGuard、Hysteria2はそれぞれ異なる接続タイプであり、同じ接続の速度設定ではありません。サーバー側で使用しているプロトコルに合わせて、Shadowrocketにも対応する設定を指定します。Typeだけを変更しても、既存のサービスが別のプロトコルに変わるわけではありません。アドレス、ポート、認証情報が同じでも、相互に接続できるとは限りません。

プロトコル 主な特徴 優先して確認する項目
Shadowsocks 指定された暗号化方式と共有パスワードを使用します。TCP・UDPへの対応は両端の設定によって異なります。 サーバーアドレス、ポート、暗号化方式、パスワード、追加プラグインの要否。
VMess UUIDなどの認証情報を使用し、複数の伝送方式やTLSと組み合わせられます。 UUID、伝送方式、TLSの状態、Host、パスなどの関連パラメーター。
VLESS UUIDで認証します。プロトコル自体はペイロードを暗号化せず、保護方法は外側の伝送設定によります。 UUID、伝送方式、TLSなど指定されたセキュリティパラメーター。アドレスだけでは設定できません。
Trojan 一般的な構成ではTLSを使用し、パスワードで認証します。 パスワード、ポート、TLSサーバー名、証明書との整合性。
HTTP / SOCKS5 汎用的なプロキシタイプです。認証の有無、UDP対応、接続の保護方法はそれぞれ異なります。 タイプ、アドレス、ポート、ユーザー名、パスワード。HTTPではTLSが必要かどうかも確認します。
WireGuard UDPベースの暗号化トンネルで、鍵ペアを使って通信相手を識別します。 ローカル秘密鍵、ピアの公開鍵、トンネルアドレス、エンドポイント、ルーティング関連のパラメーター。
Hysteria2 QUICベースで、UDPを使用します。TLSや認証に関する設定があります。 サーバーのUDPポート、認証情報、サーバー名、必要に応じて難読化パラメーター。

要点:元の設定に合わせてTypeを選択

まず、利用中のサービスから提供されたプロトコル名を確認し、Home →「+」→ Typeで該当する項目を選びます。同系統のプロトコルや任意の伝送パラメーターがある場合は、項目ごとに照合してください。名前が似ているからといって置き換えないようにしましょう。

プロトコル・伝送方式・TLS:3つの層を分けて確認

接続情報にはVLESS、WebSocket、TLSなど複数の名称が並ぶことがありますが、それぞれ異なる層を指しています。プロトコルは通信相手との要求の構成や認証方法を定め、伝送方式はデータの運び方を定めます。TLSは伝送の暗号化とサーバーの本人確認に関わります。これらをひとまとめに「プロトコル名」と捉えると、インポート後に設定を手動変更する際の間違いにつながります。

第1層:接続プロトコル
VMessとVLESSなどが該当します。どちらもUUIDを使う場合がありますが、Typeを相互に置き換えることはできません。Shadowsocksのパスワードも、Trojanの認証情報としてそのまま使えるわけではありません。
第2層:伝送方式
TCPやWebSocketなどが該当します。設定情報でWebSocketが指定されている場合は、パスとHostも確認が必要です。通常のTCPに変更しても、サーバー側が求める伝送方式を回避することはできません。
第3層:セキュリティ設定
TLSのサーバー名は本人確認に使われ、サーバーへの接続にも影響する場合があります。接続先アドレス、HTTP Host、TLSサーバー名は異なる値を取ることがあるため、元の設定値をそれぞれ保持してください。

ポート番号は接続先サービスの入口であり、プロトコルを識別する番号ではありません。たとえば443はTCPサービスにも、UDPベースのQUICサービスにも使われます。51820はWireGuardでよく使われますが、必須ポートではありません。443だからといってTrojanとは限らず、WireGuardのポートをすべて51820に変更する必要もありません。

手動追加・サブスクリプションのインポート:保存後に項目を確認

以下の手順は、利用者が自身のサービスを契約し、該当する接続情報を使用する権利を持っていることを前提としています。サブスクリプションは設定を配布・更新する方法であり、接続プロトコルではありません。インポート後に複数のTypeが表示されるのは正常です。当サイトでは接続先やサブスクリプションを提供・販売・推奨していません。

  1. 元の設定情報を確認

    プロトコル名、サーバーアドレス、ポート、認証方式を控えます。手動で追加する場合は、伝送方式やTLSの全パラメーターも必要です。サーバーアドレスだけでは接続設定を再現できません。

  2. 追加方法を選択

    手動で追加する場合はHome →「+」→ Typeを開き、元の設定情報に合わせてプロトコルを選びます。サブスクリプションを利用中の場合は、TypeでSubscribeを選択し、自身のサブスクリプションURLを入力して保存します。例のhttps://example.com/sub?token=xxxxはURL形式を示すもので、接続には使用できません。

  3. 接続の詳細を確認

    Homeに戻り、SERVERリストから該当項目の編集画面を開いて、Type、アドレス、ポートを確認します。次に、パスワードまたはUUID、TLS、伝送パスなどを確認してください。WireGuardでは設定全体に含まれる鍵とトンネル関連の項目を確認し、パスワード入力式の設定と同じように扱わないでください。

  4. ルーティング設定を確認

    Home → Global Routingで現在の選択項目を確認します。ルールに従って使う場合はConfigを選び、Configで現在有効な設定を確認してください。追加できたからといって、すべてのリクエストがその接続を経由するとは限りません。

  5. 接続して結果を確認

    Homeに戻って対象の項目を選び、接続スイッチをオンにします。初回はシステムの案内に従ってVPN構成の追加を許可してください。Connectivity Testを実行した後、自身の接続先サービスにアクセスし、接続状態と実際のリクエスト結果をそれぞれ確認します。

サブスクリプション更新後は、項目の詳細を再確認し、アドレス、ポート、Typeに変更がないか確認してください。更新の成功はサブスクリプションの取得と処理が完了したことを示すだけで、各接続が利用可能であることを保証しません。一方、サブスクリプションURLに一時的にアクセスできなくても、保存済みの接続設定がすぐに無効になるとは限りません。「設定の取得」と「設定を使った接続」を分けて記録し、切り分けましょう。

Global Routingの比較:プロトコルでリクエストの経路は決まらない

同じTrojanやWireGuardの接続でも、Global Routingの設定によって処理されるリクエストは異なる場合があります。ここで比較するのはShadowrocketのルーティング設定であり、プロトコルの性能ではありません。以下でConfigに付けた「おすすめ」は、ルールを準備して確認済みで、ルールに従って利用する場合に限ります。問題の切り分けでは、目的に応じて設定を切り替え、常に同じ項目を使うのではなく結果を比較してください。

Config

おすすめ

現在の設定にあるルールに従ってリクエストの処理方法を決めます。DIRECTに一致したリクエストは直接接続し、プロキシ方針に一致したリクエストだけが該当する接続に渡されます。FINALの処理方法も設定内容によって決まります。

適しているケース:明確なルールがあり、直接接続とプロキシ接続を使い分けたい場合。

Proxy

対象範囲のリクエストをプロキシ経由で処理します。一時的な比較テストに使い、Configでのルール判定がアクセスに影響しているかを確認できます。システムのすべての通信が必ずプロキシ経由になるという意味ではありません。

適しているケース:利用可能な接続があり、ルールの影響と接続自体の問題を一時的に切り分けたい場合。

Direct

リクエストを直接接続で処理します。この状態では、Homeでサーバーを選択していても、そのサーバーを使ってアクセスしているとは判断できません。

適しているケース:直接接続の結果と比較し、問題がプロキシ経由の場合に限られるか確認したい場合。

Global RoutingのSceneは、設定済みのシーン条件に応じてルーティング動作を選ぶ機能であり、追加の接続プロトコルではありません。Settings → On Demandはオンデマンド接続の設定を管理するもので、サーバーのTypeは変更しません。VPNの自動接続、どのルールにリクエストが一致するか、最終的にどのプロトコルで通信するかは、それぞれ分けて確認する必要があります。

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

以下はルールの適用順を理解するための例であり、接続設定全体を示すものではありません。最初のルールはapi.example.comにPROXYを適用し、後続のDOMAIN-SUFFIXはexample.comとそのサブドメインに適用します。IP-CIDRの192.0.2.0/24は文書用の例示ネットワークで、no-resolveはこのルールのためにドメインを積極的に名前解決しないことを表します。GEOIPはIPの地理情報に基づいて判定し、FINALはそれまでのルールに一致しなかったリクエストを処理します。ここでのPROXYはルーティング方針を示す語であり、プロトコル名ではありません。

接続できないときの確認方法:どの層で失敗しているかを切り分ける

「遅延時間が表示される」「VPN接続済みになる」「接続先のWebページを開ける」は、それぞれ別の結果です。Connectivity Testの結果はテスト方法を踏まえて解釈する必要があり、接続先サービスも必ず利用できるとは限りません。以下では、確認できる症状に応じたチェック順を紹介します。実測データではなく、問題を切り分けるための確認項目です。

確認できる症状 まず確認する項目 次に行うこと
保存直後に認証関連のエラーが表示される Type、パスワード、UUID、鍵が元の設定情報と一致しているか。 項目の編集画面を開いて一つずつ照合し、コピー時の余分な空白や欠落にも注意します。
TLSまたは証明書のエラーが表示される サーバー名、証明書の有効性、端末の日時、伝送設定。 証明書の検証を維持したまま、誤った設定を修正して再接続します。
Hysteria2またはWireGuardがタイムアウトする 接続先のUDPポートが正しいか、現在のネットワークで必要なUDP通信が許可されているか。 設定はそのままにし、利用権限のある別のネットワークで比較テストします。安易にTCPへ変更しないでください。
一部のドメインだけ接続できず、ほかのリクエストは正常 Global Routing、現在のConfig、ルールの順序、ドメインの名前解決結果。 同じ接続先でProxyとConfigの結果を比較し、該当したルールを確認します。
サブスクリプション更新後に項目がおかしくなった 更新後にアドレス、ポート、認証情報、Typeが変わっていないか。 利用中のサービスから提供された最新情報と照合し、サブスクリプションの読み込みエラーと接続エラーを切り分けます。

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

接続先と設定を固定し、まずネットワークを比較し、次にルーティング設定を比較してから、プロトコルのパラメーターを確認します。Type、ポート、TLS設定を同時に変更すると、どの変更が結果に影響したのか判断できません。

よくある質問:対応リストにあっても、すべての設定が使えるとは限りません

既存のShadowsocksをVLESSに変更すると速くなりますか?

Typeだけを変更しても接続できません。2つのプロトコルには、それぞれ対応するサーバーと認証情報が必要です。まず元の設定を維持したままHomeでConnectivity Testを実行し、同じ接続先にアクセスして結果を確認します。利用中のサービスから別の完全な設定一式が提供されている場合に限り、それぞれ追加して結果を比較してください。プロトコル名だけで速度が保証されることはありません。

HTTPとSOCKS5はどちらもプロキシです。互いに置き換えられますか?

置き換えられません。Homeで項目の編集画面を開き、提供された設定に合わせてType、ポート、認証情報を確認してください。一般的なHTTPプロキシ接続とSOCKS5は、プロキシと呼ばれているだけで自動的に暗号化されるわけではありません。HTTP CONNECTで接続先WebサイトがHTTPSであっても、クライアントからプロキシサーバーまでの通信でTLSが有効になっていることを意味しません。

Hysteria2が現在のネットワークでタイムアウトします。ポートを変更すべきですか?

まず元の設定に記載されたUDPポートと認証情報を確認し、同じ設定のまま別の利用可能なネットワークで再確認してください。ポートはサーバー側で実際に待ち受けている必要があり、クライアント側で任意に指定することはできません。Hysteria2はQUICベースのため、番号を443に変えても通常のTCP接続にはなりません。

サブスクリプションにプロトコル名があるのに、完全にインポートされないのはなぜですか?

プロトコルファミリーに対応していても、すべての共有形式、拡張パラメーター、組み合わせをそのまま解析できるとは限りません。インポート後に項目の編集画面を開き、TLS、伝送パス、認証情報を確認してください。重要な項目が欠けている場合は推測で入力せず、利用中のサービスに現在のアプリで選べる設定に対応した完全な情報を確認してください。

WireGuardは公開鍵だけ入力すればよいですか?

公開鍵だけでは足りません。ローカル秘密鍵、ピアの公開鍵、エンドポイントのアドレスとポート、トンネルアドレス、関連するルーティングパラメーターを確認してください。サーバー側にも対応するクライアント設定が必要です。秘密鍵やサブスクリプションの認証トークンは機密情報です。問題の切り分け中でも、内容全体を公開ページに貼り付けないでください。

App Storeでダウンロード