Clash Verge RevのmacOS版でFake-IP DNSを設定する方法
macOSのClash Verge RevでFake-IP DNSを使うための手順をまとめました。設定ファイルの編集から反映確認まで、画面上の操作に沿って説明するので、DNS設定が初めてでも迷わず進められます。
Fake-IP DNSの仕組みとmacOSで使う理由
Clash Verge RevのFake-IP DNSは、ドメイン名を通常の実IPアドレスへ変換してからアプリへ返すのではなく、Clashが管理する仮想的なIPアドレスを返す仕組みです。mihomoカーネルでは、通常 198.18.0.1/16 の予約アドレス帯がFake-IP用に使われます。アプリがそのアドレスへ接続すると、Clashは内部の対応表から元のドメイン名を確認し、設定したルールに従って直接接続またはプロキシ接続へ振り分けます。
macOSのシステムプロキシだけを有効にした場合、HTTPやHTTPSに対応したアプリの通信はClashへ送れますが、DNS問い合わせまで完全に管理できるとは限りません。アプリが独自の名前解決を行ったり、UDP 53番ポートへ直接問い合わせたりすると、システム側のDNSが使われる可能性があります。Fake-IPとTUNを組み合わせると、ドメイン解決とアプリの接続を同じ経路で扱いやすくなり、ルール分岐の一貫性も高まります。
ただし、Fake-IPはすべての環境で無条件に最適というわけではありません。IPアドレスを直接指定するアプリ、ローカルネットワーク機器、特定のゲームや認証ソフトでは互換性問題が発生することがあります。そのため、最初は対象範囲を確認し、必要なドメインを fake-ip-filter に追加しながら運用するのが安全です。
設定前に確認する項目
設定を始める前に、Clash Verge Revがmihomoカーネルで動作していることを確認します。Fake-IP、TUN、DNSの詳細項目はカーネルやクライアントのバージョンによって表示名が異なるため、画面上の「設定」「Profiles」「カーネル」などのページで現在の構成を確認してください。無印Clash向けの古い設定をそのまま使うと、mihomo専用の項目が認識されない場合があります。
- Clash Verge Revを更新する。 macOSのバージョンに対応したアプリを使用し、古いカーネルを選択していないことを確認します。
- 現在のプロファイルをバックアップする。 設定ファイルを直接編集する前に、元のYAMLを別名で保存します。インデントを誤った場合でも、すぐに元へ戻せます。
- 他のVPNやプロキシを停止する。別のVPN、DNSフィルター、ネットワーク監視ツールが同時に動作していると、問い合わせ経路やルーティング結果を正しく確認できません。
- 管理者パスワードを用意する。TUNを初めて有効にするときは、macOSがネットワーク拡張や特権ヘルパーの許可を求めることがあります。
編集するのは現在有効なプロファイル
Clash Verge Revには複数のプロファイルを登録できます。別のファイルを編集しても、画面上で有効化されているプロファイルに変更がなければ動作は変わりません。編集後は必ずProfiles画面で対象ファイルを選択し、再読み込みまたは有効化を実行してください。
設定ファイルにFake-IP DNSを記述する
Clash Verge Revのプロファイル編集画面、またはプロファイルのYAML編集機能を開きます。既存の dns: セクションがある場合は、同じ階層に項目を追加してください。YAMLでは空白の数が意味を持つため、タブではなく半角スペースを使い、インデントをそろえる必要があります。次はmihomoで使える基本構成の一例です。
dns:
enable: true
listen: 0.0.0.0:1053
ipv6: false
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
fake-ip-filter:
- '*.lan'
- '*.local'
- localhost.ptlogin2.qq.com
- +.msftconnecttest.com
- +.msftncsi.com
nameserver:
- https://223.5.5.5/dns-query
- https://1.1.1.1/dns-query
fallback:
- https://8.8.8.8/dns-query
fallback-filter:
geoip: true
geoip-code: CN
enable: trueはDNSモジュール全体を有効にするスイッチです。enhanced-mode: fake-ipがFake-IP方式を指定し、fake-ip-rangeが仮想アドレスの範囲を決めます。listenはClashがDNS問い合わせを受け付けるローカル待受アドレスです。すでに別のアプリが53番ポートを使用しているmacOSでは、例のように1053番などの空いているポートを使う構成が扱いやすい場合があります。
nameserverは通常の名前解決に使うアップストリーム、fallbackは別経路の結果を取得するアップストリームです。HTTPS形式のDNSを指定すると、通常の平文UDP 53より問い合わせ内容を保護しやすくなります。実際の接続先やルール方針に合わせて変更できますが、存在しないDNSサーバーや、ネットワークから到達できないサーバーを多数登録するのは避けてください。
macOS上で反映する手順
YAMLを保存しただけでは、実行中のカーネルへ変更が反映されないことがあります。次の順番でプロファイル、DNS、TUN、システムプロキシを確認します。クライアントの表示はビルドによって少し異なりますが、役割はほぼ同じです。
- Clash Verge Revの「Profiles」または「プロファイル」を開き、編集したYAMLを選択して構文チェックを実行します。エラーが表示された場合は、まずインデント、コロン、引用符の対応を確認します。
- プロファイルを保存して再読み込みし、現在のプロファイルとして有効化します。切り替え後に画面の設定値が古いままなら、一度別のプロファイルを選択してから戻すと読み込み状態を確認できます。
- 設定画面のDNS欄でDNS機能が有効になっていること、Enhanced Modeが「Fake-IP」になっていることを確認します。画面操作で設定を上書きするクライアントでは、YAMLの値とGUIの表示が一致しているかを見ます。
- 「TUN Mode」または「TUN」を有効にし、macOSが表示するネットワーク拡張、VPN構成、管理者権限の確認を許可します。許可後にClashを再起動するよう求められた場合は、指示に従います。
- 必要に応じて「Set as System Proxy」または「システムプロキシ」をオンにします。TUNは端末全体の通信を取り込むための機能、システムプロキシは対応アプリのHTTP・HTTPS設定を切り替える機能であり、同じものではありません。
- ブラウザを完全に終了して起動し直し、DNSキャッシュの影響を減らします。macOS側に残ったキャッシュを確認する場合は、ターミナルで
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponderを実行します。
TUNの許可が表示されない場合
システム設定の「一般 › ログイン項目と機能拡張」や「プライバシーとセキュリティ」を確認し、Clash Verge Revのネットワーク拡張がブロックされていないか確認します。別のVPNが仮想インターフェースを占有している場合は、先にそのVPNを終了してからClashを再起動してください。
Fake-IPの例外とルールを調整する
Fake-IPの対象外にしたいドメインは fake-ip-filter に記述します。ローカル機器でよく使われる *.lan、*.local、ルーターの管理用ドメインなどは、実際のローカルアドレスを返したほうが安定します。企業内システム、学校の認証ページ、プリンターやNASの名前解決も同様です。対象が分からないまま広い範囲を除外すると、Fake-IPの利点が小さくなるため、問題が起きたドメインだけを追加してください。
Fake-IPを使う場合、ルールの確認にはドメイン情報が重要です。mihomoのスニッフィング機能を有効にすると、TLSのSNIやHTTPのHostからドメイン名を取得しやすくなります。IP-CIDRルールだけに依存している構成では、Fake-IPの仮想アドレスが意図した国別ルールに一致しないことがあるため、可能であれば DOMAIN-SUFFIX、GEOSITE、ルールプロバイダーなどのドメイン系ルールを優先します。
sniffer:
enable: true
sniff:
HTTP:
ports: [80, 8080-8880]
TLS:
ports: [443, 8443]
DNS関連の通信を直接接続にするルールを不用意に追加するのも避けてください。特にDNSポートへ向けた通信を強制的に DIRECT にすると、設定意図と異なる経路で問い合わせが発生する場合があります。まずは既存のルールプロバイダーと最終行の MATCH を確認し、DNS、ローカルネットワーク、プロキシ対象の順序が崩れていないか確認します。
Fake-IPが有効になったか確認する
反映確認では、単にウェブサイトが開くかだけで判断しません。Clashの接続画面、DNSログ、ターミナルの結果を組み合わせると、Fake-IPが機能しているかを切り分けやすくなります。確認中はブラウザのセキュアDNSを一時的に無効にしてください。ブラウザ独自のDoHが有効だと、ClashのDNSログに問い合わせが出ないことがあります。
- Clash Verge Revの「Logs」または「接続」画面を開き、DNSログを表示できる場合はログレベルを一時的にdebugへ変更します。
- ターミナルで
nslookup example.comまたはdig example.comを実行します。テスト用のドメインには、実際にアクセスしても問題のない明らかなサンプルドメインを使います。 - プロキシ経由で解析された対象では、応答アドレスとして
198.18.x.xのようなFake-IPが表示されることがあります。必ずしも同じ末尾になるとは限らないため、範囲全体で判断します。 - Clashの接続ログで対象ドメインが確認でき、選択した策略グループへ送られているかを見ます。実IPだけが表示され、DNSログに何も記録されない場合は、OSやアプリがClashを迂回している可能性があります。
- ローカル機器へアクセスできることも確認します。プリンター、NAS、ルーター管理画面が開けなくなった場合は、そのドメインをFake-IPの例外へ追加します。
| 確認結果 | 考えられる状態 | 対処 |
|---|---|---|
198.18.x.x が返り、接続ログにも表示される | Fake-IPとClashのルール処理が有効 | 通常の利用を続ける |
| 実IPが返るが、ClashのDNSログに記録される | redir-host、例外指定、または別のDNS設定が有効 | enhanced-modeとfake-ip-filterを確認する |
| DNSログに問い合わせがない | ブラウザのDoHやアプリ独自DNSがClashを迂回 | アプリ側のセキュアDNSを確認し、TUNを再確認する |
| ローカル機器だけ接続できない | ローカルドメインがFake-IPへ変換されている | *.lanや対象ドメインを例外に追加する |
反映後に起きやすい問題と戻し方
Fake-IPへ切り替えた後に一部のサイトやアプリだけが開かなくなった場合、すぐにDNSサーバーを大量に変更するのではなく、問題の対象を特定します。まずそのドメインを fake-ip-filter に一時追加して動作を比較してください。追加後に改善するなら互換性が原因であり、例外として維持するか、アプリ側の接続方式を確認します。
インターネット全体が開かなくなった場合は、Fake-IPそのものではなく、TUNの権限、競合するVPN、DNSアップストリームへの到達性、YAMLの構文エラーを順番に確認します。Clash Verge Revの接続状態が停止中なら、DNSの項目だけを編集しても効果はありません。まずプロファイルが有効で、mihomoカーネルが起動していることを確認してください。
切り戻すときは、設定ファイルのバックアップを復元するか、enhanced-mode: redir-host に変更してプロファイルを再読み込みします。その後、TUNとシステムプロキシをいったんオフにしてから再度オンにすると、古い仮想インターフェースやmacOSのプロキシ状態を整理できます。debugログは確認が終わったら通常のログレベルへ戻し、不要な例外を残さないよう設定を整理してください。
安定運用のポイント
Fake-IP、TUN、システムプロキシはそれぞれ役割が違います。Fake-IPはDNS応答方式、TUNは端末全体の取り込み、システムプロキシは対応アプリへのプロキシ設定です。3つを混同せず、変更する項目を一つずつ限定して確認すると、macOSでのDNSトラブルを効率よく切り分けられます。
Clash Verge Revの設定を始める
Fake-IP DNSを設定した後は、プロファイルの更新、ルールの優先順位、TUNの許可状態を定期的に確認すると安定した運用につながります。クライアントをまだ導入していない場合はダウンロードページで対応版を確認し、基本操作から進めてください。
Clash クライアントをダウンロード
通信振り分けを行うには、まずクライアントが通信を引き継ぐ必要があります。ダウンロードセンターでお使いのプラットフォームのクライアントを選び、チュートリアルに戻ってシステムプロキシまたは TUN の引き継ぎを完了させてください。