2026年9月11日 · ルールと振り分け · 約8分

Shadowrocketで特定サイトだけプロキシを使う方法|DOMAIN-SUFFIXルールの設定

Shadowrocketで特定サイトだけをプロキシ経由にする設定例。DOMAIN-SUFFIXとPROXYを使い、FINAL,DIRECTで残りの通信を処理します。ルールの順序も解説します。

この記事の概要

特定のサイトだけをプロキシ経由にするには、Global RoutingでConfigを選択し、対象ドメインにPROXYルールを適用し、それ以外の通信をFINAL,DIRECTで処理する必要があります。利用可能な接続設定をすでにお持ちの方向けに、バックアップ、編集、有効化、確認の順で手順を説明します。ドメインの例外を使って、ルールの順序が重要な理由も解説します。

1. 対象範囲を確認:振り分けるのはURLではなくドメイン

ShadowrocketのDOMAIN-SUFFIXは、ドメインのサフィックスに一致します。example.comと設定すると、そのドメイン自体に加えて、www.example.comやapi.example.comなどのサブドメインも対象になります。ブラウザーのアドレスバーに含まれる文字列や、ページのタイトルを照合する機能ではありません。

サイト全体とそのサブドメインを対象にする場合はDOMAIN-SUFFIX、特定のホスト名だけをプロキシ経由にする場合はDOMAINを使います。ドメイン欄にhttps://、パス、クエリパラメーター、ポート番号を入力しないでください。たとえばhttps://example.com:443/accountにアクセスする場合も、ドメイン欄に入力するのはexample.comだけです。

ルール一致するもの一致しないもの
DOMAIN,example.com,PROXYexample.comwww.example.com
DOMAIN-SUFFIX,example.com,PROXYexample.comとそのサブドメインbadexample.com
DOMAIN,api.example.com,DIRECTapi.example.comwww.example.com

ドメイン名はルールの書き方を説明するための例であり、利用可能なプロキシサービスを示すものではありません。ルールが決めるのはリクエストに適用するポリシーであり、接続情報を生成したり、利用できないプロキシを復旧させたりすることはありません。

2. まずバックアップを取り、Configに最小限のルールを記述

作業を始める前に、Homeで利用可能なプロキシ設定があることを確認します。接続情報がすでにお持ちのサブスクリプションに含まれている場合は、必要に応じて更新してから、選択中のプロキシに接続できることを確認してください。ルールの編集とサブスクリプションの更新は別の操作です。前者はリクエストの経路を変更し、後者は通常、接続情報を更新します。

  1. 元の設定を残す。Configを開き、設定の操作から複製を保存するか、バックアップを書き出します。元の設定がどれかを控えておくと、後で復元できます。
  2. 使う設定を開く。Configで対象の設定を開いて編集画面に進み、ルールの項目を探します。テキスト編集を使う場合は、[Rule]を見つけてください。
  3. 既存のルールを確認する。FINALや、広い範囲に一致するドメインルール、別のポリシーを指定するルールがすでにないか確認します。新しいルールを既存のフォールバックルールの後ろに追加するだけでは不十分です。
  4. 保存して有効にする。変更を保存し、Configで有効になっているのが編集した設定であることを確認します。名前の似た別のファイルと取り違えないようにしてください。

最小構成に必要なルールは2つです。以下は設定ファイルのルール部分の例であり、接続設定全体ではありません。既存の設定のルール部分に追加し、ファイル全体を置き換えないでください。

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

1行目はexample.comとそのサブドメインをPROXYに振り分け、最後の行はそれまでのルールに一致しなかったリクエストをDIRECTに振り分けます。PROXYは現在選択中のプロキシを使い、DIRECTは接続先に直接接続します。元の設定でカスタムポリシーグループを使っている場合は、グループ名と実際に選択できる項目を別途確認してください。存在しない名前をルールに指定しないでください。

3. Global RoutingでConfigを選び、ルールを適用する

