Shadowrocketの対応プロトコル一覧|ShadowsocksからHysteria2までを解説

Shadowsocks、VMess、VLESS、Trojan、HTTP/SOCKS5、WireGuard、Hysteria2の特徴と設定項目を一覧で比較。接続設定の種類を確認できます。

この記事の概要

Shadowrocketは複数のプロキシプロトコルとトンネルプロトコルに対応しています。Typeは手元の設定と一致させる必要があり、名前を変更してもサーバー側のプロトコルは切り替わりません。この記事では、よく使われる8種類を比較し、認証・通信方式・ルールの違いを解説します。すでにサブスクリプションや接続情報をお持ちで、読み込み方法や接続確認を知りたい方に向けた内容です。ノード、サブスクリプション、接続サービス、招待コードの提供・販売・推奨は行っていません。

主なプロトコルと通信方式

まずサービス提供元が案内するプロトコル名を確認し、設定項目と照らし合わせます。プロトコルは接続する双方の認証方法やデータ交換の方式を定めます。一方、TCP、UDP、WebSocket、QUICなどはデータの伝送方法を表します。これらは異なる階層の概念です。WebSocketをVLESSと同列のサーバータイプとして扱ったり、ポート番号だけでプロトコルを判断したりすることはできません。

プロトコル方式と通信の特徴確認が必要な設定項目
Shadowsocks暗号化プロキシプロトコル。TCPとUDPを扱えますが、利用できる機能は接続双方の実装と設定によって異なります。アドレス、ポート、Password、暗号化方式。プラグインの設定項目は元の設定どおりに入力します。
VMessUUIDなどで認証し、複数の通信方式やTLSと組み合わせて利用できます。UUID、通信方式、TLS、および元の設定で指定されているその他の認証項目。
VLESS軽量な認証プロトコルです。プロトコル自体に通信を暗号化する機能はなく、設定で指定されたセキュリティ層と組み合わせて使用します。UUID、セキュリティ層、通信方式。Flowを使用する場合はサーバー側の設定と一致させます。
Trojan通常はTLSで接続し、Passwordで認証します。Password、ポート、TLSサーバー名、証明書の検証条件。
HTTPHTTPプロキシ。CONNECTで接続先への通信を確立します。プロキシ区間でTLSを使用するかどうかは別途確認が必要です。プロキシのアドレス、ポート、認証情報、TLSの有効・無効。
SOCKS5汎用プロキシプロトコルで、TCPを扱えます。UDP転送にはクライアントとサーバー双方の対応が必要です。アドレス、ポート、認証情報、サーバー側のUDP対応状況。
WireGuardUDPベースの暗号化されたレイヤー3トンネルです。鍵で接続先を識別し、ユーザー名とPasswordで認証するプロキシではありません。Private Key、Peerの公開鍵、Endpoint、トンネルアドレス、Allowed IPs。
Hysteria2QUICを使用し、下位層ではUDPで通信します。接続には、ネットワークで該当するUDP通信が許可されている必要があります。アドレス、ポート、認証情報、TLS、および元の設定に含まれる難読化や帯域幅の項目。

ポイント:設定を一致させてからネットワークを確認

手元の設定に合わせてTypeを選び、元のパラメーターを維持してください。Hysteria2やWireGuardで接続できない場合は、別のTypeに変更するのではなく、該当するUDP通信が可能か確認します。

この表は代表的なプロトコルの識別を目的としたもので、機能の全一覧でも速度ランキングでもありません。同じプロトコルでも、サーバーの負荷、ネットワーク経路、設定によって通信状況は変わります。プロトコル名だけで接続速度が上がるとは限りません。

認証・TLS・ポート:混同してはいけない3つの項目

アドレスとポートは接続先を指定し、Password、UUID、鍵は認証に使います。TLSは安全なハンドシェイクと証明書の検証に関係します。読み込み後に一覧へサーバー名が表示されても、設定が保存されたことを示すだけで、接続確認が済んだわけではありません。

8種類
この記事で比較する主なプロトコル。HTTPとSOCKS5は別々に数えています。
443
HTTPSでよく使われるポートですが、番号だけでプロキシプロトコルは判別できません。
4つのモード
Global Routing:Proxy / Direct / Config / Scene

WireGuardのAllowed IPsは、Peerに送信する宛先ネットワークを指定し、トンネルの経路選択にも使われます。DNSサーバーの一覧ではありません。DNS、MTU、トンネルアドレスにもそれぞれ役割があるため、鍵を入力しただけでネットワーク設定がすべて完了したとは限りません。

Homeで既存の設定を読み込み、内容を確認する

