この記事では、ShadowrocketをインストールしたばかりのiPhone・iPadユーザー向けに、初回接続までの流れを説明します。システムのVPN許可、既存設定の読み込み、Home画面の状態確認、基本的なテストを順に解説。読み終えると、「構成の追加を許可した状態」「トンネルが起動した状態」「目的のWebサイトにアクセスできる状態」の違いと、問題発生時に確認する項目がわかります。
初回接続の前に:アプリ・接続情報・構成ファイルの違い
ShadowrocketはApp Storeで販売されている買い切りの商用アプリです。アプリの購入に接続サービスは含まれません。以下の操作は、ご自身で契約しているサービスのサブスクリプション、または有効な接続情報をお持ちであることを前提としています。当サイトでは、ノード、サブスクリプション、接続サービスの提供・販売・推奨は行っていません。
アプリを入手する際は、デベロッパ名がShadow Launch Technology Limited、アプリIDが932747118であることを確認してください。この記事は主にiPhoneとiPadを対象としています。Mac、Apple TV、Apple Visionの互換性およびシステム要件は、App Storeのページに記載された内容をご確認ください。入手先はApp Storeのみです。確認手順は正規アプリの確認方法をご覧ください。
Homeでは接続状態の確認、サーバー項目の選択、テストの実行を行います。Configでは構成ファイルを管理します。ルールによる振り分けを確認するには、現在使用中の構成を把握する必要があります。Settingsではアプリの設定を変更します。たとえばSettings → On Demandです。Homeのサーバー項目とConfigのルール構成は、別のものとして扱ってください。
VPN構成の許可:追加を許可するのはシステムの接続構成
VPN構成の追加を許可するシステムの確認は、通常、初めて接続を開始しようとしたときに表示されます。アプリを開いただけですぐ表示されるとは限りません。「許可」をタップすると、デバイスのパスコード、またはデバイスで利用可能な認証方法による確認を求められる場合があります。この操作により、ネットワーク通信を処理するシステムVPN構成をShadowrocketが作成できるようになります。
許可が完了したことは、システムが構成の作成を認めたことを示すだけです。接続先の情報が正しいことや、Webサイトにアクセスできることを意味するものではありません。実際の通信の処理方法は、Global Routing、選択中のサーバー、現在のルール、関連するネットワーク設定によって決まります。
-
接続情報を準備する
ご自身のサブスクリプションURL、または接続に必要な情報が揃っていることを確認します。Home → SERVERが空の場合は、接続を開始する前に情報を読み込んでください。
-
既存のサブスクリプションを読み込む
Home → 右上の「+」→ Type → Subscribeの順に進み、ご自身のサブスクリプションURLを入力して保存します。読み込みが完了したら、SERVERに想定した項目が表示されているか確認してください。
-
選択中の項目を確認する
Home → SERVERで使用する項目を選択します。名前と接続情報の入手元を確認してください。リストに項目があるだけで、設定がすべて揃っているとは判断できません。
-
接続を開始して許可する
Home上部の接続スイッチを操作します。システムからVPN構成の追加を求められたら許可し、必要な認証を完了してください。
-
戻って状態を確認する
Homeに戻り、Not ConnectedがConnectedに切り替わったか確認します。その後、Connectivity Testと実際のWebサイトへのアクセスをそれぞれ試し、結果を記録してください。
以前に許可を取り消した場合は、Homeに戻って接続を再度開始し、システムの案内に従ってください。デバイスが学校や組織の管理下にある場合、VPN構成がデバイスポリシーによって制限されていることがあります。サーバー情報を何度も変更するのではなく、まずデバイス管理者に確認してください。
Homeの接続状態とSERVER:接続の開始と接続先の選択
Not Connectedは、アプリのトンネルが接続されていない状態を示します。Connectedに切り替わった後も、目的のWebサイトにアクセスできるかは別途確認してください。システムVPNの状態確認とWebサイトのHTTP応答確認は別のテストであり、片方で他方を代用することはできません。
SERVERには、読み込み済みまたは手動で追加したサーバー項目が表示されます。項目を選択すると、プロキシ転送が必要な通信の接続先が決まります。ただし、すべての通信がその接続先を経由するとは限りません。実際にその接続先が使われるかどうかは、Global Routingと構成ルールにも左右されます。
確認の手順:接続状態とサーバー情報を分けて確認する
Home上部の接続状態
- Not Connected:まずスイッチとシステムの許可を確認します。
- Connected:次にルーティングの動作モードと実際のアクセスを確認します。
- 接続直後に切断される:表示されたメッセージを記録し、ほかのVPN接続が干渉していないか確認します。
Home → SERVER
- リストが空:サブスクリプションが正常に読み込まれたか確認します。
- 項目がある:実際に選択されている項目を確認します。
- パラメーターに問題がある:元の情報を見ながら、アドレス、ポート、プロトコル、認証項目を確認します。
まずトンネルが起動しているかを確認し、次に選択した接続先とルールが想定どおりかを確認します。一度に変更する項目は1つにしてください。
項目を手動で追加する場合、Typeは既存の接続情報に記載されたプロトコルと一致させてください。Shadowsocks、VMess、VLESS、Trojan、Hysteria2、WireGuardでは、認証情報や通信方式の項目を相互に流用できません。たとえば接続情報にポート443と記載されている場合は、その値をそのまま入力します。ただし、443がすべてのプロトコルやサービスで共通のポートとは限らず、ポート番号だけでプロトコルを判断することもできません。
Global Routing:まず通信の処理方法を確認する
Home → Global Routingを開き、現在の選択を確認してからテスト結果を判断します。以下の比較は、Shadowrocket内での動作モードの違いを説明するものです。Configを使う場合は、内容を確認済みの構成があることが前提です。どの構成でもそのまま使えるという意味ではありません。
Config
推奨現在の構成に設定されたルールに基づいて、通信の振り分け先を決定します。ルールではDIRECT、PROXY、REJECT、または構成内で定義されたポリシーを指定できます。特定の種類のWebサイトが必ず直接接続されるという意味ではありません。
適しています:確認済みのルール構成があり、接続先に応じて通信を振り分けたい場合。
Proxy
基本的にすべての通信をプロキシ経由で転送し、Configの個別ルールに基づく振り分けは行いません。ルール選択に問題があるかを切り分ける際には役立ちますが、接続情報の誤りは修正できません。
適しています:接続情報が有効だと確認できており、振り分けの問題を一時的に比較・確認したい場合。
Direct
基本的に直接接続します。SERVERの項目を選択していても、Directでは通常の通信がその項目経由で転送されるわけではありません。
適しています:現在のネットワークで直接アクセスした場合の状態を比較したい場合。
Scene
設定済みのシーン条件に応じて動作を選択します。使用前にシーンの内容を確認してください。Config、Proxy、Directのいずれかと常に同じ動作をする別名ではありません。
適しています:シーンを設定済みで、現在どの条件に該当しているか確認できる場合。
Configモードでは、通常、ルールは記載順に照合されます。以下はルール構文の例であり、完全な構成ファイルではありません。example.comは例示用のドメインです。FINALは、それ以前のルールに一致しなかった通信を最後に処理するため、ほかのルールの後に置きます。
[Rule]
DOMAIN-SUFFIX,example.com,DIRECT
GEOIP,CN,DIRECT
IP-CIDR,192.168.0.0/16,DIRECT
FINAL,PROXY
DOMAIN-SUFFIXは、指定したドメインとそのサブドメインに一致します。GEOIPは、宛先IPアドレスを地域データベースの情報と照合します。Webページの表示言語で判定するものではありません。IP-CIDRは、宛先IPアドレスが属するネットワーク範囲に一致します。例の192.168.0.0/16はプライベートアドレスの範囲です。FINAL,PROXYは、それ以前のルールに一致しない通信をPROXYに渡す指定です。実際の構成でDIRECTが指定されている場合、結果は異なります。
Connectivity Test:テスト結果だけではWebサイトの利用可否はわからない
Home → Connectivity Testから接続テストを実行できます。表示結果は、選択したテスト方法とテスト対象を踏まえて判断してください。遅延時間が表示されても、DNS解決、TLSハンドシェイク、Webサイトの応答、振り分けルールのすべてが正常だとは限りません。
たとえば、テストでミリ秒単位の数値が表示される一方、ブラウザーが読み込み中のままなら、「テストには応答があったが、Webページにはアクセスできなかった」と記録してください。接続全体が正常だと判断するのは早計です。逆に、特定のテストがタイムアウトしても、それだけですべてのWebサイトにアクセスできないとは限りません。
- Homeの現在の状態、Global Routingの選択、SERVERで選択中の項目を記録します。
- Connectivity Testを実行し、応答あり、タイムアウト、エラーメッセージのいずれだったか記録します。
- アクセス権のあるサイトをブラウザーで開き、1つのサイトだけで失敗するのか、複数のサイトで失敗するのかを確認します。
- Configモードだけで失敗する場合は、元の設定を保存してから一時的にProxyへ切り替えて比較します。テスト後は元のモードに戻してください。
- 複数のドメインで失敗する場合は、現在のConfigにあるDNS関連の設定、ネットワーク環境、接続情報を引き続き確認してください。構成全体を一度に置き換えないでください。
問題を共有するときは、エラーメッセージ、発生時刻、操作の順序を記録すれば十分です。サブスクリプションURLのtoken、認証パスワード、秘密鍵は伏せてください。これらの情報を使うと、他人が接続情報を利用できてしまう場合があります。
サブスクリプションの更新とOn Demand:初回接続の後にそれぞれ確認
サブスクリプションは、複数の接続項目を取得するためのものです。更新すると接続情報が再取得されますが、アプリのアップデートやConfigのルールファイルの更新とは異なります。読み込みにはご自身の正規URLを使用してください。https://example.com/sub?token=xxxxは形式を示す例であり、接続には使用できません。
初回の読み込み後や更新後は、SERVERの項目が想定どおりか、選択中の項目が引き続き有効かを確認してください。更新によって名前やパラメーター、利用可能な項目が変わることがあります。「更新完了」と表示されても、新たに接続テストを行う必要があります。
- 更新前:ご自身のサブスクリプションURLが完全で、クエリパラメーターの欠落や余分な空白がないことを確認します。
- 更新後:Home → SERVERに戻り、選択中の項目を改めて確認してからConnectivity Testを実行します。
- 自動接続を有効にする前:まず手動接続が成功することを確認し、
Settings → On Demandで条件を確認します。 - 自動再接続を調べるとき:On Demandを一時的にオフにして手動で動作を比較し、テスト後、必要に応じて設定を戻します。
On Demandは指定した条件に応じてシステムが接続を開始する機能です。サーバーアドレス、認証項目、DNS設定の誤りを修正するものではありません。手動で切断しても再接続する場合は、サブスクリプションをすぐに削除せず、まずOn Demandの設定と、システム内のほかのVPN構成による自動接続を確認してください。
初回起動時によくある質問:状況に応じた対処方法
誤って「許可しない」をタップしました。もう一度許可するには?
Homeに戻り、接続スイッチを操作してシステムの案内に従ってください。それでも追加できない場合は、デバイスの「設定」でVPNを検索し、既存の構成やデバイス管理による制限を確認します。現在の情報は残したまま、制限の原因を確認してから構成を削除するか判断してください。
ConnectedなのにWebサイトが開かないのはなぜですか?
まずHome → Global Routingの選択を記録し、Connectivity Testを実行してください。Configモードだけで失敗する場合は、現在のConfigのルールとDNS設定を確認します。複数のモードで失敗する場合は、接続情報と現在のネットワークを確認してください。
SERVERに項目がたくさんあります。1つ選べば接続されますか?
項目の選択と接続の開始は別の操作です。接続先の項目を確認してから、Home上部のスイッチと接続状態を確認してください。Directを使用している場合、項目を選択していても、通常の通信が自動的にプロキシ経由になることはありません。
スイッチをオフにしても再接続します。どこを確認すればよいですか?
Settings → On Demandを開き、自動接続の設定を確認してください。まず機能を一時停止して、接続スイッチを手動で操作してみます。それでも同じ現象が起きる場合は、システムVPN構成にほかの自動接続設定がないか確認してください。
サブスクリプションとルール構成を両方とも読み込み直す必要がありますか?
最初からすべてを読み込み直す必要はありません。まずSERVERの接続情報を取得できていないのか、トンネルの起動に失敗しているのか、Configの振り分けに問題があるのかを切り分けてください。原因となっている箇所を特定してから、該当部分だけを変更すると、元の設定や確認材料を失わずに済みます。