TUN モードとは何か:システムレベルの透明プロキシ

Clash における TUN モード は、OS レベルで仮想ネットワークインターフェース(TUN デバイス)を作成し、すべてのネットワークトラフィックを Clash カーネル経由で処理する仕組みです。従来の HTTP/SOCKS5 プロキシ設定では、プロキシ設定を無視するアプリケーション(コマンドラインツール、一部のゲーム、システムサービスなど)のトラフィックを捕捉できませんでしたが、TUN モードはこの制限を根本から解決します。

2026 年現在、mihomo (Clash Meta) カーネルの普及により、TUN モードの安定性と機能性は飛躍的に向上しました。しかし、正しく設定されていない TUN モードは、DNS リーク(プロキシを通しているはずなのに DNS 問い合わせが ISP に漏れる現象)や、ネットワークのループ、特定のアプリケーションとの競合を引き起こす原因となります。本記事では、これらの問題を回避し、完璧な透明プロキシ環境を構築するための高度なテクニックを詳しく解説します。

ヒント: TUN モードを使用するには、通常管理者権限(Windows では管理者として実行、macOS/Linux では sudo 権限)が必要です。Clash Verge Rev などの GUI クライアントでは、「Service Mode」のインストールが推奨されます。

スタックの選択:System vs gVisor vs Mixed

TUN モードを設定する際、最初に直面するのが stack の選択です。これは TUN デバイスがパケットを処理する際のネットワークスタック実装を決定します。

  • system: OS 本体のネットワークスタックを使用します。パフォーマンスが最も高く、リソース消費も少ないですが、OS のルーティングテーブルとの干渉が起きやすい側面があります。
  • gVisor: Google が開発したユーザー空間ネットワークスタックを利用します。OS から独立してパケットを処理するため安全性が高く、ルーティングループを防ぎやすいですが、CPU 負荷が若干高くなります。
  • mixed: 複数のスタックを適宜組み合わせる実験的な設定です。

一般的なユーザーには system スタックが推奨されますが、WSL2 や複雑な仮想化環境を併用している場合は gvisor がトラブルを最小限に抑える鍵となります。

DNS リークを完全に防ぐための DNS 設定

TUN モードを有効にしても、DNS 設定が不適切であればプライバシーは守られません。最も多い失敗は、ブラウザのトラフィックはプロキシされているのに、ドメイン解決(DNS)要求がローカルの DNS サーバー(ISP)に直接飛んでしまう DNS リーク です。

DNS Hijack の活用

Clash の dns-hijack 機能を使用すると、TUN デバイスに届いたポート 53(標準的な DNS ポート)への通信を強制的に Clash 内蔵の DNS サーバーへリダイレクトできます。これにより、アプリが独自に設定した DNS サーバーへの問い合わせも Clash が捕捉できるようになります。

dns:
  enable: true
  enhanced-mode: fake-ip
  listen: :1053
  nameserver:
    - 223.5.5.5
    - 8.8.8.8
  proxy-server-nameserver:
    - https://dns.google/dns-query
  dns-hijack:
    - 'any:53'
    - 'tcp:53'

Fake-IP モードの仕組みと競合回避

Clash には fake-ipredir-host の 2 つの DNS 動作モードがあります。TUN モードにおいては fake-ip が強く推奨されます。

Fake-IP では、アプリケーションがドメイン解決を要求した際、Clash は即座に仮想の IP アドレス(例:198.18.0.1)を返します。アプリケーションはその仮想 IP に向けてパケットを送信し、Clash はパケットを受け取った時点で初めて実際のドメイン名を解決し、適切なプロキシサーバーに転送します。この仕組みにより、DNS 解決を待つ遅延(RTT)が解消され、さらに DNS 汚染の影響を完全に無視できるようになります。

Fake-IP 競合の解決:filter リスト

一部のアプリケーション(特に LAN 内のデバイス検出や、特定の認証システム、一部のオンラインゲーム)は、仮想 IP を受け取ると正常に動作しない場合があります。これを解決するのが fake-ip-filter です。

dns:
  fake-ip-filter:
    - '+.lan'
    - '+.local'
    - 'stun.*'
    - '+.msftncsi.com'
    - 'msftconnecttest.com'

ここに記載されたドメインは Fake-IP の対象外となり、実際の IP アドレスが返されるようになります。Windows の「インターネット接続なし」という誤表示を防ぐためにも、Microsoft の接続テストドメインをフィルタリングしておくことは重要です。

高度なルーティング設定:Strict-Route と Auto-Route

TUN モードの挙動を制御する重要なフラグが auto-routestrict-route です。

  1. Auto-Route の有効化: auto-route: true を設定すると、Clash は OS のルーティングテーブルを自動的に書き換え、デフォルトゲートウェイを TUN デバイスに向けます。これを手動で行うのは非常に困難なため、常に true にすべきです。
  2. Strict-Route によるリーク防止: strict-route: true は、パケットが Clash をバイパスして物理ネットワークに漏れるのを防ぎます。これは、VPN の「キルスイッチ」に近い役割を果たします。
  3. UDP 転送の最適化: udp: true を確認してください。TUN モードでは TCP だけでなく UDP も透過的に処理できるため、音声通話やゲームの遅延改善に直結します。

TUN モードのトラブルシューティング

設定が正しいはずなのにインターネットに繋がらない場合、以下の点を確認してください。

症状 原因 対策
特定のサイトだけ開けない DNS キャッシュの汚染 OS の DNS キャッシュをクリアしてください。
LAN 内のプリンタが見えない ルーティングの干渉 skip-proxy に 192.168.0.0/16 等を追加してください。
CPU 負荷が異常に高い スタックの不適合 stack を system から gvisor に変更して試してください。

まとめ:理想的な透明プロキシ環境へ

Clash の TUN モードは、一度正しく設定してしまえば、プロキシの存在を意識することなくすべてのアプリケーションで安全かつ高速な通信を享受できる最強のツールです。特に fake-ipdns-hijack を適切に組み合わせることで、プライバシーの天敵である DNS リークを完璧に封じ込めることができます。

市販の VPN クライアントの中には、TUN デバイスの制御が甘く、システムアップデートのたびに設定が壊れたり、特定の UDP パケットが漏洩したりするものが少なくありません。これに対し、Clash (特に mihomo カーネル) は、ネットワークスタックの深層までユーザーが制御できるため、技術的な知識があればこれ以上に信頼できる環境はありません。設定の複雑さに最初は戸惑うかもしれませんが、本記事で紹介した高度な設定を一つずつ適用していくことで、あなたのネットワーク環境は劇的に改善されるはずです。

Clash 公式サイトを無料でダウンロードして、数分で設定完了。

始める準備はできましたか?詳細はドキュメントハブをご覧ください。ダウンロードページへ →