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に代わる接続プロトコルではありません。
-
接続情報をそろえる
サービス提供元からプロトコル、アドレス、ポート、認証情報を入手してください。TLS、Server Name、Host、Pathなどの追加パラメータも一緒に控えます。記載のない項目を、別のサーバー設定からコピーしないでください。
-
プロトコルを選ぶ
Home → 右上の「+」→ Add Serverを開き、Typeで接続情報に対応するプロトコルを選びます。AddressとPortを入力してください。たとえば指定ポートが443なら443を入力しますが、すべてのプロトコルがそのポートを使うとは限りません。
-
認証情報を入力する
Typeに応じてPassword、UUID、または鍵情報を入力します。VMessやVLESSのUUIDをTrojanのPasswordとして使うことはできません。WireGuardのPrivate KeyとPublic Keyも相互に置き換えられません。
-
通信設定を確認する
サービス提供元の情報に従ってTLSと通信パラメータを設定します。WebSocketを使う場合は、HostとPathも確認してください。パスの先頭のスラッシュ、大文字・小文字、クエリパラメータは、案内されたとおりに入力します。
-
保存して接続を確認する
保存後、Homeに戻ります。SERVER一覧で対象項目の左にある丸を選択し、画面上部の接続スイッチをオンにします。システムの案内に従ってVPN構成の追加を許可したら、Connectivity Testを実行し、実際に利用したいサービスにもアクセスして確認してください。
TLS・Host・Path:同じプロトコルでも接続できない場合
Addressは接続先、Server NameはTLSハンドシェイクで使うサーバー名、HostはHTTPやWebSocketのリクエストに含まれるホスト名です。値が同じ場合もありますが、それぞれ用途が異なるため、一律に同じ設定にはできません。IPアドレスに接続する場合でも、Server Nameにはサービス提供元指定のドメイン名が必要なことがあります。
- TLS:有効にするかどうかはサーバー側の設定に合わせます。ポート443は単なるポート番号です。これだけでTLSが正しく設定されているとは判断できません。また、ポート番号を理由に通常のHTTPプロキシをHTTPSプロキシへ変更することもできません。
- Server Name:スペルと証明書の対応を確認します。証明書の検証エラーが出た場合は、まず端末の時刻、接続先アドレス、サーバー名を確認してください。証明書検証を無効にする方法を、通常の解決策として使わないでください。
- Host:WebSocketなどの通信方式では、サーバー側がHostに基づいてリクエストを振り分ける場合があります。接続先に到達できても、リクエストが正しいサービスに届いているとは限りません。
- Path:
/wsと/は異なるパスです。ここでは書式の例として示しており、すべてのサーバーで使える設定値ではありません。 - UDP:Hysteria2とWireGuardはUDPを使用します。利用中のネットワークでUDPが制限されている場合、Passwordの変更やTLSのサーバー名の調整を繰り返しても、通信経路の問題は解決しません。
不具合を切り分ける際は、症状ごとに確認項目を分けます。接続タイムアウトは、アドレス、ポート、ネットワーク、サーバーの状態が原因の可能性があります。認証エラーでは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です。クライアントの購入と接続サービスの契約は別です。接続情報やサブスクリプションはサービス提供元から入手してください。
- プロトコル名が分かっている:Add ServerでTypeを確認し、表示名だけでプロトコルを判断しない。
- サーバーをインポート済み:アドレス、ポート、認証情報、TLS、通信パラメータが一式で一致しているか確認する。
- 接続スイッチをオンにした:Connectivity Testと実際の接続先へのアクセスを確認し、Global Routingで適用されるポリシーを調べる。
- 設定を変更する:元の設定を記録し、一度に変更するのは一つの項目グループにとどめ、比較できるよう元の状態を残す。