公式マニュアル · 機能と設定

Shadowrocket プロキシモードと設定

Global Routingは接続の振り分け方法を決め、Configはルールやネットワーク設定を保存し、Homeではサーバーと接続状態を管理します。まずこの3つの役割を把握してから、On DemandやDNS、テスト方法を調整すれば、変更の影響を切り分けやすくなります。

このページでは、iPhoneとiPadでよく使う操作を中心に説明します。画面や項目の位置は、デバイスやアプリのUI変更によって異なる場合があります。各項目は現在のアプリ画面で確認してください。システム要件はApp Storeの掲載内容をご確認ください。

  • ルーティングモード Config / Proxy / Direct
  • ルールの実行順 上から順に照合
  • 設定の基本 一度に変更するのは1項目

Home · Global Routing

3つのモードの使い分け

Global RoutingはHomeにあり、接続全体の処理方法を選択します。Config、Proxy、Directはそれぞれ画面上の英語表記です。日本語は意味の説明として参考にし、操作時は英語の項目名を確認してください。Global Routingでモードを選んだらHomeに戻り、現在のサーバーと接続スイッチを確認します。モードの選択と接続の開始は別の操作です。モードを変更しただけでは接続されません。

ルーティングモードが決めるのは通信の処理方法であり、サーバーの接続品質ではありません。
画面上の項目処理方法用途確認すること
Config現在のConfigに設定されたルールに従って振り分けるドメインやアドレスに応じて日常的に通信を振り分ける使用中のConfig、ルールの順序、最後に適用されるルール
Proxy対象となる接続を現在のプロキシで処理するプロキシ経由の通信が可能か一時的に確認する選択中のサーバーと接続パラメータ
Direct対象となる接続を宛先へ直接送信するローカルネットワークを確認する、または直接接続時と比較するローカルネットワークと宛先に到達できるか

Config:ルールに従って接続を振り分ける

一部のWebサイトをPROXY経由にし、それ以外の接続をDIRECTにする場合は、通常Configを選びます。まずConfig画面で現在使用中のファイルを確認し、Homeに戻ってConfigを選択してください。ルールファイルが一覧にあっても、現在の設定として選択されていなければ、編集しても振り分けは変わりません。問題を調べる際は、ファイル内のポリシー名とHomeで選択したサーバーを区別しましょう。前者は処理方法を決め、後者はプロキシ接続先に影響します。

Proxy:プロキシ経路を確認する

Proxyは、問題の発生箇所を絞り込むときに役立ちます。同じ宛先にProxyでは接続でき、Configでは失敗する場合は、すべてのサーバー設定をすぐに変更せず、適用されたルールやDNSを確認できます。ただし、システム上のすべての通信が必ずこの経路を通るとは限りません。システム通信、既存の接続、設定による迂回動作はそれぞれ個別に確認してください。比較が終わったら、必要なモードに戻します。

Direct:直接接続の経路を確認する

Directは宛先へ直接接続するモードで、Homeの接続スイッチをオフにする操作とは異なります。アプリの接続状態を保ったままローカルネットワークでの動作を比較するには、一時的にDirectを選択します。アプリが確立したVPN接続を停止する場合は、Homeのスイッチを操作し、On Demandによって再接続されないかも確認してください。DirectはDNS設定をリセットする機能ではありません。名前解決の問題は別途確認が必要です。

Config · Rule

ルールの種類と適用方法

ルールは照合条件と処理ポリシーで構成され、通常はConfig画面で現在の設定ファイルのRuleを編集します。ルールは記載順に評価され、条件に一致すると対応するポリシーが適用されるため、具体的なルールを広範なルールより上に置きます。編集前に復元できる設定を保存し、変更後は有効なファイルを確認してください。動作確認では新たにアクセスを開始し、既存の接続を新しいルールの結果と取り違えないようにします。

