Shadowrocket 追加と接続
追加、モード選択、接続、確認、トラブル対応の順に進めます。まず確認可能な接続を確立してから、ルールや自動接続の条件を調整します。
この記事では主にiPhone / iPadでの操作を説明します。画面上の項目名は英語表記のまま記載し、スクリーンショットは操作箇所を見つけるために使用します。実際のレイアウトや利用できる項目は、現在のアプリ画面で確認してください。
01 · Add ServerとSubscribe
手元にある情報の種類に合わせて追加方法を一つ選びます。重複して読み込む必要はありません。
Shadowrocketを開き、画面下部のHomeに移動します。SERVER欄のAdd Serverを選ぶか、画面上の追加ボタンから編集画面を開きます。手元の情報が単一サーバーの各項目、完全なサブスクリプションURL、対応するQRコードのどれに当たるかを確認してください。それぞれ追加方法が異なります。サブスクリプションURLはサーバーのHostではありません。URL全体をHostとPortに分けて入力しないでください。
サーバー情報がある場合:Typeを選んでから各項目を入力
Add Server画面でTypeを開き、手元の情報に合ったプロトコルタイプを選択します。Shadowsocksの場合は、元の情報に従ってHost、Port、Password、Methodを入力します。Hostにはサーバーのドメイン名またはアドレス、Portにはポート番号を入力します。Methodはサーバー側の設定と一致させ、名前が似ているという理由だけで選ばないでください。Typeによって表示される項目は異なるため、スクリーンショットの項目がすべてのプロトコルに当てはまるわけではありません。
入力後は、コピーした内容の前後に空白がないか、ポート番号に全角数字を使っていないか、入力方式の変換でパスワードの記号が置き換わっていないかを確認します。TLS、転送方式などの追加パラメーターがある場合は、元の説明に沿って一つずつ確認してください。基本の4項目だけで設定が完了したとは限りません。入力後、画面の保存または完了ボタンを押してHomeに戻り、SERVERに該当項目が表示されていることを確認します。
サブスクリプションURLがある場合:Subscribeを使う
完全なサブスクリプションURLがある場合は、TypeでSubscribeを選び、URL欄にURL全体を貼り付けて、見分けやすいメモを入力して保存します。URL内のクエリパラメーターにアクセス情報が含まれている場合があるため、むやみに削除したり共有したりしないでください。保存後、内容が読み込まれるまで待ちます。画面に更新操作がある場合は一度実行し、サーバー項目が表示されたことを確認してください。
サブスクリプション項目は複数のサーバーを管理するためのもので、一覧内の各項目が接続確認済みという意味ではありません。Homeで実際のサーバーを一つ選び、今回のテスト対象にします。サーバー名を控え、テスト中に変更しないでください。一覧が空の場合は、URLが有効か、コピーが完全か、現在のネットワークでサブスクリプションを取得できるかを確認し、同じURLを何度も追加しないようにします。
QRコードがある場合:Scan QR Code
Add Server画面でScan QR Codeを選び、システムの案内に従って必要なカメラへのアクセスを許可し、手元の対応QRコード全体をカメラの枠内に収めます。読み取り後、サーバーとサブスクリプションのどちらが読み込まれたかを確認し、Type、Host、URLなどの重要項目を確認してください。QRコードの読み取りは情報を入力する方法であり、その情報が有効かどうかを検証するものではありません。読み取りに失敗した場合は、元のURLまたは各項目を使って入力してください。QRコードの内容を変更して解決しようとしないでください。
画面下部のImport from Cloud JSONも情報を読み込むための入口ですが、任意のサブスクリプションURLの代わりになるものではありません。手元の情報が明確に対応する形式を使用している場合に限り利用してください。いずれかの方法で追加したら、次は複数の詳細設定をすぐ変更するのではなく、Global Routingで通信をどう処理するかを決めます。
02 · Global Routingを選択する
サーバーは接続先を決め、Global Routingは通信の処理方法を決めます。
Homeに戻り、Global Routingを開きます。選択肢は構成(Config)、プロキシ(Proxy)、直接接続(Direct)です。これは3種類のサーバープロトコルでも、接続スイッチの代わりでもありません。モードを選んだ後、実際の経路を確認するには次の接続操作も必要です。
構成(Config)は、現在有効な構成のルールに従って通信を処理します。宛先ごとにPROXY、DIRECT、その他の定義済みポリシーへ振り分けられる場合があります。日常的にルールで通信を振り分ける場合は、構成の内容と入手元を確認してからこのモードを使います。SERVERでサーバーを選んだだけでは、すべてのリクエストがそのサーバーを経由するとは限りません。宛先にDIRECTが適用されている場合、直接接続になるのはルールの結果です。
プロキシ(Proxy)は通常の通信処理で選択したプロキシ経路を使用します。サーバーが利用できるか、ルールによる影響があるかを一時的に確認する場合に適しています。ただし、すべてのアプリのリクエストが同じ経路を通るとは限らないため、実際の宛先や接続記録も確認してください。直接接続(Direct)は宛先へ直接接続し、基本ネットワークとの比較に使えます。Directで宛先を開けても、プロキシサーバーが利用できる証明にはなりません。
Configを使う前に現在の構成を確認する
画面下部のConfigを開き、使用する構成を確認してから内容を表示します。公式スクリーンショットは構成ファイルの編集画面で、General、Rule、Hosts、URL Rewrite、HTTPS Decryptionなどの項目があります。Global Routingの選択メニューではありません。編集画面とモード選択の入口を区別し、構成の編集をモードの切り替えと取り違えないようにしてください。
初めて使う場合は、まずRuleを確認します。ドメインルール、IP範囲ルール、最終ルールがそれぞれどのポリシーを指定しているか、参照先のポリシーが存在するかを確認してください。Add Ruleでルールを追加する前に、元の構成のコピーを保存します。ルールは通常、上から順に照合され、先に一致したルールが後続の処理に影響します。たとえばDOMAIN-SUFFIXはドメインのサフィックス照合に使い、FINALはそれ以前のルールに一致しなかった通信の最終処理を担います。
初回接続を確立するために、URL RewriteやHTTPS Decryptionを変更する必要はありません。変更範囲を小さくすると、サーバー、ルール、ネットワークのどこに問題があるか判断しやすくなります。確認済みのルール構成がない場合は、Proxyで一時的に接続を確認してから、Configで項目を一つずつ確認できます。ルールやプロトコル項目の詳しい説明はプロトコルの詳細をご覧ください。具体的な使い方についてはよくある質問をご確認ください。
03 · Homeでの接続とシステム許可
サーバーとモードを確認してから、画面上部のスイッチをオンにします。
Homeに戻り、SERVERで先ほど入力または読み込んだ実際のサーバーが選択されていることを確認します。次に、今回のテスト目的に合ったモードがGlobal Routingに表示されているか確認してください。Configを使う場合は、先ほど確認した構成が有効になっていることも確認します。3項目の組み合わせを確認したら、Not Connectedの表示付近にある画面上部の接続スイッチをオンにします。
初回接続時、システムからVPN構成の追加を許可するよう求められる場合があります。この案内はShadowrocketがシステムのネットワーク拡張を通じて該当する通信を処理するためのもので、この手順ではネットワーク権限のみを付与します。アプリ名と権限の説明を確認し、希望に応じて許可して、システムの指示に従ってデバイス認証を完了します。許可をキャンセルした場合、接続は完了しません。サーバーを何度も読み込み直すのではなく、アプリに戻って接続を再度開始してください。
許可の手続きが終わったらHomeに戻り、接続スイッチと状態表示が更新されたか確認します。Not Connectedのままの場合は、処理中のリクエストが終わるまで待ち、システムの確認が残っていないか確認してください。ステータスバーのアイコンだけで判断しないでください。表示方法はデバイスや現在の画面によって異なる場合があるため、アプリ内の状態と実際のリクエストの両方を確認します。
接続状態だけでは宛先にアクセスできるとは限らない
スイッチがオンになっていることは、システムの接続処理が確立または動作中であることを示すだけで、選択したサーバー、DNS、接続先のすべてが正常である証明にはなりません。次にConnectivity Testを実行し、実際に利用するページも開いてください。デバイスのネットワーク接続を管理する別の構成がある場合は、どの設定が現在有効かを確認し、テスト中に別の接続状態が影響しないようにします。
初回の動作確認中はOn Demandの条件を変更せず、ネットワークとサーバーを同時に切り替えないでください。テストを終了するにはHomeに戻って接続スイッチをオフにし、状態が戻ったことを確認します。接続情報は保持されるため、スイッチをオフにしてもサブスクリプションやサーバーは削除されません。
04 · Connectivity Testと実際の動作確認
テスト結果、接続先へのアクセス、ルールの記録を照らし合わせます。
HomeでConnectivity Testを開くか実行し、結果が表示されるまで待ちます。このテストで確認できるのは現在の条件下での接続状況であり、すべての接続先サービスへの接続を保証するものではありません。結果はテスト方法、テスト対象、現在のネットワーク、サーバーの状態に左右されます。一度のタイムアウトで全リクエストが失敗したとは限らず、一度成功してもすべてのルールが正しいとは限りません。
続いて実際に使う接続先のページを開き、もう一度リクエストを送って、想定した内容が読み込まれるか確認します。現在の経路が有効だと誤認しないよう、できるだけ新しくページを開いてください。接続先がもともと直接アクセスできる場合、ページが開いただけではプロキシ経由か直接接続かを区別できません。Global Routingと記録も合わせて確認します。
Dataでポリシーと接続情報を確認する
アプリに戻ってDataを開き、現在の画面で確認できる接続またはリクエストの記録を表示します。接続先、適用ルール、ポリシーが表示される場合は、想定どおりか確認してください。ConfigでDIRECTに一致したリクエストを「プロキシが接続されていない」と誤解しないようにします。PROXYに一致した後で失敗したリクエストは、サーバーと接続先をさらに確認します。記録の名称や詳細度は機能や画面によって異なるため、実際の表示に従ってください。
問題の箇所を特定できない場合は、元のモードを記録してからProxyに一時的に切り替え、同じ接続先を再試行します。その後Directに切り替えて基本ネットワークと比較します。比較に意味を持たせるため、サーバー、ネットワーク、接続先は同じままにして、モードだけを一度に一つ変更してください。Proxyでは接続できてConfigではできない場合は、まず構成ルールと参照ポリシーを確認します。どちらも失敗する場合は、サーバーの各項目と基本ネットワークを確認してください。
テスト後は、普段使う予定のモードに戻します。Configに戻す場合は、有効な構成をあらためて確認してください。一時的なトラブルシューティング用のモードを理由を忘れたまま使い続けないようにします。今回使用したサーバー名、モード、ネットワークの種類、発生した問題を記録しておくと便利です。サブスクリプションURLやパスワードなどの認証情報を保存したり公開したりする必要はありません。この確認を終えてから、On Demandなどの自動接続機能を設定するか検討します。
05 · Settingsとよくある失敗の原因
ネットワーク、接続情報、許可、ルールの順に確認し、一度に変更するのは一項目だけにします。
サブスクリプションに項目が表示されない:取得状況を確認する
Subscribeを保存してもSERVERにサーバーが表示されない場合は、接続を一旦停止し、デバイスのネットワークが正常に利用できることを確認します。次に、サブスクリプションURLが完全か、説明ページのURLを誤ってコピーしていないか、リンクが無効になっていないか、現在の読み込み方法に対応した内容かを確認します。情報の提供元に現在の状態を確認してください。当サイトでは代替となるサブスクリプションを提供していません。元の項目を残し、結果を確認できる更新を一度行い、同じサブスクリプションを何度も追加しないようにします。
項目はあるが接続できない:元の入力情報を確認する
Type、Host、Port、Passwordと、プロトコルに応じた追加項目を順に確認します。Shadowsocksでは特にMethodが一致しているか確認してください。ほかのプロトコルでも、追加の識別情報、転送方式、TLS設定が必要な場合があります。テスト結果を表示させるためだけにパラメーターを適当に変更しないでください。サブスクリプションを更新したばかりの場合は、選択中のサーバーが内容の変更によって無効化または削除されていないかも確認します。
テストがタイムアウトする:Test Methodと実際のアクセスを確認する
Settingsを開き、Test Methodで現在のテスト方法を確認して、実際の接続先へのアクセス結果と比べます。特定のテスト方法が成功しなくても、すべてのアプリのリクエストが失敗しているとは限りません。反対に、テスト結果が表示されてもページを読み込めない場合は、接続先、DNS、ルールが関係している可能性があります。まず「どのテストで、どの接続先が失敗したか」を特定してから確認範囲を絞り、DNS、TCP、UDPを同時に変更しないでください。
接続状態が頻繁に変わる:On Demandを確認する
On Demandは条件に応じて接続を開始する機能で、Global Routingの通信振り分けとは異なります。手動でオフにした後に接続が再開する場合や、ネットワークの切り替え後に状態が変わる場合は、On Demandの条件が設定されていないか確認してください。繰り返し可能な手動テストを行うには、元の設定を記録したうえで関連する自動接続条件を一時的にオフにし、接続確認後、実際の用途に合わせて戻します。
一部の接続先だけ失敗する:ルールと診断情報を確認する
ほとんどの接続先は正常で特定の接続先だけ失敗する場合は、まずConfigで該当するRuleと最終ポリシーを確認し、Dataで関連する記録を確認します。SettingsのDiagnosticsは追加調査に利用できますが、エラーが発生した時刻、選択したサーバー、モードと照らし合わせてはじめて意味のある情報になります。スクリーンショットや記録を共有する前に、サブスクリプションURL、パスワード、認証情報、不要な個人ネットワーク情報を削除してください。
モードを切り替えると差が再現する場合は、その比較結果を記録し、すぐにアプリを再インストールする必要はありません。再インストールすると情報の復元作業が増えるうえ、入力ミスや無効なサブスクリプションが自動的に修正されるわけではありません。購入、サブスクリプション、設定に関する詳しい説明はよくある質問をご覧ください。プロトコルのパラメーターや選び方については、Shadowsocksとプロトコルの解説をご覧ください。