[General]

Shadowrocketのクイックスタート

既存の設定を追加 → ルーティングモードを選択 → 接続をオン → 結果を確認 → 問題の原因を特定。

初回の設定では、確認可能な接続を一つ確立することを目指しましょう。すべての項目を一度に調整する必要はありません。まず、手元の情報が個別のサーバー情報なのか、サーバー一覧を取得するためのサブスクリプションなのかを確認します。前者には接続先のアドレス、ポート、認証情報が含まれ、後者はサーバー一覧を取得するURLです。設定ファイルは主にリクエストの振り分け方法を決めるもので、これら3種類の情報を同じ入力欄に混在させないでください。各手順の後にHomeへ戻って結果を確認してから、次へ進みます。

01 · Add Server / Subscribe:手元の情報を追加

情報の種類に合った追加方法を選び、保存後にHomeでサーバーを確認してください。Homeを開き、SERVERグループ付近のAdd Serverをタップして編集画面に進みます。サーバー情報をお持ちの場合は、Typeを選択して該当する項目を入力します。サブスクリプションの場合は、TypeでSubscribeを選び、URLを最後まで入力して保存します。サブスクリプションのURLを、個別サーバーのHostとして入力しないでください。

手動で入力する場合、Typeは手元の情報に記載されたプロトコルと一致させてください。Shadowsocks、VMess、VLESS、Trojanなどでは必要な認証項目が異なります。サーバーアドレスが同じでも、Typeを入れ替えることはできません。スクリーンショットにはType、Host、Port、Password、Methodを含む編集画面が表示されています。Typeを切り替えると入力項目が変わる場合があるため、選択中のプロトコルに対応する情報を入力してください。

Hostにはサーバーアドレス、Portにはポート番号を入力します。認証情報は省略せず、コピー時に前後の空白や改行が入っていないか確認してください。Methodなどのパラメータは、手元のサーバー設定と一致させます。適当に選んで接続を試さないでください。TLS、サーバー名、通信方式の設定も、手元の情報に従ってください。項目の意味がわからない場合は、先に用語一覧を確認してから、この手順に戻ってください。

QRコードをお持ちの場合は、Scan QR Codeで読み込み、認識された項目を確認できます。Import from Cloud JSONは別形式の情報を読み込むための機能で、Subscribeとは異なります。該当する形式の情報をお持ちの場合にのみ使用してください。どの方法でも、保存前にサーバーの種類、アドレス、認証項目を確認しましょう。見覚えのある名前かどうかだけで判断しないでください。

ShadowrocketのAdd Server画面。Type、Host、Port、Password、Methodのほか、Scan QR CodeとImport from Cloud JSONの項目を表示
Add Server:Typeに応じて項目が変わります。手元のサーバー情報に従って入力してください。

サブスクリプションの保存後は、名前だけでなくサーバー一覧を確認

Subscribeで追加する場合は、URL末尾のクエリパラメータも含め、サブスクリプションURLをすべてコピーしてください。アカウントを識別する情報が含まれるURLでは、パラメータを削除すると取得内容が変わったり、取得できなくなったりすることがあります。ここでは実際のURLを掲載していません。操作にはご自身のURLを使い、公開スクリーンショット、チャット、問い合わせ内容に載せないようご注意ください。保存後、アプリが情報を取得するのを待ってからHomeに戻り、サーバーが表示されているか確認します。

サブスクリプショングループだけが表示され、選択できるサーバーがない場合は、すぐに接続スイッチをオンにせず、取得や更新の結果を確認してください。URLが有効であること、最後まで正しくコピーされていること、現在のネットワークからアクセスできることを確認します。更新が必要な場合は、そのサブスクリプションに対応する更新操作を使ってください。更新後も一覧を確認しましょう。サーバー名、並び順、内容が変わっていることがあります。その後、SERVERリストから使うサーバーを選び、選択マークを確認してください。先頭のサーバーが選択中だと思い込まないようにしましょう。

この手順の完了時に、一覧に使えるサーバー情報があるか、現在どのサーバーが選択されているかを説明できる状態にしてください。サブスクリプションの取得成功は、一覧の読み込みが完了したことを示すだけで、各サーバーの接続を保証するものではありません。この2点を確認してからルーティングモードを設定すると、読み込みの問題をルールの問題と取り違えずに済みます。