キーワード照合対象使用時の注意
DOMAIN完全一致するドメイン名特定のホスト名だけを指定する場合に使用
DOMAIN-SUFFIX指定したドメインとそのサブドメインプロトコルやWebページのパスは含めない
DOMAIN-KEYWORDドメイン名に含まれるキーワード広い範囲に一致するため、誤判定に注意
IP-CIDR / IP-CIDR6IPv4 / IPv6のアドレス範囲アドレスとプレフィックス長の組み合わせを確認
GEOIPアドレスが属する地域のデータアドレスデータベースや名前解決の結果に左右される
FINALそれ以前のルールに一致しなかった接続通常はルール末尾のフォールバックとして使用

PROXY、DIRECT、REJECT

PROXYはプロキシ経由で処理し、DIRECTは直接接続し、REJECTは接続を拒否します。これらはルール内のポリシーキーワードであり、サーバーのプロトコル名ではありません。カスタムのポリシーグループを使用している場合は、グループ内の選択内容と利用可能なメンバーも確認してください。ルールの末尾に名前があるだけでは、特定のサーバーを経由すると判断できません。

[Rule]
DOMAIN-SUFFIX,example.com,PROXY
FINAL,DIRECT

この例では、example.comとそのサブドメインにPROXYを適用し、それ以外の未照合の接続にはDIRECTを適用します。example.comはルールの例であり、サーバーやサブスクリプションではありません。実際のWebサイトでは、画像、ログイン、APIなどに別のドメインを使うことがあります。トップページが表示されても、関連するすべてのリクエストに同じルールが適用されるとは限りません。ルールを追加する場合はキーワードの範囲をむやみに広げず、実際のリクエスト記録でドメインを確認してください。

設定ファイルの構成を詳しく知りたい場合は設定ファイルの各セクションの説明を、特定のWebサイトだけを振り分ける場合は指定サイトの振り分け例を参照してください。

Home · SERVER · Subscribe

サブスクリプションとサーバーの管理

HomeのSERVER欄では、サーバーの確認と選択ができます。サブスクリプションは、ユーザーがすでに持っているサーバー情報をまとめて読み込み、更新する方法です。どちらもルール設定とは別のものです。以下の手順は、ご自身のサブスクリプションまたはサーバー情報をお持ちであることを前提とします。このサイトでは管理方法と使い方を説明しますが、接続先やサブスクリプションの提供・販売・推奨は行いません。

Add Server:既存の情報を手動で入力する

HomeでAdd Serverを開き、手元の情報に合わせてTypeを選んでから、アドレス、ポート、認証情報を入力します。Shadowsocks、VMess、VLESS、Trojanなど、プロトコルごとに必要な項目は異なります。アドレスが同じだからといって、別のTypeを選ばないでください。TLS、通信方式、関連する名前の項目も、元の情報と一つずつ照合します。保存後、SERVERに戻って該当項目を選択し、Connectivity Testを実行してください。

Subscribe:既存のサブスクリプションを読み込んで更新する

Add Serverで該当するSubscribeタイプを選択し、既存のサブスクリプションURLを入力して保存します。作成されたグループと項目を確認してください。サブスクリプションURLには認証情報が含まれる場合があります。貼り付ける前に内容が完全で、前後に空白や改行がないことを確認し、スクリーンショット、記事、チャットなどで公開しないでください。初回の読み込み手順は既存のサブスクリプションとサーバーの読み込みをご覧ください。

サブスクリプションの更新では、配信元から項目を再取得します。アプリ自体のアップデートではありません。更新後は、現在のサーバーが残っているか、名前やグループが変わっていないか、手動で変更した項目が上書きされていないかを確認してください。重複項目を削除する前に、サブスクリプション由来か手動追加かを見分けましょう。次回の更新で再び表示されるのを防げます。QRコードなどによる読み込みも既存の情報を使うもので、読み込み後はプロトコルと各設定を確認してください。

Settings · On Demand

オンデマンド接続の条件

On Demandでは、特定のWi-Fiへの接続、モバイル通信の使用、関連するドメイン条件などに応じて、接続動作を自動で開始できます。On Demandが決めるのは「いつ接続するか」、Global Routingが決めるのは「接続後にどうルーティングするか」です。互いに代用できる機能ではありません。まず手動接続が機能することを確認してから、自動接続を設定してください。

