ネットワーク実践 macOS タグ: Clash Verge Rev TUN システム拡張 Mihomo

Clash Verge Rev で macOS のTUN モードをオンにする:拡張機能の許可とルート確認まで

macOS では TUN(仮想インターフェース) を有効化すると、ブラウザに限らずターミナルや一部アプリの外向き通信も扱いやすくなる一方、システム拡張Network Extension まわりの許可が前提になります。本稿は Windows 版の TUN 断線トラブルシュートではなく、Mac 上で Clash Verge Rev を使うときに TUN をどう有効化し、YAML とルーティングで「乗ったか」を短時間で検証するかに絞ります。最初の導線は Apple Silicon/macOS の導入記事、プロキシ周りの権限だけ先に見たい場合は システムプロキシと Network Extension と併読してください。

読了時間:約16分
Clash 編集部

1. TUN が必要になる状況と限界

Clash Verge Rev は裏側で Mihomo(Clash Meta) 系のコアを動かし、購読から落ちてきた YAML に従ってルール分流します。そのうえでトラフィックをコアへ載せる方法として、代表的なのがシステムプロキシ(HTTP/SOCKS へのアプリケーション挙動)と、より下位から経路を捕まえる TUN モードです。ブラウザ中心でよく、かつクライアントがプロキシ設定をうまく書き換えられるならシステムプロキシだけでも足りることが多いのですが、プロキシ非対応の CLI ツール独自スタックのアプリまで含めて同じ方針で扱いたいときは、TUN 側にトラフィックを載せる考え方が現実的になります。

一方で macOS では TUN を扱うコンポーネントが システム拡張ネットワーク拡張の枠に乗るため、UI で「オン」にしただけでは完結せず、プライバシーとセキュリティログイン項目と拡張機能の画面で開発元を許可する工程が挟まるのが普通です。初回だけ通ればあとは楽になる一方、企業端末の MDM や管理者ポリシーで止まる場合もある点は押さえておいてください。

ヒント:本稿の焦点は macOS 上の「有効化と基礎確認」です。Windows で TUN 有効後に通信が落ちるなどの Firewall/仮想スイッチ周りは 別記事で深掘りしています。混ぜないほど切り分けが速くなります。

2. 始める前の確認

作業は短くても、順番が崩れると「許可したはずが効いていない」ように見えます。まずアプリ本体を最新系に近づけることと、使用中のプロファイルが購読と整合していることを確認してください。Mihomo ログに致命的な構文エラーがある状態で TUN を足しても、期待した経路には乗りません。

次に、同時常駐する VPN や広告ブロッカー型の仮想ドライバ、パケットを握るタイプのセキュリティ製品があれば、切り分けのためにいったん止めるのが安全です。macOS は複数の拡張がルートやインターフェースを奪い合うと、どれが有効かログを読まないと分からなくなります。他社 VPNClash の二重化は、意図した挙動にならない典型例です。

管理付き Mac では、システム拡張の承認自体がユーザー操作でも許可されないケースがあります。その場合は IT ポリシーの確認が先で、アプリ側の設定以前の問題になります。

注意:TUN はルーティングテーブルに手を入れやすいモードです。未知の購読・未知のルールをそのまま信用せず、まずは信頼できるプロファイルで試し、ログの policy 行と実通信のホスト名を対照させてください。

3. Verge Rev で TUN をオンにする

Clash Verge Rev の具体的なメニュー名はリリースで多少変わりますが、考え方は一定です。設定または詳細オプションに相当する画面で、TUN仮想インタフェースシステムスタック強化などと書かれたトグルを探し、コアが再起動してもエラーなく立ち上がるかを見ます。ここでオンにした瞬間に macOS 側から「拡張機能を許可してください」という導線が出ることも多いので、先に許可画面を閉じないようにしてください。

コアの起動ログを併読する

TUN をオンにしたあと、Mihomo のログに Start TUN listening やインターフェース名(utun 系)に関する行が増えるかを確認すると、UI と実体のズレを早く潰せます。逆に権限不足やスタック指定不整合のときは、ここでエラーが一度に出ることがあります。

既に TUN をオフに戻したい場合も、トグルを切ったうえでログにリスナ停止が出るかを一度見ておくと、次回の起動時の迷子が減ります。

4. システム拡張と Network Extension を許可する

macOS Ventura 以降の新しい設定画面では、プライバシーとセキュリティのなかにシステム拡張開発元の許可に関する項目がまとまりがちです。従来の「セキュリティ」セクションでのブロック解除や、復旧/Reduced Security まわりの文言はハードウェア世代によって違うため、画面に出た Apple 公式の案内に従うのがもっとも安全です。

初回に「許可」を押し損ねると、あとから設定を開いてもどのアプリの拡張を有効にするかが分かりにくい、という事象があり得ます。いったん Clash Verge Rev を終了し、システム設定で拡張機能の一覧を開き、該当エントリをオンにしてからアプリを再起動する流れが安定しやすいです。必要であれば Mac を再起動してからもう一度トグルを操作してください。

