← ブログに戻る

必要なサイト専用プロキシ:sing-boxとmihomoでのドメインルーティング

有料プロキシを通じてすべてのトラフィックを流す必要はありません。sing-boxとmihomo(Clash Meta)でのドメインによるルーティングを解説します:最新バージョンに対応した設定、サイトやプログラムに関するルール、同時に複数の国、そして罠 — QUIC、DNSリーク、アンチデテクトとの衝突、セッションの途中でのローテーション。

📅2026年10月13日
必要なサイト専用プロキシ:sing-boxとmihomoでのドメインルーティング

典型的な状況:ドイツのAmazonの店舗はドイツのIPで開く必要があり、アメリカのサプライヤーのアカウントはアメリカのIPで開く必要がありますが、YouTube、作業用メッセンジャー、システムの更新は直接行うことができます。「全システムでプロキシを使用する」ことは不便で高価です:プロキシを介してギガバイトを支払うと、すべてのバックグラウンドトラフィックが消費されます。手動でオンオフするのは、最も不適切な瞬間に忘れてしまいます。解決策はドメインによるルーティングです:ローカルクライアントがどのサイトをどのプロキシを介して通過させるか、または直接通過させるかを自分で決定します。以下は、2026年の最も人気のあるエンジンであるsing-boxとmihomo(旧Clash Meta)の作業構成と、通常スキームが壊れる罠の分析です。

ブラウザのプロキシやPACファイルよりも何が良いのか

ブラウザの設定や拡張機能のプロキシは、そのブラウザに対してのみ機能します。PACファイルはドメインによってプロキシを選択できますが、ブラウザやシステム設定内に存在するため、マーケットプレイスのデスクトップクライアント、Telegram、Pythonのスクリプト、またはコンソールユーティリティはそれを無視します。

sing-boxとmihomoは、より低いレベルで動作します:仮想ネットワークインターフェースを立ち上げ(TUNモード)、すべてのプログラムのトラフィックを通過させます。その後、各接続はルールのリストに従って進みます:ドメイン、IPサブネット、プロセス名、ポート。ルールが一致した場合、接続は指定された出口(必要な国のプロキシまたは直接接続)に送信されます。

実際に何が得られるのか:

  • トラフィックの節約。 有料プロキシを介して通過するのは作業用サイトのみで、動画、更新、クラウドバックアップは直接行われます。
  • 複数の国を同時に。 amazon.deはドイツの出口を通り、walmart.comはアメリカの出口を通ります。切り替えは不要です。
  • プログラムによるルール。 特定のプロセス全体をプロキシに送信することができます(例えば、デスクトップクライアントやスクリプトなど)、他のものには影響を与えません。
  • 人的エラーの減少。 プロキシがオンになっているかどうかを覚えておく必要はありません。サイトは常に「正しい」IPで開かれます。

必要なもの

  • SOCKS5またはHTTPをサポートし、ユーザー名とパスワードによる認証が必要なプロキシ。両方のエンジンは自動的にユーザー名とパスワードを送信できるため、ローカルゲートウェイは必要ありません。
  • クライアント:sing-boxの場合は、Android、iOS、macOS用の公式アプリまたはWindows/Linux用のコア;mihomoの場合は、Clash Verge RevやFlClashなどのグラフィカルインターフェース。
  • プロキシを介して通過する必要があるドメインのリスト。事前に収集しておく必要があります — その詳細は以下にあります。

オプション1:sing-box(バージョン1.12以降)

バージョンに関する重要な注意。インターネット上の多くの構成は古いsing-box用に書かれており、最新のビルドでは起動しません。公式の古い機能リストによれば、geositeとgeoipは1.12.0で削除されました(その代わりにrule-set)、ルール内のoutboundフィールドは1.11以降にアクション("action": "route")に置き換えられ、古いDNSサーバー形式は1.14.0で削除され、特別な出口blockとdnsは1.13.0で削除されました。執筆時点での最新の安定版は1.14です。

最小限の作業構成:ドイツのレジデントプロキシを数ドメイン用に設定し、その他は直接接続します。

{
  "log": { "level": "info" },
  "dns": {
    "servers": [ { "type": "local", "tag": "local" } ]
  },
  "inbounds": [
    {
      "type": "tun",
      "tag": "tun-in",
      "address": [ "172.18.0.1/30" ],
      "auto_route": true,
      "strict_route": true
    }
  ],
  "outbounds": [
    {
      "type": "socks",
      "tag": "resi-de",
      "server": "ХОСТ_ИЗ_КАБИНЕТА",
      "server_port": 1080,
      "username": "ЛОГИН",
      "password": "ПАРОЛЬ"
    },
    { "type": "direct", "tag": "direct" }
  ],
  "route": {
    "auto_detect_interface": true,
    "default_domain_resolver": "local",
    "rules": [
      { "action": "sniff" },
      { "protocol": "dns", "action": "hijack-dns" },
      {
        "network": "udp",
        "port": 443,
        "domain_suffix": [ "amazon.de", "otto.de" ],
        "action": "reject"
      },
      {
        "domain_suffix": [ "amazon.de", "otto.de", "ipinfo.io" ],
        "action": "route",
        "outbound": "resi-de"
      }
    ],
    "final": "direct"
  }
}