以下ではiPhone / iPadの画面を例に説明します。サブスクリプションをお持ちの場合は、まずそれを読み込んでください。単一サーバーの接続情報がすべて揃っている場合に限り、項目を手動で入力します。サブスクリプションURLは設定を取得するためのもので、実際のプロキシ接続に使うプロトコルではありません。1つのサブスクリプションに複数のTypeが含まれる場合もあります。

  1. 提供元を確認

    利用中のサービスの設定案内を開き、サブスクリプションURL、単一サーバーの共有リンク、WireGuard設定ファイルのどれが提供されているか確認します。記載されたプロトコルと必須項目も控えてください。

  2. サブスクリプションを読み込む

    Home → 右上の「+」→ TypeでSubscribeを選び、自分のサブスクリプションURLをURL欄に入力して保存します。例として示した https://example.com/sub?token=xxxx は架空の値で、接続には使えません。

  3. Typeを確認

    Homeに戻り、読み込んだ項目の編集画面でType、アドレス、ポート、認証情報を確認します。手動で追加する場合は、Home →「+」→ Typeから元の設定と同じプロトコルを選んでください。

  4. 接続を確認

    Homeでサーバーの丸印をタップして選択し、接続スイッチをオンにします。初回に表示されたらVPN構成の追加を許可し、その後Connectivity Testを実行してウェブサイトへのアクセス状況も確認してください。

  5. 更新後に再確認

    更新が必要な場合は、Homeでサブスクリプションを更新し、選択中のサーバーが残っていること、Typeと設定項目が元の設定に合っていることを確認します。設定を更新しても、既存の接続がすべて再確立されるわけではありません。

プロトコルとGlobal Routing:別々に確認する2つの項目

プロトコルが正しくても、通信先へのリクエストが必ずそのサーバーを経由するとは限りません。Home → Global Routingでは通信のルーティング方法を選び、Homeで選択したサーバーではプロキシの出口を指定します。Configで有効にした設定ファイルは、ルールとポリシーを提供します。ルールに一致しない問題をTypeの変更で解決しようとしないでください。

Config:設定に基づいて通信を振り分ける

おすすめ

現在の設定に含まれるルールとポリシーを使用します。まずConfigで有効なファイルを確認し、Home → Global Routing → Configを選択してください。日常の確認には、内容を確認済みのルール設定を基準にすることをおすすめします。

適した用途:直結とプロキシの接続先を使い分ける日常的な利用

Proxy:プロキシ経路を確認

アプリが処理する通信をプロキシ経由にし、通常の振り分けルールが確認結果に影響するのを抑えます。Passwordの誤り、無効な証明書、到達できないサーバーは解決できません。

適した用途:選択したサーバーで接続できるかを短時間で確認

Direct:直接接続の状態を確認

Directでは選択したサーバーをプロキシの出口として使わず、直接接続します。Directでのみウェブサイトにアクセスできる場合は、端末全体のネットワーク障害と判断せず、プロキシ経路を確認してください。

適した用途:現在のネットワークから接続先にアクセスできるかを比較

Scene:シーン設定を確認

シーンの設定に従ってルーティングします。トラブルの確認時には、現在のシーンと関連する設定も確認してください。Homeで選択中のサーバーだけから実際の接続先を判断することはできません。

適した用途:シーン設定を作成済みで、利用条件を切り替える場合

ルールキーワードもプロトコルではありません。DOMAIN-SUFFIXはドメインの末尾、IP-CIDRはIPアドレスの範囲、GEOIPはIPアドレスの地理データベースを使って照合します。FINALは、それ以前のルールに一致しなかった接続を処理します。以下はルール構文の例です。設定ファイル全体を置き換えるためのものではありません:

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

通常はルールを上から順に照合し、個別ルールは最後に適用するFINALより前に記述します。設定でポリシーグループを使う場合は、グループ内の選択も確認してください。Settings → On Demandではオンデマンド接続の条件を管理します。プロトコルの認証情報を変更する機能ではありません。自動接続が繰り返される場合は、サーバーを何度も削除するのではなく、ここを確認してください。

プロトコルの確認方法と接続できないときの対処

受け取ったリンクのプロトコルはどう見分けますか?

まず元の設定案内とリンクの用途を確認します。単一サーバーのリンクにはプロトコルを示すプレフィックスが含まれる場合がありますが、通常のHTTPSサブスクリプションURLはドメイン名だけでは内容を判断できません。読み込み後、Homeで項目の編集画面を開いてTypeを確認し、提供元の案内と照合してください。サーバーのメモ名から推測しないでください。

VLESSをTrojanに変更すると速くなりますか?

変更してもサーバー側の対応機能は切り替わりません。認証とハンドシェイクの方式が異なるため、Typeを直接変更すると設定項目が一致せず、接続できなくなることがあります。元のTypeに戻してください。すでに複数のプロトコルに対応した設定がある場合は、それぞれ読み込み、同じネットワーク・接続先・近い時間帯で比較します。

Hysteria2がタイムアウトし、別のプロトコルなら接続できる場合は?

まずHysteria2のポート、認証情報、TLS名を確認し、利用可能な別のネットワークでもう一度テストしてください。ネットワークを変えると結果も変わる場合は、UDP通信の制限を重点的に確認します。タイムアウトだけでPasswordの誤りやプロトコルの非対応と判断することはできません。

遅延は測定できるのに、ウェブページが開かないのはなぜですか?

単発の遅延測定やポート確認だけでは、プロキシ経由のリクエストが正常に完了するとは限りません。HomeでConnectivity Testを実行し、Global RoutingがDirectのままになっていないか確認してから、Configのルール、ポリシーの選択、DNSを確認してください。一度に変更する項目は1つにし、変更前後の具体的なエラーを記録します。

サブスクリプション更新後にプロトコル名が変わった場合、手動で戻す必要がありますか?

まず利用中のサービスの設定案内を確認し、サーバー項目が変更されたかを調べます。更新によってアドレスやポート、接続設定全体が置き換わる場合があります。Typeと現在の選択内容を確認し、古いPasswordや通信設定を新しい項目にコピーして混在させないでください。

Shadowrocket をダウンロード