この記事は、Shadowrocketをインストール済みで、利用するサービスとサブスクリプションを自分で用意している方を対象にしています。アプリの入手、画面の見方、接続情報の追加、ルーティングの選択、初回接続の順に進め、On Demand、ルール設定、サブスクリプションの更新についても説明します。読み終えると、問題がインポート、システムの許可、サーバー接続、ルールの適用のどの段階で起きているかを切り分けられ、設定を手当たり次第に変更せずに済みます。
1. アプリを購入すれば接続できますか?
Shadowrocketの購入で得られるのはクライアントアプリの利用権であり、接続サービスではありません。Appleプラットフォーム向けのクローズドソースの有料アプリで、主にiPhoneとiPadで利用できます。入手先はApp Storeのみです。ストアページにはMac、Apple TV、Apple Visionの互換性情報も掲載されています。システム要件とユニバーサル購入の適用範囲は、App Storeの表示をご確認ください。
クライアントアプリの買い切り料金と、利用者が契約しているサービスの料金は別です。初期設定の前に、手元にあるサブスクリプションURL、またはサーバーアドレス、ポート、認証情報一式を用意してください。サーバー名、スクリーンショットに表示された遅延時間、パスワードだけでは接続情報として不十分です。この記事では、すでにお持ちの接続情報の使い方を説明し、接続サービスの入手方法は扱いません。
2. Home、Config、Settingsの役割は?
まず、サーバー一覧と設定ファイルを区別しましょう。Homeのサーバー項目には「どこに、どのプロトコルで接続するか」が設定され、Configのファイルには「リクエストをどのルールで判定し、どのポリシーに振り分けるか」が記述されています。サーバーを追加しただけでは、用途に合ったルールファイルが選択されたことにはなりません。設定ファイルを保存しても、サーバーの認証情報がそろったことにはなりません。
- Home
- サーバーの確認と選択、接続項目の追加、接続スイッチの操作を行い、Global Routingで現在のルーティング方式を選択します。Connectivity Testではサーバーへの接続状況を確認できます。
- Config
- 設定ファイルを管理し、使用するファイルを選択します。
[General]、[Rule]、ルールのポリシーを確認する場合は、ここで現在使用中のファイルを開きます。 - Settings
- アプリの設定を変更します。たとえばSettings → On Demandでオンデマンド接続を、Settings → Subscribeでサブスクリプション更新関連の項目を確認します。
最初に問題を調べるときは、Homeで選択中のサーバーとGlobal Routingを確認し、次にConfigで実際に有効なファイルを確認し、最後にSettingsで自動接続や更新の設定を確認します。この順に進めると、使用されていない設定を変更して、ルールが反映されないと誤解するのを防げます。
3. 手元のサブスクリプションURLはどこから追加しますか?
サーバーのサブスクリプションは、Home右上の「+」からAdd Serverを開き、TypeでSubscribeを選んで追加します。これはサーバー一覧のサブスクリプションです。Configで管理するルール設定とは別のものです。追加前に、受け取ったURLが完全なサブスクリプションURLであり、アカウントのログインページやブラウザーで操作するWebページではないことを確認してください。
-
追加画面を開く
Homeを開き、右上の「+」をタップしてAdd Serverを表示します。TypeでSubscribeを選択してください。他のプロトコルタイプのままにしないよう注意します。
-
完全なURLを貼り付ける
手元のサブスクリプションURLをURL欄に入力します。先頭、クエリパラメーター、末尾が欠けていないことを確認し、コピー時に含まれた空白や改行を削除してください。
-
保存して更新する
項目を保存し、Homeに戻って下に引っ張り、サブスクリプションを更新します。リストの更新が完了したら、サブスクリプション名だけでなく、サーバー項目が表示されていることを確認してください。
-
サーバーを選択する
既存のサーバーをタップして選択し、Connectivity Testを実行します。テストと実際の接続で異なる項目を使わないよう、選択中のサーバーを確認してから接続スイッチをオンにしてください。
サブスクリプションURLにはアカウントのトークンが含まれることが多いため、パスワードと同様に管理してください。以下は形式の例であり、接続には使えません。問題の調査情報を共有するときは、token、パスワードなどの認証情報を隠してください。
https://example.com/sub?token=xxxx
4. サーバー情報だけ手元にある場合、Add Serverには何を入力しますか?
Home →「+」→ Add Serverを開き、最初にTypeを選んでから、利用中のサービスから提供された情報を入力します。Shadowsocks、VMess、VLESS、Trojan、Hysteria2、WireGuardでは、認証項目や転送項目が異なります。Typeだけを変えて、他の項目をすべてそのままにすることはできません。サブスクリプションに必要な情報がすべて含まれている場合は、手入力し直さず、まずインポート内容を確認してください。
- アドレスとポート:Addressにはサーバーのドメイン名またはIPアドレス、Portには実際のポート番号を入力します。たとえば、提供されたアドレスが
server.example.com、ポートが443の場合、Addressにhttps://や:443を含めないでください。また、ポートが443というだけでTLSを使用しているとは限りません。 - 認証:Shadowsocksでは暗号化方式とパスワード、VMessとVLESSではUUIDなどの識別情報、TrojanとHysteria2では各プロトコルに対応した認証情報を確認します。サブスクリプションのtokenをサーバーのパスワードとして使うことはできません。
- 転送:パラメーターにTLS、SNI、WebSocketのパスなどが含まれている場合は、一つずつ正確に設定します。サーバーアドレスとSNIが異なることもあるため、見た目をそろえる目的で変更しないでください。
- WireGuard:実際の設定に合わせて、鍵、インターフェースアドレス、ピアのパラメーターを入力する必要があります。通常のプロキシのアドレスとパスワードをWireGuardの設定にそのまま置き換えることはできません。
保存後、この項目でConnectivity Testを実行してください。同じサブスクリプション内の他の項目は接続できるのに、手動で追加した項目だけ接続できない場合は、手入力した情報を項目ごとに確認します。最初に設定ファイル全体を変更する必要はありません。項目の場所はTypeによって異なるため、現在の画面表示をご確認ください。
5. Global Routingはどれを選べばよいですか?
Home → Global Routingでルーティング方式を選択します。現在の接続でサーバーとルールをどのように使うかを決めるもので、プロトコルの種類やサーバーの所在地を示すものではありません。初めて使う場合は、設定が有効であることを確認してから、普段はConfigを選びます。ルールを用意していない場合は、テストにどの方式を使うかを先に決めてください。
Config
おすすめ現在選択中の設定ファイルに基づいてルールを判定します。直接接続するかプロキシを使うかは、該当したポリシーとFINALによって決まります。「一部は直接接続、一部はプロキシ」と固定されているわけではありません。
適した用途:有効な設定ファイルがあり、ドメイン名やIPアドレスに応じて日常的に通信を振り分けたい場合。
Proxy
リクエストをプロキシ方式で処理します。一時的にルール判定の影響を減らして問題を調べたい場合に適しています。切り替えても有効なサーバーが必要で、認証を回避したり、サーバーに接続できない問題を解決したりはできません。
適した用途:サーバーとプロキシ経由の通信を短時間確認し、その後Configに戻ってルールを照合する場合。
Direct
直接接続方式を使用し、選択中のプロキシサーバーを経由せずに接続します。スイッチがオンでも、リクエストがプロキシ経由で送信されているとは限りません。
適した用途:現在のネットワークから接続先へ直接通信した場合の状態を確認する場合。
Scene
設定済みのシーン条件に基づいてルーティング方法を決めます。選択する前に、そのシーンのネットワーク条件と動作を確認してください。最速のサーバーを自動選択する機能ではありません。
適した用途:シーンを設定済みで、ネットワーク条件に応じてルーティングを切り替えたい場合。
6. 接続スイッチはどこにありますか?初回の許可設定は?
接続スイッチはHomeにあります。初めてオンにすると、システムからVPN構成の追加を求められます。システムの案内に従って許可し、デバイス認証を完了してください。この許可によってアプリがシステムのネットワークトンネルを確立できるようになります。購入の確認ではなく、不足しているサーバー情報を補うものでもありません。
- Homeで使用するサーバーを選択します。サブスクリプショングループ名だけを選択している状態ではないことを確認してください。
- Global Routingを開き、今回使用するルーティング方式を確認します。Configを選んだ場合は、Configでも現在のファイルを確認してください。
- Homeに戻り、接続スイッチをオンにして、システムによるVPN構成の追加を許可し、認証を完了します。
- 接続状態を確認してから、テスト対象にアクセスします。接続を終了するときはHomeに戻り、スイッチをオフにしてください。
システムにVPN接続済みと表示されても、トンネルが確立したことを示すだけで、すべての接続先にアクセスできるとは限りません。サーバー認証、リモート側の出口、DNS、ルールポリシーがリクエストに影響することがあります。スイッチをオンにしてすぐオフになる場合は、システムの許可とサーバー情報を確認してください。接続状態が続くのにページを開けない場合は、10番目の質問に沿って順に確認します。
7. On Demandとは?オフにしたのに再接続するのはなぜ?
On Demandはネットワーク条件に応じて接続を開始する設定で、Settings → On Demandから開けます。Global Routingとは役割が異なり、On Demandは接続を開始するタイミング、Global Routingは接続後のルーティング方式を決めます。問題を調べる前にOn Demandが有効か確認し、設定済みのネットワーク条件と動作も確認してください。
2種類のネットワークで接続開始条件を確認する
Wi-Fi環境
- 現在接続中のWi-Fi名を記録します。
- Settings → On Demandで該当する条件を確認します。
- ネットワークを切り替え、Homeの接続状態が変化するか確認します。
モバイル通信環境
- モバイル通信が利用できるデバイスでWi-Fiをオフにします。
- モバイル通信に対応する接続開始設定を確認します。
- 同じサーバーと接続先で再テストし、結果を分けて記録します。
問題を調べるときは、まずOn Demandをオフにして手動で接続します。手動接続が正常に動作することを確認してから、必要な接続開始設定を元に戻してください。
手動で切断しても再び接続される場合は、サーバーや設定をすぐ削除せず、まずOn Demandが再接続を開始していないか確認します。Wi-Fiからモバイル通信への切り替えや、ネットワークへの再接続によって、設定済みの条件が再評価されることがあります。On Demandを再び有効にしたら、設定画面のスイッチを見るだけでなく、実際にネットワークを切り替えて確認してください。
8. 設定ファイルはどこにありますか?ルールはどの順に適用されますか?
Configで設定ファイルを管理して使用するファイルを選び、Home → Global RoutingでConfigを選択します。ルールは通常、[Rule]セクションを上から順に確認し、最初に一致したルールのポリシーが適用されます。具体的なドメインルールは広範囲に一致するルールより前に置き、先行するルールに一致しなかった場合のフォールバックとしてFINALを使います。
[Rule]
DOMAIN-SUFFIX,example.com,DIRECT
IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
GEOIP,CN,DIRECT
FINAL,PROXY
DOMAIN-SUFFIXはドメインのサフィックスに一致します。例ではexample.comとそのサブドメインが対象となり、Webページ内の任意の文字列に一致するわけではありません。IP-CIDRは接続先のIPアドレス範囲に一致します。例のno-resolveは、このIPルールのためにドメイン名を積極的に名前解決しないことを示します。アプリ全体のDNSを無効にする指定ではありません。GEOIPは接続先IPアドレスの地理情報データベースの結果に基づいて一致します。ドメイン名の文字列だけから地域を判断することはできません。FINALは、それ以前のルールに一致しなかったリクエストを処理します。例ではフォールバックにPROXYを使っていますが、実際のファイルでは他の有効なポリシーも使用できます。
これはルールの一部であり、すべての接続情報を含む完全な設定ではありません。使用する際は、PROXYなどのポリシーで現在の環境に応じたサーバーを正しく選択できることを確認してください。FINALを先頭に置くと、後続のルールが意図どおりに機能しなくなります。ファイルを変更しても、そのファイルを選択していなければ、現在のリクエスト処理には反映されません。
9. サブスクリプションの更新と設定ファイルの更新は同じですか?
異なります。サーバーサブスクリプションの更新では、主にサーバー一覧と接続情報を取得します。リモート設定の更新では、ルールやポリシーなどの設定内容が変更される場合があります。Homeでサブスクリプションの更新に成功しても、Configのルールが更新されたとは限りません。逆に、ルールファイルを更新しても、サーバーのパスワード間違いは解決しません。
- サーバーサブスクリプションの更新
- Homeに戻り、下に引っ張って更新し、サーバーの追加、削除、パラメーター変更を確認します。更新後に選択中の項目も確認してください。特に、元の項目がリストから消えている場合は注意が必要です。
- 設定ファイルの更新
- Configで対象のリモート設定と更新状態を確認します。更新後は実際の内容と現在選択中のファイルを確認し、ファイル名だけで判断しないでください。
- 更新経路の変更
- サブスクリプションURLに直接接続できない一方、利用可能なサーバーがある場合は、Settings → SubscribeでUpdate via Proxyを確認してから、更新を再試行できます。
Update via Proxyを使うには、先に利用可能なプロキシ接続が必要です。無効になったサブスクリプションURLを有効に戻す機能ではありません。既存のサーバーにも接続できない場合、この設定を何度もオンにしても解決しません。更新に失敗したら、タイムアウト、認証の失効、サブスクリプション形式ではない応答を区別してから、完全なURLを確認してください。あらゆる失敗をネットワークの問題と決めつけないようにしましょう。
10. Connectivity Testで結果が出るのに、接続先を開けないのはなぜ?
HomeのConnectivity Testではサーバー接続の一部を確認できますが、すべてのWebサイト、プロトコル、ルールの動作を検証できるわけではありません。遅延時間が表示されても特定の接続先にアクセスできない場合は、同じサーバーを使ったまま、ルーティング方式、接続先のルール、DNSを個別に確認してください。サーバー、設定、ネットワークを一度に変更すると、結果を比較できなくなります。
テストがタイムアウトします。設定ルールが間違っていますか?
まずHomeでテストした項目を確認し、次にAddress、Port、認証情報、TLSの設定を確認します。同じ項目のままWi-Fiまたはモバイル通信に切り替えて再テストしてください。接続そのものに失敗する場合は、DOMAIN-SUFFIXルールを変更する前にサーバーへの接続可否を確認します。
VPNには接続済みなのに、接続先のページを開けません。
Home → Global Routingを開き、Directのままになっていないことを確認します。一時的にProxyに切り替えて同じ接続先をテストしてください。Proxyでは接続でき、Configではできない場合は、Configに戻り、接続先に一致したルール、ポリシー、FINALを確認します。
特定のドメインだけ接続できません。どこを確認すればよいですか?
Configで現在使用中のファイルを開き、まずそのドメインに関するDOMAIN-SUFFIXなどのルールを探し、次にDNS設定を確認します。名前解決エラー、接続タイムアウト、サーバー側からの拒否のどれが発生しているか記録してください。現象によって調査方法は異なります。
1回の確認で変更する条件は一つにし、「ネットワーク、サーバー、Global Routing、接続先、失敗の状況」を記録してください。たとえば、同じサーバーがWi-Fiではタイムアウトし、モバイル通信では接続できる場合は、まず現在のWi-Fiネットワークの制限を確認します。どちらのネットワークでも接続できるのに、Configで同じドメインだけ失敗する場合は、ルールを優先して確認してください。さらに調べる場合は、トラブルシューティングまたは設定ガイドをご覧ください。情報を共有する前に、認証情報を必ず隠してください。