02 · Global Routing:リクエストの処理方法を選択

モードを確認してから、ルールの確認が必要か判断してください。Homeに戻り、Global Routingをタップして現在の選択を確認します。選択肢はConfig、Proxy、Directの3つです。この設定はリクエストの処理方法を決めるもので、サーバー情報を入力したり、既存サービスの認証情報を変更したりするものではありません。

Configは現在の設定ファイル内のルールに従ってリクエストを処理します。宛先ごとに異なる方針を適用する場合は、正しい設定ファイルが選択されていることを確認してから使います。Proxyはリクエストが現在のプロキシ経由で処理されるかを一時的に確認するのに適していますが、設定ファイルのルール確認の代わりにはなりません。Directは直接アクセスするモードです。選択中は、リクエストがProxyモードで処理されることを期待しないでください。

Configを使う場合は、画面下部のConfigを開き、現在使用中の設定ファイルを確認します。ファイルの編集画面でRuleを確認してください。公式スクリーンショットにはGeneral、Hosts、URL Rewrite、HTTPS Decryptionなどの項目も表示されています。初めて設定する場合、接続のためにすべての項目を変更する必要はありません。使用中のファイルとルールが想定どおりかを確認しましょう。

ルールは上から順に評価され、最初に一致したルールのポリシーが適用されます。DOMAINとDOMAIN-SUFFIXでは一致する範囲が異なり、FINALは通常、該当するルールがない場合のフォールバックとして末尾に置きます。PROXY、DIRECT、REJECTはルールのポリシーを示すキーワードです。PROXYとGlobal RoutingのProxyは設定階層が異なります。似た名前を見かけたら、ルールを編集しているのか、全体のモードを切り替えているのか確認してください。

ShadowrocketのConfig設定ファイル編集画面。General、Rule、Hosts、URL Rewrite、HTTPS Decryption、Add Ruleを表示
Config:まず使用中のファイルを確認し、Ruleの内容と順序をチェックします。

少数のルールでConfigの基本を確認

以下は構文の例であり、現在の設定ファイル全体を置き換えるためのものではありません。1行目はexample.comとそのサブドメインにPROXYを適用し、2行目はそれ以外の一致しなかったリクエストにDIRECTを適用します。例示のドメインは書式の説明用です。実際の接続結果を判断するためのものではなく、サーバーの認証情報も含まれていません。

[Rule]
DOMAIN-SUFFIX,example.com,PROXY
FINAL,DIRECT

フォールバックルールを先頭に置くと、それ以降のルールが評価されない場合があります。実際の設定を確認するときは、ルールの内容だけでなく一覧内の順番も確認してください。最初の動作確認では既存の設定を保ち、Global Routingの選択を記録します。「接続は確立しているが、特定の宛先への通信が想定と異なる」場合に、この設定を確認してください。複雑なルールやポリシー、設定項目の詳しい説明はルールと設定項目のリファレンスをご覧ください。このチュートリアルでは基本的なモードの確認を行います。

この手順の完了時に、現在のモードがConfig、Proxy、Directのどれかを把握してください。Configの場合は、使用中のファイル名も確認します。Homeに戻ってGlobal Routingの表示をもう一度確認し、選択が反映されていることを確かめてから接続に進みます。

03 · Home:許可して接続スイッチをオンにする

接続前に、サーバーとGlobal Routingの両方を確認してください。Homeに戻り、SERVERリストで使用するサーバーが選択されていることと、Global Routingに先ほど確認したモードが表示されていることを確かめます。画面上部にNot Connectedと表示されている場合、アプリの接続はまだ確立されていません。横のスイッチをオンにして接続を開始します。

初回の接続時、システムからVPN構成の追加を許可するよう求められる場合があります。操作中のアプリがShadowrocketであることを確認してから、システムの案内に従って許可し、デバイスで求められる認証を行ってください。この許可は接続に必要な構成をシステムに追加するためのものです。サブスクリプションの取得成功を示すものではなく、サーバー認証の成功を保証するものでもありません。

