Shadowrocketの使い方
手元の情報を読み込み、接続モードを選び、実際のリクエストで確認します。
iPhoneとiPadを対象に、5つの手順で初回設定を行います。まず既存のサーバーで接続を確認してから、ルールや自動接続を調整すると、問題発生時に原因を特定しやすくなります。
- Home
- Add Server
- Config
- Settings
サーバーの追加とサブスクリプションの読み込み
完了の目安:HomeのSERVERグループに選択可能なサーバー項目が表示されている。
Shadowrocketを開いたら、まずHomeに進みます。手元の情報がサーバー一覧を定期的に更新するURLならサブスクリプションとして扱い、プロトコル、アドレス、ポート、認証情報の組み合わせなら手動で追加します。どちらも、接続先や使用するプロトコル、認証方法をアプリに登録するための情報です。同じ内容を重複して読み込む必要はありません。
サブスクリプションURL:Subscribeを選択
HomeからAdd Serverをタップして追加画面を開き、TypeでSubscribeを選択して、完全なサブスクリプションURLを対応するURL欄に入力します。識別しやすいメモを付けて保存し、Homeに戻って内容が読み込まれるまで待ちます。サブスクリプションURLは機密情報です。コピーするときは先頭、末尾、クエリパラメーターが欠けていないか確認し、メッセージアプリに記載された説明や改行を一緒に入力しないでください。
読み込み後、SERVERグループにサーバー項目が表示されていることを確認し、使う項目をタップします。サブスクリプション名は一覧を整理するためのもので、含まれるサーバーが選択済みであることを示すものではありません。サービス提供元が内容を更新した場合は、同じURLを何度も追加せず、既存のサブスクリプションを更新してください。更新に失敗した場合は、現在使える項目を残し、原因を確認してから対処します。
手動入力:Typeに応じて項目を確認
単一のサーバー情報がある場合は、Add Serverで正しいTypeを選び、Host、Port、およびそのプロトコルで必要な認証情報を入力します。ShadowsocksのPasswordとMethodはサーバー側の設定と一致させてください。他のプロトコルでは表示される項目が異なることがあるため、手元の情報と一つずつ照合します。Hostには通常、ドメイン名またはIPアドレスを入力します。ウェブページのURL全体をサーバーアドレスとして入力しないでください。
保存前に、ポート番号が完全に入力されているか、パスワードの前後に余分なスペースがないか、プロトコルが正しいかを確認します。任意項目が表示されても、すべてのサーバーで入力が必要とは限りません。TLSや通信方式などのパラメーターを名称だけで推測しないでください。不足している情報はサービス提供元に確認し、選択肢を順番に試すことで確認の代わりにしないようにします。
QRコードと設定ファイルを区別する
QRコードがある場合は、Scan QR Codeで接続情報を読み込み、解析されたTypeとHostを確認できます。Import from Cloud JSONは対応する形式の情報を読み込む機能で、あらゆるウェブページやサブスクリプションに使える汎用の入口ではありません。読み込み前に情報の種類を確認し、読み込み後も作成された項目をチェックしてください。
サーバーのサブスクリプションとConfig内の設定ファイルは用途が異なります。前者は主に接続先の項目を管理し、後者はルールなどの設定を管理します。ConfigやSubscribeという表示を見たら、扱っている情報に照らして対象を判断してください。ボタン名だけを見て入口を取り違えないようにします。まずサーバー情報を読み込み、次にGlobal Routingを選択します。用語の意味は用語集をご覧ください。
Global Routingのモードを選択
完了の目安:リクエストがルールに従って処理されるのか、プロキシ経由なのか、直接接続なのかを説明できる。
サーバー項目を保存したらHomeに戻り、Global Routingをタップして現在のモードを確認します。ここで切り替えるのはリクエストの処理方法であり、サーバーのプロトコルではありません。モードはConfig、Proxy、Directの3種類です。操作前に現在の選択を把握しておくと、トラブル対処時に結果の違いを説明しやすくなります。
Config:設定ファイルに基づいて振り分け
Configを選ぶと、現在有効な設定ファイルに基づいてリクエストが処理されます。Configを開き、使用中のファイルを確認して、Ruleと各ポリシーが想定どおりかチェックしてください。ファイルが一覧に表示されていても、有効になっているとは限りません。選択中または使用中の状態を確認します。初めて使う場合は、内容と用途を把握している設定を選び、編集前にコピーを保存してください。
ルールを使うと、特定のドメインをPROXYに、ローカルネットワークの範囲をDIRECTに振り分け、最後にFINALでそれ以外のリクエストの処理先を指定できます。以下は照合順序を説明するためのRuleの例で、サーバー情報ではなく、設定ファイル全体を置き換えるものでもありません。該当するリクエストがアプリを経由した場合にのみ、ルールによる照合が行われます。
[Rule]
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.168.0.0/16,DIRECT
FINAL,PROXY
この例では、example.comとそのサブドメインをPROXYに、指定したプライベートネットワークをDIRECTに振り分け、それ以外のリクエストをFINALに送ります。ルールは通常、上から順に照合されるため、条件の広いルールより具体的な条件を先に配置します。まずは既存のルールを維持して接続を確認し、初回からGeneral、Hosts、URL Rewriteを同時に変更する必要はありません。
ProxyとDirect:違いを確認するモード
Proxyでは、アプリが処理するリクエストをプロキシモードで扱います。サーバー情報に誤りがない場合に、設定による振り分けの影響を一時的に切り分けるのに役立ちます。ただし、すべてのサービスでその出口からのアクセスが許可されるとは限りません。Directではリクエストを直接接続します。プロキシサーバーが使えるかを確認する目的で使用しないでください。画面上部の接続スイッチがオンでも、Directを選ぶとProxyとは異なる接続先からアクセスする場合があります。
日常的にルールで振り分ける場合は、基本の接続確認後にConfigへ戻し、使用中のファイルをもう一度確認します。3つのモードは接続の「強さ」を示す段階ではなく、サービス提供元のアカウント権限も変わりません。ルールの種類、FINALの順序、設定セクションの詳細は設定項目リファレンスをご覧ください。このページでは初回利用に必要な選択を説明します。
スイッチをオンにしてVPNを許可
完了の目安:システムの許可が完了し、アプリの接続状態がオンのままになっている。
Homeに戻り、SERVERで使用するサーバーが選択されていることを確認してから、Global Routingが前の手順で選んだモードになっているか確認します。モードを切り替えながらスイッチを何度も操作しないでください。サーバーとモードを固定すれば、接続結果がどの設定に対応するか判断できます。
Homeの画面上部にある接続スイッチをタップします。未接続の場合はNot Connectedと表示されます。初回接続時、システムからShadowrocketにVPN構成の追加を許可するか確認されます。ダイアログに表示されたアプリ名と説明を読み、自分で開始した操作であることを確認してから許可し、デバイスの案内に従ってパスコードまたは生体認証を完了してください。
VPN構成の許可は、アプリが対象のネットワーク通信を処理できるようシステムに認めてもらうものです。接続サービスの購入ではなく、サーバーの認証が完了したことを示すものでもありません。許可したらShadowrocketに戻り、画面上部の状態が変わったか、スイッチがオンのままか確認します。以前にダイアログをキャンセルした場合は、改めて接続を開始し、システムの案内に従ってください。
スイッチをオンにしてもすぐオフに戻る場合は、まず許可が完了しているか、接続を制御する別のVPN構成がシステムにないか確認します。競合する接続を一時停止してから再試行してください。システム設定をすべて消去しないでください。職場や学校の管理対象デバイスでは、管理ポリシーによる制限がある場合があります。デバイスで許可されている方法に従ってください。
接続状態がオンのままでも、端末上で接続処理が確立したことを示すだけで、すべてのウェブサイトにアクセスできるとは限りません。次の手順で接続を確認し、すぐにOn Demandを有効にするのは避けてください。手動接続、切断、再接続が想定どおりに行えることを確認してから、必要に応じて自動接続を設定します。
接続とルールの適用を確認
完了の目安:テスト結果、実際のアクセス、リクエストの処理先を照らし合わせて説明できる。
接続をオンにしたら、まずHomeでConnectivity Testを実行し、テスト完了後に選択した項目の結果を確認します。テストに成功すれば、そのテスト条件で到達できることは分かりますが、アカウント権限、すべての接続先、すべてのルールが正常であることの証明にはなりません。タイムアウトした場合も、テスト方法とネットワーク環境を踏まえて判断してください。一度の結果だけで設定を削除しないでください。
続いて、確認したいアプリを開き、新しいリクエストを送信します。たとえば、正常に表示されることが分かっているウェブページを再読み込みします。同じ接続先、同じネットワークで前後を比較し、ページのキャッシュを接続成功と取り違えないようにしてください。接続先との通信がすでに確立している場合は、モードを切り替えた後に対象アプリを開き直して、新しいリクエストを現在の設定で処理させます。
ルールを確認するには、Dataで利用可能な接続記録を開き、ドメイン、接続先アドレス、ポリシーの情報を照らし合わせてリクエストの処理先を判断します。通信量の合計が増えたかだけでなく、リクエストがアプリを経由したか、最終的にPROXY、DIRECT、REJECTのどれで処理されたかを確認してください。記録に表示される項目は現在の画面に従います。リクエストが見当たらない場合は、キャッシュ、既存の接続、記録設定も考慮してください。
ProxyでアクセスできるのにConfigではできない場合は、現在の設定ファイル、ルールの照合順序、適用されるポリシーを確認します。両方のモードで失敗する場合は、サーバー情報とサービスの状態を確認してください。特定の接続先だけで失敗する場合は、アクセス可能と分かっている別の接続先と比較し、単一サイトの応答だけで接続全体が失敗したと判断しないでください。
確認後は、実際に使うConfigまたは別の確認済みモードに戻し、対象へのリクエストをもう一度送信します。最後に手動で切断し、再接続して同じ手順を再現できるか確認します。これで情報の追加、モード選択、接続確認までの一連の流れが完了です。個別の問題が残る場合は、次の節で症状ごとに対処してください。
Settingsとよくある問題
最初からすべての操作をやり直さず、症状に応じて該当箇所を確認します。
読み込み後に項目がない:情報の読み込みを確認
サブスクリプションの項目に戻り、URLが完全か、サービス提供元のアカウントページではなくサブスクリプションの読み込み先をコピーしたか確認します。利用中のサービスが有効か、現在のネットワークからURLを読み込めるかも確認してください。URLはサービス提供元から入手します。サーバー側の解析やアカウント権限に関わる場合は、元の情報を照合してください。認証情報を含むURLを公開の掲示板に貼り付けないでください。
手動で追加した項目がSERVERに表示されない場合は、Add Serverに戻り、保存されているか、必須項目の確認に通っているかをチェックします。サブスクリプションの読み込み失敗とサーバー接続の失敗は別の段階です。前者は項目を取得できていない状態、後者は項目があるのにテストや実際のリクエストを完了できない状態で、対処する順序も異なります。
テストがタイムアウトする:テスト方法と実際のアクセスを切り分ける
Settingsを開き、Test Methodで現在のテスト方法を確認します。方法によって測定する段階が異なるため、結果をそのまま比較しないでください。まずは方法を一つに固定し、同じ項目を繰り返しテストします。実際のアクセスが正常なのに特定のテストだけ失敗し続ける場合は、テスト対象とその方法に適したネットワーク条件を確認してください。
実際のリクエストも失敗する場合は、Type、Host、Port、Password、またはそのプロトコルに必要な認証情報に加え、サービス提供元が指定するTLSや通信パラメーターを確認します。Wi-Fiとモバイル通信を切り替えて比較すると、現在のネットワークが関係しているか判断しやすくなります。切り替えの前後でサーバーとGlobal Routingは変えないでください。
一部のアプリだけ失敗する:モードと適用ルールを確認
まずDirectを誤って選んでいないか確認し、次にConfigで現在使用中のファイルを確認します。特定のドメインがREJECTされている、範囲の広いルールが先に適用されている、FINALの処理先が想定と異なるなどの原因で、一部だけ失敗することがあります。アクセスに問題が起きてもDNSやプロトコルの設定をすべて変更せず、接続記録でリクエストが実際にどこへ処理されたか確認してください。
設定を変更する場合は、まずコピーを保存し、問題に関連するルールを一つだけ変更して、リクエストを再送信して確認します。ドメインの名前解決、IPルール、プロトコルの詳細は設定項目リファレンスをご覧ください。具体的な症状に応じた対処方法はよくある質問をご確認ください。
自動接続の問題:最後にOn Demandを確認
SettingsのOn Demandは、条件に応じて接続を開始する機能であり、サーバーが使えない問題を解決するスイッチではありません。基本の接続が確認できていない場合は、まず手動スイッチでテストします。切断後にシステムが自動で再接続する場合は、既存のOn Demand設定とデバイスのVPN管理状態を確認してから、変更するか判断してください。変更後は、アプリを開いたとき、ネットワークを切り替えたとき、手動で切断したときの動作をそれぞれ確認します。
さらに調べる場合はDiagnosticsを確認してください。診断情報を共有する前に、サーバーアドレス、認証情報、サブスクリプションURL、アクセス記録が含まれていないか確認し、機密情報を削除します。問題発生時のモード、ネットワークの種類、エラーの状況を記録しておくと、「接続できない」という一言だけの場合より原因を絞り込みやすくなります。
初回設定の完了チェック
- SERVERに項目があり、選択中のサーバーが手元の情報と一致している。
- Config、Proxy、Directの違いを把握し、現在の選択を確認している。
- システムのVPN許可が完了し、接続スイッチがオンのままになっている。
- Connectivity Testを実行し、実際のリクエストで接続とポリシーを確認した。
- 変更前に設定のコピーを保存し、サブスクリプションURLと認証情報を自分だけで使用している。
以降は確認済みの設定を維持し、ルールや自動接続の条件を一つずつ追加してください。画面上の用語が分からない場合は用語集をご覧ください。一つの項目を理解するために、設定全体を作り直す必要はありません。