ホスト、ポート、ユーザー名、パスワードはプロバイダーのアカウントから挿入してください。ポート1080はここでは例として示されています。

各部分の役割

  1. TUN入力(auto_route)は、システム全体のトラフィックをsing-boxにルーティングします。strict_routeはWindowsでDNSリークに対するファイアウォールルールを追加します(ドキュメントは、これがVirtualBoxなどの一部のプログラムを壊す可能性があることを警告しています)。
  2. "action": "sniff" — 重要な行です。TUNを介して接続はIPアドレスに来ますが、ドメインには来ません。スニッフィングはTLSハンドシェイク(SNI)またはHTTPヘッダーからサイト名を取得し、その後にdomain_suffixルールが発動します。この行がないと、ドメインルールは静かに機能しません — 「構成が適用されない」一般的な理由です。
  3. hijack-dnsはシステムのDNSリクエストをキャッチし、それをsing-boxのDNSモジュールに渡します。
  4. UDP 443のrejectルールは、プロキシされるドメインに対してQUIC(HTTP/3)を無効にします。ブラウザは通常のTCP上のHTTPSに戻り、それがプロキシを介して通過します。理由は罠のセクションで説明します。
  5. domain_suffixはドメインとそのすべてのサブドメインをキャッチします:amazon.deはwww.amazon.deとsellercentral.amazon.deの両方をカバーします。
  6. auto_detect_interfaceはsing-boxの出力接続を物理ネットワークアダプタにバインドします。これがないと、プロキシサーバーへのトラフィックが再びTUNに戻り、ルーティングループが発生します。
  7. final: direct — どのルールにも一致しなかったすべてのものは直接行きます。

複数の国とプログラムによるルール

2番目の出口は、別のsocksオブジェクトとして追加され、独自のタグ(例えば、resi-us)と別のルールを持ちます。プログラム全体をプロキシに送信するには、process_nameフィールドを持つルールを使用できます(Windows、macOS、Linuxで動作します):

{
  "process_name": [ "python.exe" ],
  "action": "route",
  "outbound": "resi-us"
}

ルールは上から下へと最初の一致までチェックされるため、特定のルールは一般的なルールの上に置いてください。

オプション2:mihomo(Clash Meta)

mihomoは成熟したグラフィカルインターフェースがあり、構成はYAMLで書かれているため、読みやすいという利点があります。同じシナリオ:

tun:
  enable: true
  stack: gvisor
  auto-route: true
  auto-detect-interface: true
  dns-hijack:
    - any:53

dns:
  enable: true
  enhanced-mode: fake-ip
  nameserver:
    - https://1.1.1.1/dns-query

proxies:
  - name: resi-de
    type: socks5
    server: ХОСТ_ИЗ_КАБИНЕТА
    port: 1080
    username: ЛОГИН
    password: ПАРОЛЬ

rule-providers:
  work-de:
    type: inline
    behavior: classical
    payload:
      - DOMAIN-SUFFIX,amazon.de
      - DOMAIN-SUFFIX,otto.de
      - DOMAIN-SUFFIX,ipinfo.io

rules:
  - RULE-SET,work-de,resi-de
  - MATCH,DIRECT

sing-boxとの主な違い:

  • fake-ipモードは、「接続がIPに来て、ドメインには来ない」という問題を別の方法で解決します:mihomoはDNSリクエストに対して偽のアドレスで応答し、それがどのドメインに対応するかを記憶し、そのドメインに基づいてルールを適用します。実際のサイトのアドレスは、プロキシサーバーが自分の側で知ります。
  • ルールセット(rule-providers)は、別のリストとして保持するのが便利です。タイプinlineは構成内にドメインを直接保持し、タイプhttpはリンクからリストを引き出し、間隔で更新します。例えば、リポジトリ内のチームの共通リストです。
  • MATCHはfinalの類似です:すべてのその他は直接行きます。
  • プログラムによるルールにはPROCESS-NAMEがあり、Androidではアプリケーションのパッケージ名を受け取ります。

ドメインのリストを収集し、必要なものを見逃さない方法

