なぜ TUN モードが必要なのか?
多くのユーザーが Clash を利用する際、最初に設定するのは「システムプロキシ(HTTP/SOCKS5)」です。しかし、これには重大な制限があります。多くのアプリケーション、特に コマンドラインツール (CLI)、一部のゲーム、および Docker コンテナ などは、システムのプロキシ設定を無視して直接インターネットに接続しようとします。
また、システムプロキシは主に TCP トラフィック を対象としており、UDP トラフィック(音声通話や一部のストリーミングで使用される)の処理には不向きです。ここで登場するのが TUN モード です。TUN モードは、オペレーティングシステムレベルで仮想ネットワークカード(TUN デバイス)を作成し、すべての IP パケットをカーネル層で捕捉します。これにより、アプリケーションがプロキシに対応しているかどうかに関わらず、すべての通信を Clash のルールエンジンに強制的に通すことが可能になります。
TUN モードの動作原理とスタック選択
TUN モードがパケットを捕捉した後、それをどのように処理するかを決定するのが スタック (Stack) です。Clash では主に gvisor、system、mixed の 3 種類が選択可能です。
- gvisor: Google が開発したユーザー空間ネットワークスタック。ホストのカーネルから分離されているため、最も安全で互換性が高いですが、パフォーマンスはわずかに劣ります。
- system: オペレーティングシステムのネイティブネットワークスタックを使用。パフォーマンスは最高ですが、OS の設定に依存するため、環境によっては不安定になることがあります。
- mixed: 状況に応じて最適なスタックを自動選択するモードですが、最新の Clash 実装では
gvisorが推奨されることが多いです。
2026 年時点でのベストプラクティスとしては、安定性を重視するなら gvisor を、極限の低レイテンシを求めるなら system を選択するのが一般的です。
DNS 漏洩のメカニズムと対策
TUN モードを導入しても、正しく設定されていない場合に発生するのが DNS 漏洩 (DNS Leak) です。これは、データ通信自体はプロキシを経由しているのに、ドメイン名の解決(DNS クエリ)だけがローカルのプロバイダ (ISP) の DNS サーバーに直接送信されてしまう現象を指します。
DNS が漏洩すると、あなたがどのウェブサイトを訪問しようとしているかが ISP に筒抜けになり、プライバシーが損なわれるだけでなく、一部の地域では DNS 汚染 によって正しい IP アドレスが取得できなくなります。Clash でこれを防ぐには、dns.enhanced-mode を fake-ip に設定し、すべての DNS クエリを Clash 内部でハイジャックする必要があります。
注意:DNS 漏洩は視覚的には気づきにくい問題です。定期的に dnsleaktest.com などのツールを使用して、自分の位置情報以外の DNS サーバーが表示されていないか確認することをお勧めします。
Fake-IP と Real-IP の違いを理解する
Clash の DNS 設定において最も重要な概念が Fake-IP です。
通常の Real-IP モード では、Clash はまず DNS サーバーに問い合わせて実際の IP アドレスを取得し、その IP に基づいて「プロキシを通すか直結するか」を判断します。しかし、これでは DNS 解決を待つためのレイテンシが発生します。
一方、Fake-IP モード では、アプリケーションがドメイン解決を要求した瞬間に、Clash は即座に仮想的な IP アドレス(例:198.18.0.1)を返します。アプリケーションはその Fake-IP に向かってパケットを送信し、Clash はパケットを受け取った後で、内部的に実際のドメイン名を確認して適切なプロキシサーバーに転送します。
この仕組みにより、以下のメリットが得られます:
- 接続の高速化:DNS の応答を待たずに通信を開始できる。
- DNS 汚染の無効化:ローカルで正しい IP を知る必要がないため、汚染された DNS 応答を無視できる。
- 完全な UDP 制御:パケットが Clash を通過するため、UDP ベースの DNS 解決も安全に行える。
高度な構成例:YAML 設定の最適化
以下に、TUN モードと DNS 機能を最大限に活用するための設定例を示します。
TUN & DNS Configuration Snippet (YAML)
tun:
enable: true
stack: gvisor
dns-hijack:
- "any:53"
- "tcp://any:53"
auto-route: true
auto-detect-interface: true
dns:
enable: true
listen: 0.0.0.0:1053
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
nameserver:
- 1.1.1.1
- 8.8.8.8
- https://dns.google/dns-query
fallback:
- https://1.1.1.1/dns-query
- tcp://8.8.8.8
この設定では、auto-route を有効にすることで、OS のルーティングテーブルを自動的に書き換え、すべてのトラフィックを TUN デバイスへ誘導します。また、dns-hijack によって標準のポート 53 へのクエリをすべて Clash がキャッチするようにしています。
トラブルシューティング:TUN が動作しない場合
TUN モードを有効にした際によくある問題とその解決策をまとめました。
- 権限不足:TUN デバイスの作成には管理者権限が必要です。Windows では管理者として実行し、macOS/Linux では
sudo権限を確認してください。 - 仮想マシンの競合:VMware や VirtualBox などの仮想ネットワークアダプタと干渉することがあります。不要なアダプタを無効化するか、
auto-detect-interfaceをtrueに設定してください。 - ブラウザの「セキュア DNS」機能:Chrome や Firefox の設定で「セキュア DNS(DoH)」が有効になっていると、ブラウザが Clash の DNS ハイジャックを回避してしまいます。ブラウザの設定でこれをオフにする必要があります。
結語
Clash の TUN モードは、単なるプロキシを超えた「パーソナル・ネットワーク・ゲートウェイ」としての真価を発揮させるための機能です。Fake-IP と DNS ハイジャックを正しく設定することで、ネットワークの透明性とセキュリティを劇的に向上させることができます。
→ Clash V.CORE を入手して、今すぐ最強のネットワーク環境を構築しましょう。 高度な分流ルールと TUN モードの組み合わせが、あなたのインターネット体験を次のレベルへと引き上げます。