SettingsでOn Demand関連の設定を開き、現在の画面に表示される条件を追加します。まずは特定のWi-Fi名など、再現可能な条件を1つだけ設定し、ネットワークを切り替えて動作を確認してください。接続と切断が想定どおりに動くことを確認してから、ほかの条件を追加します。複数のルールがある場合は、順序、対象ネットワーク、動作を確認し、範囲の広いルールが先に一致しないようにしてください。

Wi-Fi名は実際のネットワーク名と一致させます。モバイル通信の条件は、実際にネットワークを切り替えて確認してください。ドメインによる起動条件は、開いたままのWebページだけで判断しないでください。キャッシュや既存の接続が確認結果に影響することがあります。テスト時は開いているページを閉じ、新たにリクエストを送り、システムとHomeの接続状態を確認します。

手動で接続をオフにした後、接続状態が再び表示される場合は、設定を何度も削除するのではなく、まずOn Demandを確認してください。一時的な切り分けでは該当する自動接続条件を無効にし、手動スイッチをテストします。終了後は、必要な設定に戻してください。条件の詳しい設定方法はOn Demandによる自動接続の説明をご覧ください。

Data

通信量の確認方法

Dataでは、アプリが記録した通信量を確認し、接続中にデータが転送されたかを判断できます。Dataを開いたら、画面に表示される集計範囲、期間、送受信の意味を確認してから数値の変化を比較してください。アプリ内の統計と、システムのモバイル通信量やネットワークサービスの計測基準は異なる場合があります。一方の数値を、そのまま別のシステムの請求根拠にしないでください。

問題を確認するときは、まず現在の数値を記録し、目的を明確にしたアクセスを1回行ってからDataに戻り、変化を確認します。統計のリセット機能がある場合は、現在の記録を残す必要がないと確認してから使用してください。統計をリセットしても、サーバー、ルール、リモートサービスの使用量はリセットされません。バックグラウンド通信も発生するため、テスト中はほかのアプリの通信をできるだけ減らします。

アップロードはあるのに想定したダウンロードが見られない場合、通信が期待どおりに完了していないことは分かりますが、それだけでサーバー、DNS、宛先からの応答のどれが原因かは判断できません。Connectivity Testやリクエスト記録と合わせて確認してください。Dataは通信速度を保証するものでもありません。短いリクエストでの通信量の変化は、継続的なダウンロードの状態を示すものではなく、実際の利用先へのアクセス確認に代わるものでもありません。

Settings · よく使う項目

名前解決、テスト、補助機能の設定

Settingsにはアプリの動作や補助機能の設定がまとめられていますが、一部のネットワーク設定は現在のConfigに含まれることもあります。変更前に、その項目がアプリ全体に適用されるのか、特定の設定ファイルだけに適用されるのかを確認してください。デバイスによって画面の位置、利用できる機能、システムの対応状況は異なります。以下では機能ごとの確認方法を説明し、特定の画面配置がすべてのデバイスで共通するとは限りません。

DNS:設定の適用元を確認する

DNSはドメイン名をIPアドレスに変換します。SettingsのDNS関連項目を確認する際は、現在のConfigのGeneralセクションにdns-serverなどの項目が設定されているかも確認してください。元の値を記録し、変更するのは一度に1つの設定元だけにします。DNS、サーバー、Global Routingを同時に変更すると、接続が回復しても原因を特定しにくくなります。

[General]
dns-server = system

この例は、システムが提供するDNS設定を使うことを示すもので、すべてのネットワークに適した固定の設定ではありません。テストには応答があるのにWebページが開かない場合は、ドメインの名前解決、接続の確立、宛先からの応答をそれぞれ確認してください。DNSキャッシュが残っていると変更が反映されていないように見えることがあります。確認時は新たにリクエストを送り、使用中の設定も確認してください。詳しくはDNS名前解決エラーのトラブルシューティングをご覧ください。

Test Method:テスト条件を統一する

Test MethodはConnectivity Testで使用するテスト方法を決めます。Settingsのテスト関連設定で現在の選択を確認し、画面に表示される範囲でテスト対象や方法を調整してください。方法によって測定する段階が異なるため、条件の違うテスト結果をそのまま比較することはできません。サーバーを比較するときは、テスト方法、対象、接続中のネットワークを統一してください。