Homeに戻り、Global Routingを開いてConfigを選択し、接続を開始します。ここで決めるのは全体の処理方法です。Proxyを選んでも「ルールに記載したサイトだけがプロキシ経由」にはなりません。また、Directを選ぶと、この記事で設定する特定サイト向けのプロキシルールは適用されません。

モード処理方法この場合の選び方
Config現在有効な設定のルールに従ってポリシーを決定します。この記事のルールを確認するために選びます。
Proxyすべての通信をプロキシ経由で処理します。「それ以外は直接接続」のルール確認には使いません。
Directすべての通信を直接接続で処理します。指定したドメインに対するPROXYルールの確認には使いません。
Scene設定済みのSceneに従って処理方法を決めます。最初のトラブルシューティングではConfigを選び、Sceneの切り替えによる影響を減らします。

Settings → On Demandは、条件に応じて接続を自動で開始するための設定です。サイトのリストを編集する項目ではありません。On Demandを設定済みでも、現在の設定、Global Routing、選択中のプロキシを確認してください。接続を自動で開始する設定と、接続後の振り分け設定は別のものです。

4. 例外ルールを先に、FINALを最後に配置

ルールは上から順に照合され、一致すると対応するポリシーが適用されます。example.com全体をプロキシ経由にしつつ、assets.example.comだけを直接接続する場合は、より具体的な例外ルールを広範囲に一致するサフィックスルールより前に置きます。逆にすると、リソースのドメインが先にサフィックスルールに一致し、後ろにある例外ルールは適用されません。

[Rule]
DOMAIN,assets.example.com,DIRECT
DOMAIN-SUFFIX,example.com,PROXY
FINAL,DIRECT
3件
ルールの例:ホスト名の例外、ドメインサフィックス、最終フォールバック
2種類
ポリシーの例:PROXYとDIRECT
1件
ルールの末尾に残すFINAL

要点:例外、対象範囲、フォールバックの順に記述

特定のサブドメインの経路が想定と異なる場合は、まず上にあるルールと1つずつ照らし合わせます。プロトコルを変えたり接続設定を作り直したりする前に、ルールの順序を見直してください。

既存のGEOIPやIP-CIDRルールにも注意が必要です。これらはIPアドレスの範囲や地理情報を対象にするもので、サイトのドメインリストとは異なります。IPに関するルールやDNS解決の設定も、一致条件に影響することがあります。「リスト内はプロキシ、リスト外は直接接続」を徹底するには、末尾をFINAL,DIRECTに変更するだけでなく、プロキシを指定する可能性のある既存ルールをすべて確認してください。

5. 3種類のリクエストで確認し、速度テストを振り分け結果と混同しない

保存後に接続を開始し直し、テストするページから新しいリクエストを送信します。ブラウザーで確立済みの接続が再利用されたり、ページキャッシュの影響で再読み込み時に新しいリクエストが発生しなかったりする場合があります。元のタブを閉じて開き直し、アプリ内の接続ログで対象ホストと適用されたポリシーを確認してください。

テスト対象一致する想定のルール想定されるポリシー
www.example.comDOMAIN-SUFFIX,example.com,PROXYPROXY
assets.example.comDOMAIN,assets.example.com,DIRECTDIRECT
リストに含まれない実際のテスト対象ドメインFINAL,DIRECTDIRECT

表は設定例で想定される結果を示したもので、例示したドメインを実際にテストした結果ではありません。実際の確認では、アクセスしたいドメインを使ってください。速度テストで確認できるのは選択中のプロキシへの接続状況であり、特定のWebリクエストがどのルールに一致したかはわかりません。振り分けの正否は、そのリクエストのホスト名、一致したルール、適用されたポリシーを記録で確認してください。

