Global Routing
Routing Mode通信全体の処理方法を決める設定で、Config、Proxy、Directの3つのモードがあります。Configは現在の設定ファイルのルールに従ってポリシーを選択し、Proxyは通信をプロキシ経由で処理、Directは直接接続します。通信の振り分けを確認する際は、まずここがConfigになっているか確認してください。Config以外では、Ruleセクションを変更しても期待した結果にならないことがあります。
[Glossary]
画面表示、プロトコル、ルール、設定に関する用語を確認できます。設定項目とルールキーワードを区別し、リクエストの処理方法を把握しましょう。英語表記はクライアントや設定ファイルに合わせています。
[Interface]
まず、スイッチが接続状態、通信全体の処理モード、または個別の診断のどれを制御するのか確認します。接続が有効でも、すべてのリクエストがプロキシサーバーを経由するとは限りません。
通信全体の処理方法を決める設定で、Config、Proxy、Directの3つのモードがあります。Configは現在の設定ファイルのルールに従ってポリシーを選択し、Proxyは通信をプロキシ経由で処理、Directは直接接続します。通信の振り分けを確認する際は、まずここがConfigになっているか確認してください。Config以外では、Ruleセクションを変更しても期待した結果にならないことがあります。
設定したネットワーク条件に応じて接続・切断を行う機能で、「いつ接続するか」を制御します。Ruleセクションが決める「リクエストをどのポリシーで処理するか」とは別の機能で、ドメインごとの振り分けには使えません。手動で切断した後に自動で再接続する場合は、まずOn Demandの条件を確認し、ほかの接続設定も確認してください。
登録済みサーバー情報を手動で追加する項目です。プロトコルを選んでから、アドレス、ポート、対応する認証情報を入力します。TLS、SNI、トランスポートの設定もサーバー側と一致させる必要があり、アドレスとポートだけでは設定が完了したとは限りません。個別の共有リンクから読み込んだ場合も、該当するサーバー情報を開いて各項目を確認できます。
選択したテスト方法でサーバーが応答するか確認します。表示されるレイテンシは、そのテスト時点での測定結果です。ダウンロード速度や、すべてのWebサイトへの接続品質を示すものではありません。テスト対象、ネットワーク環境、測定方法によって結果は変わります。異常がある場合は、実際のリクエストが成功するか、どのポリシーに一致したかも合わせて確認してください。
ドメイン名をIPアドレスに変換する処理で、宛先に接続する前に行われます。名前解決の成功と宛先への接続成功は別のことで、DNSの結果に問題があると、IPアドレスではアクセスできてもドメイン名では失敗する場合があります。DNS設定を変更する前に、現在の設定とネットワーク環境を確認してください。キャッシュの影響で、変更内容が既存のリクエストにすぐ反映されないこともあります。
[Protocol]
プロトコルはクライアントとサーバー間の通信方法を定めるもので、速度や利用可能性のランクではありません。利用中のサーバーから提供されたパラメーターを確認し、接続を試すためだけにプロトコルをむやみに変更しないでください。
プロキシプロトコルの1つです。一般的に必要な情報はサーバーアドレス、ポート、暗号化方式、パスワードです。暗号化方式とパスワードはサーバー側の設定と一致させてください。アドレスが正しくても認証情報が異なると接続できません。追加のトランスポート設定が必要な場合は、提供された情報に従って入力してください。別のプロトコルの項目を流用しないでください。
ユーザー識別子などで認証するプロキシプロトコルです。アドレス、ポート、UUID、トランスポートの設定を合わせて確認します。WebSocketなどを使う場合、HostとPathも接続設定に含まれます。読み込み後も接続できない場合は、UUIDを何度も変更するのではなく、サーバー情報に基づいてTLSとトランスポート層を確認してください。
ユーザー識別子を使うプロキシプロトコルです。プロトコル自体と、使用するトランスポートやセキュリティ層は分けて考える必要があります。VLESSという名称だけで暗号化方式を判断したり、VMessとすべてのパラメーターを共用できると考えたりしないでください。サーバーから提供されたUUID、トランスポート方式、セキュリティ設定をひとまとまりとして確認し、別の接続情報を混在させないようにします。
通常はTLSと組み合わせ、パスワードで認証するプロキシプロトコルです。パスワードと証明書関連の設定は接続に影響します。SNIはTLSハンドシェイクで使うサーバー名で、実際の接続先アドレスと異なる場合があります。サーバー情報に従って設定してください。証明書エラーが発生した場合は、サーバー名、端末の日時、証明書の状態を確認します。Allow Insecureを通常の解決方法として使わないでください。
QUICをベースにしたプロキシプロトコルで、接続にはUDP通信が可能なネットワーク環境とサーバー側の対応が必要です。認証、TLS、ポート、obfuscationなどの設定をサーバー側と一致させ、ほかのプロトコルの知識をもとに項目を省略しないでください。接続テストに問題がある場合は、設定ミスと現在のネットワークによるUDPの制限を切り分けて確認します。プロトコル名だけで実際の速度が決まるわけではありません。
公開鍵・秘密鍵などを使って暗号化トンネルを構築します。設定にはEndpoint、アドレス、許可するアドレス範囲も含まれます。秘密鍵は機密情報です。公開スクリーンショット、記事、問い合わせ内容に載せないでください。トンネルのハンドシェイクに成功しても、すべての宛先にアクセスできるとは限りません。ルーティング範囲、DNS、サーバー側の転送設定も確認してください。
共有リンクとサブスクリプションの違いは、共有リンクの形式ガイドをご覧ください。
[Rule]
ルールは一致条件と、一致した場合に適用するポリシーで構成され、記述順に評価されます。以下の例では説明用にexample.comを使用しています。サーバーやサブスクリプションを提供するものではありません。
[Rule]
[Rule]
DOMAIN,example.com,PROXY
DOMAIN-SUFFIX,example.org,PROXY
IP-CIDR,192.168.0.0/16,DIRECT
FINAL,DIRECT
この例では、指定したドメインをPROXY、ローカルネットワークのアドレスをDIRECTで処理し、それ以外のリクエストにはFINAL,DIRECTを適用します。使用前に、これらのルールを含む設定ファイルを選択し、Global RoutingをConfigにしてください。
ドメイン名全体に一致します。たとえばDOMAIN,example.com,PROXYはこのドメインだけを対象とし、すべてのサブドメインには自動で一致しません。単一のホスト名だけを処理する場合に適しています。入力時にURLのパスやプロトコルの接頭辞は含めないでください。同じサービスが複数のドメインを使う場合は、実際のリクエストで使われるホスト名をそれぞれ確認します。
指定したドメインとそのサブドメインに一致します。たとえばDOMAIN-SUFFIX,example.com,PROXYはexample.comとapi.example.comを対象にできます。ドメイン階層に基づいて判定され、任意の文字列が含まれるかどうかを調べるものではありません。サブドメインを1つずつ記述するより簡潔ですが、対象ドメイン全体に同じポリシーを適用してよいか確認してください。
ドメイン名に指定したキーワードが含まれるかを確認します。例:DOMAIN-KEYWORD,example,PROXY。DOMAINやDOMAIN-SUFFIXより広い範囲に一致し、意図していない別のドメインも対象になることがあります。キーワードによる包括的な判定が必要な場合に限って使い、実際のリクエストで誤一致がないか確認してください。
IP地理情報データベースの分類結果に基づいて判定します。例:GEOIP,CN,DIRECT。データベースの分類は、対象サイトで使われている言語や運営組織の所在地を示すものではありません。CDNやIPアドレスの変更も結果に影響します。先にドメインルールが一致した場合、その後のGEOIPルールでポリシーが再選択されることはありません。
IPv4またはIPv6のアドレス範囲で宛先を判定します。スラッシュの後の数字はネットワークプレフィックス長です。例:IP-CIDR,192.168.0.0/16,DIRECTは該当するプライベートアドレス範囲を対象とします。ドメイン文字列ではなくIPアドレスに一致するため、ドメインへのリクエストでは名前解決の結果と、それ以前のルールが一致していないかも確認してください。
認識可能なUser-Agentの内容で判定します。例:USER-AGENT,ExampleApp*,DIRECT。アプリのプロセス単位で振り分ける機能ではありません。同じアプリでもリクエストによって識別子が異なる場合があり、別のプログラムが同じ識別子を使うこともあります。暗号化されたリクエストでは該当情報を確認できない場合があるため、このルールがアプリの通信すべてを対象にするとは限りません。
それ以前のルールに一致しなかったリクエストに適用するポリシーを指定します。通常はRuleセクションの最後に記述します。FINAL,DIRECTは残りの通信を直接接続し、FINAL,PROXYは残りをプロキシ経由にします。既定の動作は大きく異なります。特定のドメインがプロキシ経由になる理由を調べるときは、個別に一致したルールとFINALの両方を確認してください。
一致したリクエストをプロキシポリシーで処理することを示すルールキーワードで、特定のプロトコルを指すものではありません。リクエストが完了するかどうかは、選択したサーバー、認証、接続状態にも左右されます。Global RoutingのProxyモードとは異なり、こちらは個別ルールの処理結果を示し、Proxyモードは通信全体の処理方法を指定します。
一致したリクエストをプロキシサーバー経由ではなく、宛先に直接接続します。DIRECTルールはConfigモードでも適用されるため、接続スイッチがオンでも、このリクエストがプロキシを経由するとは限りません。直接接続できるかどうかは、ローカルネットワーク、名前解決、宛先サービスの状態によって変わります。ポリシー名だけで接続の可否が決まるわけではありません。
一致したリクエストを拒否し、接続を許可しない宛先を指定します。使用前に一致範囲を明確にしてください。広すぎるドメインキーワードやアドレス範囲を指定すると、正常な機能にも影響する場合があります。ページの内容が表示されない場合は、まずリクエストがREJECTに一致していないか確認し、ルール範囲を絞り込みます。すべてのポリシーを変更する必要はありません。
ルールの評価順、セクション構成、その他の記述方法はRuleリファレンスをご覧ください。
[Config]
サブスクリプションは主にサーバー一覧の読み込みと更新に使い、設定ファイルはルールや関連設定をまとめます。どちらもURL形式の場合がありますが、URLであることだけを基準に読み込み先を判断しないでください。
サブスクリプションURLからサーバー一覧を読み込み、更新する項目です。サブスクリプションは利用中のサービス提供元から入手してください。更新時には提供元の変更に応じて一覧の内容も変わることがあります。サーバー情報を手動で編集する場合は、次回の更新で変更が上書きされないか確認してください。サブスクリプションURLには認証情報が含まれる場合があります。問い合わせ時は機密部分を隠し、そのまま使えるURLを公開しないでください。
サーバーへの接続情報1件を指します。中国語では「ノード」と呼ばれることもありますが、内容はIPアドレスだけではありません。プロトコル、ポート、認証、トランスポート、TLSの設定を組み合わせて使います。同じアドレスに複数の異なる設定を登録できます。個別の共有リンクから読み込めるのは通常1件分の接続情報で、サブスクリプションのようにサーバー一覧を継続更新する機能はありません。
設定ファイル、またはその管理項目を指します。ファイルにはGeneral、Rule、Host、URL Rewriteなどのセクションがあり、それぞれ役割が異なります。サーバー一覧があるだけでは、通信の振り分けルールが有効とは限りません。対象の設定ファイルを選択し、Global Routingのモードも確認してください。編集前に元のファイルを保存し、変更後はセクション名、カンマ、記述順を確認しておくと、問題発生時に元へ戻せます。
条件に一致するリクエストURLを書き換えるなどの処理を行います。RuleセクションのPROXYやDIRECTとは異なります。リクエストに適用されるかどうかは、一致条件と対象のリクエストが機能で処理可能かによって決まります。HTTPSでは、さらに内容の可視性や証明書に関する条件があります。書き換えルールを1つ追加すれば、すべての暗号化されたリクエストに反映されるわけではありません。
[Platform]
ShadowrocketはiPhone、iPad、Mac、Windows、Android、Linuxに対応しています。入手先とインストール形式はデバイスによって異なります。各プラットフォームの入手先はダウンロードガイドをご覧ください。
iPhone / iPad版ShadowrocketはApp Storeから入手できます。システム要件はApp Storeのページでご確認ください。デベロッパ名Shadow Launch Technology Limited、公式アイコン、アプリID 932747118を照合し、名称だけで判断しないようにしてください。iPhone / iPad版は$2.99の買い切り、Mac / Windows / Android / Linux版は無料です。後者4プラットフォームのインストーラーは当サイトの/dl/から入手できます。
Mac用インストーラーを選ぶ際に確認するチップの種類です。「このMacについて」でチップまたはプロセッサ情報を確認してから、対応するdmgを選んでください。Appleシリコン版とIntel版は別製品ではありません。購入年だけで判断しないでください。Macで初回起動時に「開発元を検証できません」と表示された場合は、まず入手元を確認し、「プライバシーとセキュリティ」の「このまま開く」を選択してください。
当サイトから入手したインストーラーであることを確認したうえで、OSの案内に従って初回起動またはインストールを許可する手順です。Windows SmartScreenでは、ファイルの入手元を確認してから「詳細情報 → 実行」を選択できます。Androidでは、apkをダウンロードして開いたアプリに「不明なアプリのインストールを許可」を付与します。Macの「壊れているため開けません」という警告と、Linux AppImageの実行権限では手順が異なります。別のプラットフォーム向けの方法を流用しないでください。
iPhone / iPadの機種変更や再インストール時は、購入時のアカウントでApp Storeの購入済み一覧からShadowrocketを探してください。項目名はOSのバージョンによって異なる場合があります。再度価格が表示された場合は、支払いを繰り返す前に、利用中のアカウントとストアの地域を確認してください。iPhone / iPad版は$2.99の買い切り、Mac / Windows / Android / Linux版は無料です。後者は該当するインストーラーを再度入手してください。