システムの確認画面でキャンセルした場合は、アプリに戻って接続を再試行し、システムのVPN設定で関連する構成の状態を確認してください。許可が完了しているか確認する前に、サーバーを次々と変更しないでください。システムの許可とサーバー認証は別々の確認項目です。前者はデバイス側で管理され、後者は読み込んだ項目とサーバーの状態によって決まります。

許可が完了したらHomeに戻り、画面上部の接続状態とスイッチがオンのままか確認します。スイッチがすぐにオフになる、未接続のまま変わらない、エラーが表示される場合は、具体的なメッセージを記録してからトラブルシューティングに進んでください。システムのステータスバーに表示されるアイコンだけで、接続先のサービスが正常かどうか判断しないでください。アイコン、アプリの接続状態、実際の通信成功はそれぞれ別の情報です。

ShadowrocketのHome画面。上部にNot Connectedのスイッチ、Global RoutingのConfig、Connectivity Testを表示し、下部にSERVERグループとAdd Serverを表示
Home:サーバーとモードを確認し、画面上部のスイッチで接続します。

デバイスに別のVPN構成がある場合は、テスト中に意図しない接続へ切り替わらないよう、現在有効な構成を確認してください。初回の確認ではOn Demandも同時に変更しないことをおすすめします。オンデマンドの条件によって接続動作が変わると、手動スイッチの結果なのか条件による自動接続なのか判別しにくくなります。まず手動で接続して通信できることを確認し、必要に応じてOn Demandを設定してください。

接続状態が安定したら、すぐに設定を変更する必要はありません。同じサーバーとGlobal Routingのモードを維持したまま、動作確認に進みます。設定を変えずに確認することで、次の段階で差が生じた場合、テスト方法、宛先へのルール適用、サーバーのどこに原因があるのか切り分けやすくなります。

04 · Connectivity Test:接続とルーティングを確認

[Rule]

テスト結果は実際のアクセス状況とあわせて確認してください。HomeでConnectivity Testをタップし、結果が表示されるまで待ちます。テスト方法はSettingsのTest Methodで確認できます。テスト方法によって確認できる段階は異なるため、1回の結果だけで、すべてのサイト、プロトコル、アプリが使えると判断しないでください。テストに失敗した場合も、まず使用した方法と条件を確認してから、サーバーの問題かどうか判断します。

サーバーに到達できること、アプリの接続が確立していること、宛先へのリクエストに想定したポリシーが適用されることは、それぞれ別に確認する必要があります。一覧のテストに応答があっても、認証情報やその後の通信が正しくない場合があります。画面上部のスイッチがオンでも、特定の宛先にDIRECTやREJECTが適用されることがあります。確認の際は、サーバー名、Global Routing、現在の設定を記録し、同じ条件で再現できるようにしてください。

次にブラウザーや使用予定のアプリを開き、アクセスが許可されている、ご自身がよく知っている宛先にアクセスします。最初の画面が表示されるだけでなく、ページの読み込みが完了するか確認してください。Configを使う場合は、DIRECTになる想定の宛先と、PROXYになる想定の宛先をそれぞれ選んで確認します。アプリで接続記録を確認できる場合は、宛先、一致したルール、適用されたポリシーをチェックしてください。ページが開くかどうかだけでは、リクエストの経路を正確に判断できません。

実際の結果が想定と異なる場合は、Configに戻って宛先に適用されるルールと、その前にあるルールを確認します。ドメインのサフィックス、完全なドメイン名、IPアドレスでは一致条件が異なります。ページはほかのドメインからもリソースを読み込むことがあるため、メインページは表示されても一部のリソースが失敗する場合、アドレスバーのドメインだけでなく、失敗したリクエストを確認してください。ルールの書き方がわからない場合は、DOMAIN-SUFFIXの用語解説と設定項目のリファレンスをご覧ください。

原因を切り分けるには、元の設定を記録したうえで、一時的にProxyに切り替えて同じ宛先を再テストします。Proxyでは使えるのにConfigで想定と異なる場合は、現在の設定とルールの順番を優先して確認してください。どちらも失敗する場合は、サーバー情報と通信状態を再確認します。これは原因を絞り込むための方法であり、特定のモードを長期間使い続けることを求めるものではありません。確認後は用途に合ったモードに戻し、もう一度テストしてください。

