Shadowrocketの対応プロトコル|Shadowsocks・VMess・VLESS・Trojan・Hysteria2を解説

Shadowsocks、VMess、VLESS、Trojan、HTTP/SOCKS5、WireGuard、Hysteria2の特徴と設定項目を解説。Add Serverでの見分け方も紹介します。

この記事の概要

Shadowrocketは、複数のプロキシおよびトンネルプロトコルに対応しています。利用中のサービスやサブスクリプションがあることを前提に、各プロトコルで必要な設定項目、Home → Add Serverでの確認方法、接続できないときのチェックポイントを説明します。まず既存の設定に合わせてTypeを選び、認証情報、トランスポート、TLSを確認してください。プロトコル名だけを変更しても、同じ設定が別のプロトコルになるわけではありません。

1分で確認:プロトコル・トランスポート・ルーティングの違い

Shadowsocks、VMess、VLESS、Trojan、HTTP、SOCKS5、WireGuard、Hysteria2は、それぞれクライアントとサーバー間の通信方法を定めています。アドレスとポートは接続先を示す情報です。接続の確立には、パスワード、UUID、鍵、トランスポート設定も関係します。リストに表示される名前は自由に付けられるため、名前にプロトコル名があっても、Typeがそのプロトコルとは限りません。

TCP、WebSocket、QUICなどのトランスポート層はデータの送信方法を定め、TLSは該当する接続層の暗号化と認証を担います。Global Routingは、アクセスごとに適用するポリシーを決めます。Global Routingを変更しても、誤ったパスワードは直りません。また、UDPに対応していないネットワークでQUICが使えるようになるわけでもありません。

443
HTTPSでよく使われるポート。ポートが同じでもプロトコルが同じとは限りません
1080
SOCKSでよく使われるポート。実際の設定を確認してください
UDP
Hysteria2とWireGuardで必要となるトランスポート条件

判断のポイント:まずTypeを確認し、その後ポートを確認

どちらも443を使う設定でも、Typeとサーバー設定をそれぞれ確認してください。ポート番号だけでTrojan、VLESS、Hysteria2のいずれかを判断することはできません。

Add Serverで既存の設定を見分けて確認する

手動追加は個別の設定確認に、サブスクリプションは提供元を保った一括更新に向いています。どちらの場合も、まず元の設定情報を確認してください。サブスクリプションには接続情報が含まれることがあります。確認時にリンク全体、QRコード、パスワード、秘密鍵を公開しないでください。

  1. 追加画面を開く

    Homeを開き、右上の「+」をタップしてAdd Serverを表示します。Typeでは、既存の設定と同じプロトコルを選択してください。表示名を見て選ぶのは避けましょう。

  2. 接続先を確認する

    既存の情報と照らし合わせてアドレスとポートを入力します。アドレス欄には、項目に必要なホスト名またはIPだけを入力してください。共有リンク全体をホスト名として入力したり、443を全プロトコル共通のポートと考えたりしないでください。

  3. 認証情報を確認する

    Shadowsocksでは暗号化方式とパスワード、VMessとVLESSではUUID、TrojanとHysteria2では各プロトコルの認証情報を確認します。WireGuardではローカルの秘密鍵と対向の公開鍵を確認してください。これらの認証情報は互換ではありません。

  4. トランスポートを確認する

    TLS、サーバー名、トランスポートを一つずつ照合します。既存の設定でWebSocketを使っている場合は、パスとHostも確認してください。アドレスが名前解決できても、これらの項目を省略してはいけません。

  5. 保存してテストする

    保存したらHomeに戻り、対象の設定を選んでConnectivity Testを実行し、実際のアクセスも確認します。既存のサブスクリプションを使う場合は、Home →「+」→ TypeでSubscribeを選び、自分のサブスクリプションURLを入力します。更新後に設定を再確認してください。手動変更が提供元の内容で上書きされることがあります。

Shadowsocks・VMess・VLESS:認証と暗号化を区別する

この3種類は既存のサブスクリプションでよく見かけますが、設定項目は異なります。Shadowsocksでは、クライアントとサーバーで暗号化方式とパスワードを一致させます。VMessはUUIDなどを使って認証し、独自のデータ保護機能を備えています。VLESS自体は通信内容を暗号化しないため、UUIDを使っているだけでTLSによって保護されるわけではありません。