Connectivity Testの成功は、そのテスト条件で応答があったことを示すだけで、すべてのWebサイトやプロトコルが使えることを保証するものではありません。テスト対象自体に到達できない場合も、失敗することがあります。まずテスト条件を確認し、実際にアクセスしたい宛先でも動作を確認してください。

Today Widget:ウィジェットのショートカットを確認する

Today Widgetは、システムが対応するウィジェットや簡易表示で利用します。まずSettingsで関連項目を確認し、次にシステムのウィジェット管理画面で追加できるかを確認してください。利用できる表示形式や操作は、システムとアプリの対応状況によって異なります。ほかのデバイスで見た表示を、現在のデバイスでも使えるとは限りません。

ウィジェットから操作した後、状態が想定と異なる場合はHomeに戻り、接続スイッチ、選択中のサーバー、Global Routingを確認してください。ウィジェットは補助的な操作画面であり、詳細設定ページの代わりにはなりません。初回のシステム許可、設定の編集、詳しいトラブルシューティングは、アプリまたは該当するシステム画面で行ってください。

iCloud:同期と復元を区別する

iCloud関連機能では、対応する範囲でデータを保存または同期できます。使用前に、デバイスで意図したiCloudアカウントにサインインしていること、システムでアプリのiCloud利用が許可されていることを確認し、アプリで同期対象を確認してください。同期を有効にすればサーバー、設定、履歴、統計のすべてが同期されるとは限りません。実際の対象は現在の画面の説明に従ってください。

デバイスの変更やデータの統合を行う前に、別途バックアップを保存し、同期の完了を確認してから現在のConfigとSERVERを確認してください。App Storeの購入履歴と設定の同期は別のものです。アプリの購入を復元しても、接続情報が戻るわけではありません。認証情報を含む既存のデータは機密情報として管理し、同期・書き出し内容を公開しないでください。

Diagnostics:必要な診断情報を保存する

Diagnosticsでは、トラブルシューティングに必要な情報を収集または確認できます。問題が起きた時刻、接続中のネットワーク、ルーティングモード、再現手順を記録してから、Settings内のDiagnostics関連項目を開き、利用できる情報を確認してください。追加の記録スイッチがある場合は、問題を再現するのに必要な時間だけ有効にし、完了後は通常の設定に戻します。

診断情報を共有する前に、サブスクリプションURL、サーバー情報、認証情報、アクセス先ドメイン、個人のネットワーク名が含まれていないか確認し、必要に応じて隠してください。記録を増やせば原因を特定しやすくなるとは限りません。明確な操作と時刻に対応した記録のほうが、設定を何度も変更して集めた大量の情報より判断に役立つことがあります。

確認手順

設定変更を手順に沿って進める

  1. 変更前の状態を保存します。現在のConfig、Global Routing、選択中のサーバーを記録し、復元できる設定を保存してください。サブスクリプションやアカウント情報を含む場合は、公開記録に認証情報をそのまま記載しないでください。
  2. まずローカルネットワークを確認します。Wi-Fiまたはモバイル通信自体が使えることを確認してください。比較が必要な場合は一時的にDirectを使い、テスト後に元のモードへ戻します。ローカルネットワークの問題とルールの問題を混同しないようにしてください。
  3. 既存のサーバーを確認します。Type、アドレス、ポート、認証項目を確認し、同じTest MethodでConnectivity Testを実行してください。テスト後は実際の宛先にもアクセスし、テストリクエストへの応答だけではないことを確認します。
  4. 最後にルールを調整します。Configでルールの照合順序とFINALを確認し、一度に変更するのは1か所だけにしてください。新たにアクセスし、対象と関連リクエストに想定したポリシーが適用されているか確認します。
  5. 自動動作を元に戻します。手動接続が安定したらOn Demandを有効にし、ネットワーク切り替え時の動作を確認します。その後Dataと必要なDiagnosticsを確認し、一時的なテストや追加の記録を終了します。

初めて設定する場合は、クイックスタートの手順に沿って初期設定を進めてください。具体的な症状がある場合は、トラブルシューティングの接続に関する項目を確認してください。画面上の用語やルールキーワードを調べるには、用語集をご覧ください。