ウェブサイトは単一のドメインではありません。マーケットプレイスはCDNから画像を読み込み、スクリプトは別のドメインから、認証は第三のドメインに存在する可能性があります。主要なドメインがドイツのIPを介して通過し、ログインドメインが本物のIPから来ると、アンチフロードは同一セッション内で異なる2つのアドレスを認識します。

  1. 開発者ツール(F12 → ネットワークタブ)を使用してサイトを開き、標準的なシナリオを実行します:ログイン、検索、商品カード、アカウント。
  2. Domain列からすべてのドメインをメモします。サードパーティのカウンターや広告は追加しなくてもよいですが、サービス自体のドメイン(CDNや認証サーバーを含む)は必ず追加してください。
  3. それらをルールに追加し、シナリオを再実行します。sing-boxのログ(レベルinfo)やmihomoの接続タブで、各接続に対してどのルールが発動したかを確認できます。
  4. リストには「コントロール」ドメイン(例えばipinfo.io)を保持してください:これはプロキシのIPを示し、リストに含まれていない隣接サービスは本物のIPを示します。これにより、ルーティングが機能しているかどうかを瞬時に確認できます。

スキームが壊れる罠

1. QUICがプロキシをバイパスする

Chromeや他のブラウザは、大規模なサイトにHTTP/3、つまりUDPを介してアクセスすることを好みます。多くのプロキシプロバイダーは、SOCKS5を介してUDPをサポートしていないか、制限されています。最悪の場合、接続は正しい場所に行かず、最良の場合は、ブラウザがTCPに戻るまでサイトが遅延します。したがって、上記のsing-boxの構成では、作業ドメインのUDPポート443が明示的に拒否されています。mihomoでは、ブラウザでQUICを無効にすることで同様の効果を得ることができます(フラグchrome://flags/#enable-quic)。

2. プロバイダーへのDNSリーク

作業ドメインがインターネットプロバイダーのDNSを介してローカルに解決される場合、サイト自体はそれを認識しません:接続は依然としてプロキシのIPから来ます。しかし、プロバイダーやDNSを見ている誰もが、あなたがどのサイトを開いているかを知ることができます。mihomoのfake-ipモードや、sing-boxでのスニッフィング後のドメインのプロキシサーバーへの送信は、この問題を軽減します。DNSリーク防止の方法と検証については、DNSリーク防止の方法の分析で詳しく説明しています。

3. 他のVPNやアンチデテクトとの競合

2つのTUNインターフェースを同時に使用すると、ルーティングに混乱が生じます。アンチデテクトブラウザのプロファイルにすでに独自のプロキシがある場合、そのトラフィックはTUNから外に出す方が良いです:プロセス名によるルールを使用してブラウザをdirectに送信し、各プロファイルがそれぞれのプロキシを通過するようにします。

4. システムルーティングはアンチデテクトの代わりにはならない

コンピュータ上のすべてのプログラムは、1つのIPでドメインに接続します。1つの店舗では問題ありませんが、1つのプラットフォームで10のアカウントがある場合は問題です:プラットフォームは同じブラウザのフィンガープリンティングと1つのアドレスを認識します。マルチアカウントのために、ドメインによるルーティングは補助的なツールであり、「別のプロファイル + 別のプロキシ」の組み合わせの代わりにはなりません。

5. セッション中のIPのローテーション

プロキシが各リクエストごとにIPを変更するように設定されている場合、認証のあるサイトは各画像の読み込み時に新しいアドレスを認識します。アカウント、店舗、ソーシャルメディア用には、stickyセッション(作業中の固定IP)または数十分の間隔でタイマーによるローテーションを使用してください。

6. 必要なプロトコルをサポートしないプロキシ

プロバイダーがHTTPプロキシのみを提供する場合、sing-boxではhttpタイプの出口を使用し、mihomoではtype: httpを使用します。両方のエンジンはHTTP用のログインとパスワードをサポートしています。ただし、プログラムが認証付きプロキシで動作できない場合、TUNを立ち上げたくない場合は、gost、3proxy、またはSquidのローカルゲートウェイが適しています。

ルールにどのプロキシを設定するか

  • マーケットプレイス、ソーシャルメディア、販売者のアカウント、広告アカウント — 必要な国のレジデントプロキシでstickyセッションを使用します。自宅のプロバイダーのアドレスは、アンチフロードに最も疑問を抱かれません。
  • 最も厳しい検証を行うプラットフォーム(モバイルアプリ、TikTok、Instagram) — モバイルプロキシ:1つのIPオペレーターから多くの実際の加入者が同時にネットワークに接続します。
  • API、ドキュメント、パッケージリポジトリ、アンチボット保護のないサービス — データセンターのプロキシ:これらは安価で迅速であり、そのようなタスクには「家庭用」IPは必要ありません。

構成内に異なるタイプの複数の出口を設け、それらにドメインを分散させると便利で、最も高価なものを通過させる必要はありません。

結論

ドメインによるルーティングは、プロキシを「スイッチ」から正確なツールに変えます:必要なサイトは常に必要なIPで開かれ、残りのトラフィックは支払ったギガバイトを消費しません。スタートには30行の構成で十分です。重要なのは、スニッフィング(またはfake-ip)を忘れず、プロキシされるドメインのQUICを無効にし、サービスの完全なドメインリストを収集し、最新の構文を使用することです:sing-boxの1.12以前の構成は最新のバージョンでは起動しません。