ログイン項目と拡張機能に関連する画面で、バックグラウンド実行が制限されていると、スリープ復帰後にだけ TUN が死ぬ、というパターンもあります。システムプロキシ記事 で触れたログイン項目の話と同じく、省電力・常駐方針が絡みます。

5. YAML の tun ブロックを確認する

GUI のトグルがmixin上書きレイヤによって tun: を自動注入する設計の場合、ファイル上に無いままでも動くことがあります。しかし期待どおりに立ち上がらないときは、実際にコアへ渡っている合成後の設定を確認し、必要なら購読側かローカル上書きに tun を明示します。Mihomo 系では典型的に enablestackauto-routedns-hijack などが議論の中心になります。

ダイアログやドキュメントの用語は 公式ドキュメント と突き合わせると安全です。特に strict-route や DNS の取り扱いは、Fake-IP 構成と組み合わさったときに体感が大きく変わります。

次はあくまで一般的な例示です。自宅のプロファイルに合わせて値は変えてください。

tun:
  enable: true
  stack: system
  auto-route: true
  strict-route: false
  dns-hijack:
    - any:53

stackgvisormixed へ変える運用もありますが、CPU 負荷と互換性のトレードオフがあります。段階的に試すなら、まずは環境依存の少ない指定からが無難です。

6. ルートと疎通で効いたか検証する

TUN が生きているかは、クライアントのログOS のルーティングの突き合わせが本命です。ターミナルから netstat -nrroute -n get default(環境によりコマンドが異なります)で、デフォルト経路や utun 系インターフェース周辺の変化を眺めると、思ったより早く「勝ち/負け」が分かります。GUI だけでは見えないレイヤなので、ここを飛ばさないのがコツです。

外向き疎通では、ブラウザの IP 確認ページに限らず、同名のホストを CLI から curl して挙動を比べると、プロキシ非対応ツールが TUN に載ったかを切り分けやすくなります。ターミナルとプロキシ環境変数 の記事では HTTP プロキシ前提の話が多いですが、TUN を使う場合は「環境変数を増やさずに端末アプリも同じ出口へ」の確認として読み替えられます。

見ている指標 よい兆候/次に見る場所
コアのログ TUN 関連の開始/停止行が操作に同期する。不可解な権限エラーが消えている。
ルートと interface 期待する utun 経由の記述が増減する。別 VPN がデフォルトを奪っていない。
ブラウザと CLI の差 同宛先への curl とブラウザの出口が極端に食い違わない。
DNS の挙動 Fake-IP/redir-host とクライアントの DNS 設定が矛盾しておらず、名前解決がループしていない。

ここで出口は合っているのに特定サービスだけ失敗する場合は、多くがルール順と SNI、あるいはプロバイダ側の都合です。TUN 以前のレイヤとして DNS を疑ってください。

7. システムプロキシとの関係

TUN をオンにしたからといって、常にシステムプロキシをオフにしろ、というルールはありません。実際の運用ではどちらか一方だけに絞るチームと、ブラウザはプロキシ・その他は TUN という住み分けをするチームの両方が見られます。大事なのは、同じ接続が二重に別々の経路へ衝突しないようにすることと、トラブル時に切り分けの変数を一つずつにすることです。

システムプロキシが有効なまま TUN も動く局面では、ログ上の policy と実際のアプリ挙動の対応を丁寧に見ないと混乱します。迷ったらいったんシステムプロキシのみ/TUN のみ、と単純化して再現テストするのが早道です。

8. よくある質問

TUN をオンにするとシステムプロキシは不要ですか?

排他的ではありません。載せたいアプリ集合と DNS/ルール設計に応じて選びます。併用するならログで挙動を一緒に見てください。

拡張機能を許可したのに TUN が立ちません。

競合ソフト、権限ダイアログの取りこぼし、MDM 制限を疑います。Clash Verge Rev と OS を再起動し、拡張の一覧から該当エントリを再確認してください。

YAML に tun が無いのですが。

mixin で後付けされている可能性があります。合成結果を確認するか、明示的に tun: を書き、他セクションとのポート衝突を避けてください。

9. まとめ

Clash Verge RevmacOSTUN モードを実用に乗せるには、UI のトグルに加えてシステム拡張/Network Extensionの承認、YAMLtun 定義、そしてルーティングとログの突き合わせまでを一連の作業として扱うのが近道です。片方だけ片付けても「オンなのに挙動が変わらない」ように見えやすく、権限と設定ファイルの両方を短いサイクルで回すほど安定感は上がります。

汎用の小さなプロキシツールは手早い一方、購読のマージやルールプロバイダ、DNS、Fake-IP の整合まで含めると設定が散らばりがちです。ClashMihomo のようなルールエンジン一体型では、同じ YAML を GUI とファイルの両方から扱え、ログも追いやすいため、TUN のように OS レイヤへ手を入れるモードほど「結果の説明可能性」が効いてきます。外向き経路を固めたあとは、用途別のドメイン分流や ヘルプ に挙がる高度なポリシーへ進めます。

Clash を無料ダウンロードして、macOS での TUN 運用を続ける