プロトコル確認する項目よくある設定ミス
Shadowsocksアドレス、ポート、暗号化方式、パスワード、および既存の設定で指定されたプラグイン項目パスワードは正しいが、暗号化方式がサーバー側と一致していない
VMessUUID、暗号化設定、トランスポート、使用する場合はTLS設定UUIDだけをコピーし、WebSocketのパスやTLS設定を見落とす
VLESSUUID、トランスポート、TLS、または既存設定で指定されたセキュリティ層の項目UUIDをパスワードと取り違える、またはプロトコル自体が通信内容を暗号化すると考える

たとえば既存の設定でWebSocketのパスが/gatewayと指定されている場合、/を入力すると別の接続先になります。指定されたHostと接続先アドレスが異なることもあります。ドメインの名前解決とTCPポートへの接続に成功しても、認証やパスが正しいとは限りません。

TrojanとHysteria2:どちらもセキュリティ層を使うが、トランスポート要件は異なる

Trojanでは、一般的にTLSを使って認証情報とプロキシデータを送信します。パスワードだけでなく、証明書の検証、サーバー名、実際の接続先アドレスも一致させる必要があります。接続先のIPアドレスと証明書のドメイン名が異なる場合があります。既存の設定でサーバー名が指定されている場合は、アドレス欄の内容に置き換えず、その値を使用してください。

Hysteria2はQUICを基盤とし、UDPとTLSを使用します。名前が似ていても、異なる世代のHysteriaプロトコルとは互換ではありません。ネットワークでUDPが制限されている場合、TCPを使うサービスは動作してもHysteria2がタイムアウトすることがあります。認証文字列を何度も変更する前に、ネットワーク条件とポートのプロトコルを確認してください。

HTTP・SOCKS5・WireGuard:用途と認証情報の違い

HTTPとSOCKS5は、既存のプロキシ接続先でよく使われます。HTTPプロキシではCONNECTを使って接続先へのトンネルを確立できますが、クライアントからプロキシまでの通信が自動的にTLSで保護されるわけではありません。接続先サイトのHTTPSと、プロキシ接続先までの通信が暗号化されているかは別の問題です。

SOCKS5は複数のコマンドと認証方式に対応しますが、プロトコル名だけでは、利用中のサーバーとネットワークがUDPに対応しているとは限りません。一般的なHTTPプロキシも、あらゆる用途に使えるUDPトンネルとは見なせません。UDPが必要な用途では、設定内容と実際に使える機能を確認してください。

種類主な設定項目確認事項
HTTPプロキシのアドレス、ポート、任意のユーザー名とパスワード接続先でTLSが有効か、認証要件が一致しているか
SOCKS5プロキシのアドレス、ポート、任意のユーザー名とパスワードサーバーの対応状況、認証方式、必要なUDP対応
WireGuardローカルの秘密鍵、トンネルアドレス、対向の公開鍵、Endpoint、および設定で指定されたその他の項目鍵の対応関係、UDPへの到達性、トンネルアドレスの設定

WireGuardは鍵を使うトンネルプロトコルで、一般的なプロキシのような「ユーザー名とパスワード」の構成ではありません。対向の公開鍵はローカルの秘密鍵とは異なり、Endpointは対向側のネットワーク上の接続先です。自分のデバイスに割り当てられるトンネルアドレスではありません。この2種類のアドレスを混同すると、接続先に到達できてもトンネル内で通信できないことがあります。秘密鍵は自分のデバイスと信頼できる設定内だけで管理し、公開画像に載せないでください。

プロトコルを確認したら、Global Routingでルールの問題を切り分ける

Homeでは接続先とサーバーを選択し、Configでは設定ファイルを管理し、Settingsではアプリの設定を変更します。Global RoutingのProxy、Direct、Config、Sceneはルーティング方式であり、新しいプロトコルではありません。トラブル対応では、まず元の設定値を記録してから一時的に変更してください。Sceneの結果は設定済みのシーンによって異なるため、現在適用されているシーンも確認します。

Config

おすすめ

現在の設定にあるルールに従って接続方法を決めます。ルールに一致すると、PROXY、DIRECTなどの設定済みポリシーが適用されます。一致しない通信には最終ルールが適用され、すべてが自動的に直接接続されるわけではありません。

