01 · Add Server / Subscribe
Shadowrocketを開き、Homeに移動します。ここでは、登録済みサーバーの確認、使用するサーバーの選択、接続の操作を行います。まず、手元の情報を確認してください。サーバー一覧を更新するサブスクリプションURLはSubscribeから追加します。アドレス、ポート、認証情報がそろったサーバー1台分の情報は、対応するプロトコルを選んで入力します。どちらか一方でよく、同じ情報を重複して追加する必要はありません。
サブスクリプションURLがある場合:Subscribeを使用
利用中のサービス提供元からサブスクリプションURLをすべてコピーし、Homeに戻って「+」をタップし、Add Serverを開きます。TypeでSubscribeを選択し、URLにリンクを貼り付けて、見分けやすいメモを入力します。保存前にURLの先頭と末尾が欠けていないか確認してください。メッセージに含まれる説明文、改行、空白を一緒に貼り付けないよう注意します。サブスクリプションURLには認証情報が含まれる場合があるため、信頼できる自分の端末にのみ保存し、公開しないでください。
保存後にHomeへ戻り、サブスクリプションの取得が完了するまで待ちます。一覧が展開されない、またはサーバーが表示されない場合は、そのサブスクリプション項目にある更新操作を実行し、結果を確認してください。正常に更新されると、サブスクリプションのグループ内にサーバー項目が表示されます。サブスクリプションの更新は一覧を同期する操作であり、接続の確立を意味するものではありません。一覧にあるすべてのサーバーが利用できるとも限りません。まず1台選び、後でConnectivity Testを実行します。
保存できても項目が表示されない場合は、すぐに同じサブスクリプションを作り直さないでください。まず、コピーしたURLがアカウント管理ページではなく、クライアントで読み込むためのURLか確認します。次に、現在のネットワークからURLを取得できるか確認してください。リンクの期限切れ、アクセス認証の変更、サブスクリプション内容の形式不一致などにより、更新に失敗することがあります。元の項目は残し、記事末尾の手順で確認してから、サービス提供元にURLの状態を問い合わせてください。
サーバー1台分の情報がある場合:プロトコルに合わせて入力
同様にHomeで「+」をタップしてAdd Serverを開き、手元の情報に合わせてTypeを選びます。たとえばShadowsocks、VMess、Trojanを選択し、Address、Portと、そのプロトコルで必要な認証項目を入力します。プロトコルによって必要な項目は異なります。パスワードでUUIDを代用することはできず、サーバー名だけから転送関連の設定を推測することもできません。TLS、転送方式、サーバー名の指定がある場合は、元の情報と一項目ずつ照合してください。不明な項目を安易に空欄にしたり、別の値に置き換えたりしないでください。
保存後にHomeへ戻り、新しい項目を見つけて選択します。サーバー名はメモにすぎず、接続に影響するのはプロトコル、アドレス、ポート、認証パラメーターです。項目が表示されても、端末内への情報の保存が完了したことを示すだけです。次にGlobal Routingを選択してから接続します。この段階で大量のルールを追加したり、Settingsの項目を複数同時に変更したりする必要はありません。
02 · Global Routingの3つのモード
サーバーを選択したら、HomeでGlobal Routingを開きます。ここではリクエスト全体の処理方法を選びます。「現在どのサーバーを選択しているか」とは別の設定です。サーバーを正しく選んでいても、ルーティングモードが意図と異なると、接続済みでも対象へのアクセスがそのサーバーを経由しない場合があります。まず3つの選択肢を理解し、確認したい内容に合うものを選んでください。
| モード | 主な機能 | 確認するポイント |
|---|---|---|
| Config(設定) | 現在の設定ファイル内のルールに従ってポリシーを選択します。 | 設定が有効か、対象がどのルールに一致しているか。 |
| Proxy(プロキシ) | プロキシ可能な接続を選択中のサーバー経由にします。初回の確認を簡単に行えます。 | 選択中のサーバーが利用可能か、リクエストが実際に完了するか。 |
| Direct(直接接続) | リクエストを直接接続し、選択中のサーバーをプロキシとして使用しません。 | 意図してDirectを選択しているか、現在のネットワークから対象に直接アクセスできるか。 |
初めて使用する場合や、まだ設定ファイルを用意していない場合は、まずProxyを選び、次の手順で接続とアクセスを確認できます。この手順では、「サーバー自体に接続できるか」と「ルールが正しいか」を分けて確認します。同じモードを常に使うことを勧めるものではありません。また、Proxyを選択しても、すべてのアプリやシステム通信が必ずプロキシを経由するとは限りません。実際のリクエストを確認してください。
自分の設定ファイルがある場合は、Configを開き、使用するファイルが現在の設定として選ばれていることを確認してから、Homeに戻りConfigを選択します。ファイルをConfigの一覧に読み込んだだけでは、有効になったことにはなりません。Configモードを選んだだけでも、ファイル内のすべてのルールが目的に合っているとは限りません。サブスクリプションの追加は通常サーバー一覧の更新であり、ルール設定ファイル全体の読み込みとは別の操作です。
Directは、現在のネットワークから同じ対象に直接アクセスできるか確認するときに使います。「接続に失敗したら自動で修復する」ための選択肢ではなく、サーバー認証の代わりにもなりません。PROXY、DIRECT、REJECTとルールの適用順について詳しく知りたい場合は、このガイドの後にルールと設定の総合ガイドをご覧ください。初回接続では、変更する条件をできるだけ少なくしましょう。
03 · Homeで接続し、VPNを許可
Homeに戻り、選択中のサーバーとGlobal Routingをもう一度確認します。準備ができたら接続スイッチをオンにします。初回接続時に、ShadowrocketによるVPN構成の追加を許可するようシステムから求められる場合があります。表示されたアプリ名を確認し、自分が開始した操作であることを確かめてから許可し、端末の案内に従ってパスコードまたは生体認証を完了してください。この画面はシステムのネットワーク拡張に必要な構成を作成するためのもので、サブスクリプションを追加する画面ではありません。
システム認証が完了したらShadowrocketに戻り、スイッチと接続状態を確認します。オフのままの場合は、もう一度オンにしてください。システムの許可とリモートサーバーへの接続成功は別のものです。前者はアプリが端末内の接続経路を作るための許可であり、後者はサーバーのアドレス、認証パラメーター、ネットワーク環境にも左右されます。システムにVPNの状態が表示されても、端末内の接続経路の状態を示すだけで、リモートへのリクエストが成功した証明にはなりません。
先ほどの確認画面でキャンセルした場合は、接続スイッチをもう一度オンにすると、通常は再度許可を求められます。端末上で別のVPN接続が有効な場合は、同時に使う必要のない接続を切断してからShadowrocketをテストしてください。接続の切り替わりをサーバーの障害と誤認しないためです。組織が管理する端末では、VPN構成が制限されている場合があります。管理上の制限が表示された場合は端末の管理要件を確認し、システム設定を何度も削除しないでください。
初回確認中はOn Demandをオフにしておきます。手動スイッチを使うと各手順の結果を判断しやすくなります。On Demandは条件に応じて接続を開始する機能であり、間違ったパスワードを補正したり、サブスクリプションURLを修正したり、ルール選択の代わりになったりするものではありません。手動接続が安定してから、必要に応じて設定してください。接続状態を保ったまま次の手順に進み、同じ対象へのアクセスで動作を確認します。
04 · Connectivity Testとアクセス確認
まずHomeに戻り、選択中のサーバーでConnectivity Testを実行します。結果は選択したテスト方法によって異なります。応答時間が表示された場合は、その時点でテストに応答があったことを示します。タイムアウトは、制限時間内にテストが完了しなかったことを示します。このテストはすべてのWebサイトへのアクセス品質を評価するものではなく、表示された数値を通常のページ読み込み速度と見なすこともできません。1回の結果だけでサーバーを何度も切り替えないでください。
テスト結果と実際のリクエストを合わせて確認
サーバーとGlobal Routingはそのままにしてブラウザーを開き、使い慣れた、現在アクセス可能なページに移動します。ページが読み込まれるか確認し、ページ内の別のリンクも開いて、以前のキャッシュ表示だけではないことを確かめてください。特定のアプリだけに問題がある場合は、まずブラウザーで同種の対象を開いて比較します。個別アプリのログイン、キャッシュ、サービス状態の問題を、接続全体の失敗と取り違えないようにしてください。
Shadowrocketに戻り、Dataの通信量と、画面で利用できる接続ログも参考にします。接続中に通信量が変化すればネットワーク通信が発生したことは分かりますが、通信量の増加だけでは対象がどのルールに一致したかは判断できません。ログを利用できる場合は、テスト時刻と対象ドメインに一致するリクエストを探し、適用されたポリシーを確認してください。ログにはアクセス先などのプライバシー情報が含まれる場合があります。調査用の情報を共有する前に、機密情報を取り除いてください。
Configではルールの適用結果も確認
Configを使用している場合は、PROXYを使う想定の対象と、DIRECTを使う想定の対象をそれぞれ選んでアクセスし、利用可能なリクエストログで結果を確認します。設定内のルールは通常、上から順に照合されます。先にある広範なルールによって、後の具体的なルールが適用されないことがあります。ページが開けても、想定どおりに振り分けられたとは限りません。対象リクエストに適用されたポリシーも確認してください。
比較する場合は、現在のテストリクエストを停止してからGlobal Routingを切り替え、アクセスをやり直します。すでに確立された接続は、接続開始時の処理が継続する場合があります。同じページ、同じネットワーク環境で比較し、一度に変更する条件は一つにしてください。「テストが応答する」「実際にページを開ける」「ポリシーが想定どおり」の3点を確認できてから、自分の設定やOn Demandを段階的に有効にすると、変化の原因を特定しやすくなります。
05 · よくあるトラブルと確認順
問題が起きたら、まずどの手順で止まったか記録してください。サブスクリプションの更新失敗、VPN未確立、Connectivity Testのタイムアウト、特定ページだけ開けないといった状況を、同じ問題として扱わないことが大切です。再現する対象、現在のネットワークの種類、サーバー名、Global Routingの状態を記録します。公開の記録にサブスクリプションURL全体、パスワード、認証情報を含めないでください。以下の順に確認し、項目を一つ確認するごとに再テストします。
サブスクリプションが展開されない:取得状況を確認
端末の現在のネットワークから通常のページにアクセスできることを確認し、Subscribeに保存したURLが完全かどうか調べます。サブスクリプションの更新に、まだ確立されていない接続が必要な場合は、利用可能な接続手段があるか先に確認してください。空の一覧をサーバー選択の問題と決めつけないでください。URLの期限切れ、アカウント状態の変化、サブスクリプション形式に合わない内容については、サービス提供元に確認してください。同じ誤ったURLを何度保存しても、有効な項目は追加されません。
テストがタイムアウトする:設定値とネットワークを確認
サーバーの編集画面を開き、元の情報と照らし合わせてType、Address、Port、認証項目を確認します。次にTLS、転送方式、関連する名称の項目を確認してください。コピー時の前後の空白、ポート番号、見間違えやすい文字にも注意します。名前が似ているからといって、別々の情報にある設定値を組み合わせないでください。時刻による認証が必要な接続では、端末のシステム設定で日付、時刻、タイムゾーンも確認します。
設定値が正しくても失敗する場合は、可能であればWi-Fiとモバイル通信を切り替え、同じサーバー、同じテスト方法で比較します。特定のネットワークだけで失敗する場合は、そのネットワークの接続条件をまず確認します。複数のネットワークで失敗する場合は、サーバーが利用可能か確認してください。テスト方法自体が対象によって制限される場合もあるため、タイムアウト表示だけで判断せず、実際のページへのアクセス結果も確認します。
スイッチがオンのままにならない:システム設定を確認
VPN構成の追加を許可したか、ほかの接続がシステムのVPNを使用していないか確認します。システム設定で「VPN」を検索すると、該当する構成の状態を確認できますが、最初に構成プロファイルを削除しないでください。再度許可が必要な場合は、アプリ内のサーバー情報と設定を残したうえで、システムの案内に従って処理し、Homeに戻って接続します。アプリ内の情報、システムのVPN構成、リモートサーバーは別々のものです。いずれか一つを削除しても、すべての問題がリセットされるわけではありません。
接続済みでも一部にアクセスできない:ルーティングとDNSを確認
まずGlobal RoutingがDirectになっていないか確認してください。Proxyではアクセスでき、Configではできない場合は、現在有効なConfigファイル、ルールの順序、一致したポリシーを優先して確認します。ドメインの名前解決に失敗すると、サーバーのタイムアウトに似た症状が現れることがあります。接続ログを確認し、名前解決の段階で失敗したのか、リモート接続の確立時に失敗したのかを切り分けてください。DNS、ルール、サーバーを同時に変更して、どれが影響したか推測することは避けてください。
一度に変更するのは項目またはモード一つだけにし、保存後に同じリクエストを再実行します。改善しない場合は元の値に戻してから次の項目を確認してください。さらに調べる場合は、よくある質問で購入、権限、サブスクリプションに関する問題を確認するか、ルールと設定の総合ガイドで設定ファイルの構造をご覧ください。これで「情報を追加できていない」「サーバーに接続できない」「端末内で許可されていない」「ルールが想定と異なる」を切り分けられます。アプリを何度も再インストールして試す必要はありません。