1つのページから複数のドメインにアクセスすることは珍しくありません。本文はメインサイトから読み込まれていても、ログイン、画像、スクリプト、メディアは別のドメインから読み込まれる場合があります。画像だけが表示されない場合は、失敗したリクエストの接続先ホストを確認してから、ルールを追加するか判断してください。リソースが失敗したからといって、ネットワーク全体をProxyに切り替えないでください。

  1. 失敗したリソースの完全なホスト名を記録します。ルールの対象としてページタイトルを使わないでください。
  2. そのホスト名だけを対象にするのか、所属ドメインのすべてのサブドメインも対象にするのかを判断します。
  3. DOMAINまたはDOMAIN-SUFFIXを選び、新しいルールをFINALより前に配置します。
  4. リクエストを再送信し、ポリシーが変わったことを確認してから、リソースが表示されるか確かめます。

6. ルールが一致しているのにアクセスできない場合は、接続エラーを別に確認

「誤ったポリシーに振り分けられる」ことと、「ポリシーは正しいが接続に失敗する」ことは別の問題です。まずリクエストが想定したルールに一致しているか確認してください。すでにPROXYに一致している場合は、具体的な接続エラーを確認します。次に示すのは接続エラーに表示されることがある英語表記です。実際の表示はアプリ内のログで確認してください。

エラー:Connection refused

原因と対処:接続先または中間の機器に接続を拒否されています。ログで接続に失敗した相手がプロキシサーバーかWebサイトかを確認し、該当するアドレス、ポート、サービスの状態を確認してください。接続拒否を、ドメインルールが適用されていないことの証拠と決めつけないでください。

エラー:Operation timed out

原因と対処:制限時間内に接続が完了しませんでした。まず対象リクエストに適用されたポリシーを確認します。そのうえで、選択中のプロキシへの接続可否と、対象サイトへの直接接続の状況を個別に確認し、すでにお持ちのサービスプロバイダーが提供したアドレスとポートも確認してください。

同じ接続先へのアクセスがDIRECTでは失敗し、PROXYでは成功しても、2つの経路で結果が異なることを示すだけです。すべてのサイトにプロキシが必要だとは判断できません。どちらの経路でも失敗する場合は、ルールを重複して追加するのではなく、ドメインの名前解決、接続先サービスの状態、ネットワーク環境を確認してください。

ルールを設定したのに、ほかのサイトもプロキシ経由になるのはなぜですか?

まずHome → Global RoutingでConfigが選択されていることを確認し、次にConfigで現在の設定にほかのルールがないか確認します。より広い範囲に一致するPROXYルールがあると、リスト外のリクエストにも適用されることがあります。末尾のFINAL,DIRECTが処理するのは、それより前のルールに一致しなかったリクエストだけです。

1つのサブドメインだけをプロキシ経由にする場合、サフィックスを使いますか?

api.example.comだけを対象にするなら、DOMAIN,api.example.com,PROXYを記述します。その下位のサブドメインも対象にする場合は、DOMAIN-SUFFIX,api.example.com,PROXYを検討してください。2つのルールでは一致する範囲が異なります。

同じサイトでも、ログインページだけ開けない場合はどうすればよいですか?

ログイン操作をもう一度行い、接続ログでログインサービスが実際に使っているホスト名を確認します。設定済みのドメインサフィックスに含まれていない場合は、必要に応じて独立したルールを追加してください。ログインURLのパスやクエリパラメーターをDOMAIN-SUFFIXに入力しないでください。

サブスクリプションの更新後にルールの動作が変わったのはなぜですか?

まずHomeで、以前選択していたプロキシが引き続き存在し、利用可能か確認します。次にConfigで現在有効なファイルを確認してください。リモート設定も更新した場合は、バックアップと照合してルールが置き換わっていないか確認します。内容を確認したローカルルールを復元してから、もう一度テストしてください。

確認する順序は変えません。有効な設定、Configの選択、ルールの一致範囲と順序、リクエストに適用されたポリシー、接続エラーの順に確認します。設定の問題とネットワークの問題を切り分け、変更は一度に1つにすると、どの操作が影響したか判断しやすくなります。

ShadowrocketをApp Storeでダウンロード