適している用途:設定の動作を確認済みで、ルールに沿って日常的に接続する場合

Proxy

通常ルーティングの影響を受ける通信に、プロキシポリシーを適用します。Configとの比較に使えますが、選択中のサーバーの認証情報やトランスポートは変わりません。

適している用途:アクセスできない原因が一時的に振り分けルールにあるか確認する場合

Direct

選択中のリモートプロキシを経由せず、直接接続します。この状態でWebサイトが開いても、選択したサーバーの設定が正しいとは限りません。

適している用途:ローカルネットワークからの接続結果と比較する場合

判断の目安:Proxyでは接続でき、Configで失敗する場合は、まずルールを確認

同じサーバーと接続先のままProxyに切り替えてアクセスが回復した場合は、まずConfigの一致ポリシーと最終ルールを確認してください。Type、UUID、パスワードをすぐに変更する必要はありません。テスト後は元のルーティング方式に戻してください。

たとえば、DOMAIN-SUFFIX,example.com,PROXYはドメインのサフィックスでポリシーを指定します。IP-CIDR,192.0.2.0/24,DIRECTはIPアドレスの範囲で照合します。GEOIPはIPアドレスの地理情報に基づき、FINALは一致しなかった通信を処理します。これらのキーワードが決めるのは通信の振り分け先であり、プロトコルではありません。ここでの例は構文と照合対象を示すもので、既存の設定にそのまま置き換えられる完成済みルールではありません。

よくある質問:インポート・テスト・実際の利用の違い

インポートできたのに、接続がタイムアウトするのはなぜ?

インポートに成功したということは、設定内容が認識され保存されたという意味です。Homeに戻って該当する設定を編集し、まずType、アドレス、ポートを確認してから認証情報とトランスポート設定を確認してください。Hysteria2とWireGuardでは、UDPに到達できるかも確認します。現在のWi-Fiとモバイル通信の両方でテストすると、ローカルネットワークの影響を絞り込めます。

VMessをVLESSに直接変更できますか?

Typeだけを変更しても使えません。サーバー側が該当プロトコルの接続先を提供している必要があり、UUID、トランスポート、セキュリティ層の設定も一致させる必要があります。既存の設定元から別の設定一式が提供されている場合は、比較できるよう元の設定を残し、別の設定として追加してテストしてください。

サブスクリプションの更新後、手動で変更した設定が元に戻るのはなぜ?

サブスクリプションの設定は提供元の内容に合わせて更新されるため、手動の変更が上書きされることがあります。更新前後のType、ポート、トランスポート設定を照合してください。一時的な確認には、別途手動設定を作成できます。継続して使う場合は、更新のたびに変更を繰り返すのではなく、既存の設定元で内容を修正してください。

On Demandを有効にするとプロトコルが速くなりますか?

Settings → On Demandでは、条件に応じて接続を開始するかどうかを設定します。プロトコルの暗号化、輻輳制御、サーバー側の帯域幅は変わりません。自動再接続の問題を調べる場合は、この画面の条件を確認してください。速度を調べる場合は、ネットワークと接続先を固定し、接続成功率、遅延、継続的なデータ転送の結果をそれぞれ記録します。

選択の順序は、まず利用中のサービスが明示しているプロトコルを選び、設定項目をすべてそろえ、トランスポート要件をネットワークが満たしているか確認し、最後に同じ条件で利用結果を比べます。対応プロトコルの一覧はサーバー設定の代わりにはならず、特定のプロトコルがあらゆるネットワークで速いことを保証するものでもありません。

正規の入手先と設定の準備

ShadowrocketはAppleプラットフォーム向けのクローズドソースの有料アプリです。主にiPhoneとiPadで利用でき、入手先はApp Storeのみです。購入前にデベロッパ名Shadow Launch Technology LimitedとアプリID 932747118をご確認ください。システム要件、互換性、購入対象となる地域はApp Storeの掲載内容をご確認ください。買い切りの対象はアプリであり、接続サービスのプランは含まれません。当サイトでは接続先やサブスクリプションの提供、販売、推奨は行っていません。設定手順は、すでに必要な設定情報をお持ちであることを前提としています。

正規の販売元を確認する 使い方を見る
正規の入手先とダウンロード