この手順の完了時には、少なくとも一つの実際のリクエストが完了したことと、現在のモードが用途に合っていることを確認してください。テスト結果だけで実際のアクセス記録がない場合、動作確認は完了していません。設定が正常に動作した場合は、その状態を後で比較できるよう記録します。まだ問題がある場合は、具体的な症状を整理して次の手順に進みます。

05 · Settings / Diagnostics:問題が起きた箇所から確認

まずネットワーク環境と読み込んだ情報を確認し、複雑な設定は最後に調べてください。Homeに戻って接続をオフにし、同じデバイスで通常の通信ができることを確認します。ネットワーク自体に問題がある場合は、先にネットワーク接続を直してからShadowrocketをテストしてください。Wi-Fiとモバイル通信を切り替えると、現在のネットワークに原因があるかを調べられます。サーバーとモードはそのままにして、複数の条件を同時に変えないようにしましょう。

サブスクリプションを取得できない、または一覧が空の場合は、URL全体、有効状態、取得結果を確認します。サーバーを追加できても接続できない場合は、対象の編集画面を開き、元の情報と照らし合わせてType、Host、Port、認証項目、関連する通信設定を確認してください。大文字と小文字、入力漏れ、余分な空白も一つずつチェックします。認証項目の誤りをルールの変更で補おうとしないでください。

スイッチがオンのままにならない場合は、システムのVPN許可が完了しているか確認し、アプリに表示された具体的なエラーを読みます。接続は確立しているのに宛先への通信に問題がある場合は、Global Routing、選択中のサーバー、Configファイルを確認してください。テスト後もDirectのままになっていないか、設定を更新した後に使用中のファイルが変わっていないかも確認します。基本項目がすべて正しいことを確かめてから、詳細設定を調べてください。

Settingsを開き、Test MethodやDiagnosticsなどの項目を確認します。Test Methodではテスト方法を確認・変更できます。Diagnosticsでは診断情報を確認できます。SettingsにはOn Demand、Proxy、TCP、UDPなどの項目もありますが、初回のトラブルシューティングで一つずつ切り替える必要はありません。現在の症状に関係する設定だけを変更し、元の値を記録してテスト後に戻せるようにしてください。

ShadowrocketのSettings画面。Language、Test Method、Today Widget、On Demand、Diagnostics、Proxy、TCP、UDPを表示
Settings:まずテスト方法を確認し、必要に応じてDiagnosticsを確認します。

症状に応じて次の確認項目を選ぶ

症状 まず確認する項目 次の手順
Subscribeを保存してもサーバーが表示されない URL全体、有効状態、取得結果 情報を確認して更新し、SERVERリストをもう一度確認
接続スイッチがすぐにオフになる システムのVPN許可、エラーメッセージ 許可が完了していることを確認してから、サーバー情報を照合
Connectivity Testに失敗する Test Method、ネットワーク環境、サーバーの状態 ほかの条件を変えずに、実際のアクセスとあわせて再テスト
Proxyでは使えるが、Configでは想定と異なる 使用中のファイル、Ruleの順序、適用されたポリシー 対象のルールより前に別のルールが一致していないか確認
一部のリクエストだけ失敗する 失敗した宛先、プロトコル要件、接続記録 リクエストごとに原因を調べ、すべての設定をリセットしない

既存サービスの状態をさらに確認する必要がある場合は、症状、発生条件、すでに確認した内容を整理して、サービスの提供元にお問い合わせください。問い合わせには、使用中のプロトコル、Global Routing、テスト方法、エラーメッセージを記載できます。サブスクリプションURL全体、パスワードなどの認証情報は含めないでください。Diagnosticsの出力やスクリーンショットを共有する前にも機密情報を確認し、必要なエラー情報だけを残してください。

基本的な確認を終え、ルールの適用や設定項目に問題がある場合は、ルールと設定項目のリファレンスで引き続き確認してください。用語がわからないだけであれば、用語一覧で必要な知識を確認できます。クイックスタートの完了は、変更した項目の数ではなく、何の情報を追加したか、どのモードを選んだか、接続が確立したか、実際のリクエストが想定どおり処理されたかを説明できることです。