TUN モードとは何ですか?

デフォルトの「システムプロキシ」モードでは、Clash はシステムの HTTP/HTTPS プロキシ設定を変更することで動作します。この方法では、システム設定に従うアプリ(ブラウザなど)しかプロキシできません。コマンドラインツールやゲームクライアント、一部の Electron アプリなどはシステムプロキシを無視することが多く、それらのトラフィックはプロキシを介さず直接接続されてしまいます。

TUN(TUNnel)モードは、OS 内に仮想ネットワークインターフェースを作成し、より低層のネットワークレベルですべての TCP および UDP トラフィックをインターセプトします。どのアプリからのリクエストであっても、トラフィックはこの仮想インターフェースを通過し、Clash コアがルールに基づいてプロキシするかどうかを判断します。これにより真の「グローバルプロキシ」が実現され、現在最も徹底したプロキシ方法となっています。

どのようなシーンで TUN モードを使用すべきですか?

  • ゲームの加速:ゲームクライアントは通常、システムプロキシ設定に従いません。TUN モードを使用することで、ゲームトラフィックもプロキシ経由になり、速度向上と低遅延化が期待できます。
  • CLI 開発ツール:npm、pip、git、docker などのコマンドラインツールはデフォルトでシステムプロキシを読み込みません。TUN モードは、ネットワーク制限のある環境でこれらのツールの接続問題を解決します。
  • Electron アプリ:一部の Electron ベースのアプリ(VS Code のプラグイン更新など)はシステムプロキシをバイパスします。TUN モードはこれらのトラフィックも確実にカバーします。
  • UDP プロキシ:システムプロキシモードは UDP トラフィックをサポートしていません。TUN モードは UDP をサポートしており、ビデオ通話やオンラインゲームなどの UDP 依存アプリにとって非常に重要です。
  • 企業環境の隔離:セキュリティやコンプライアンスのために、すべてのトラフィックを特定のプロキシ経由にする必要がある場合、TUN モードが最も信頼できる選択肢です。

Windows:Clash Verge Rev での TUN 有効化

Windows で TUN モードを有効にするには、管理者権限が必要です。Clash Verge Rev は権限のリクエストを自動的に処理します:

  1. Clash Verge Rev が正しくインストールされ、有効なサブスクリプションプロファイルが導入されていることを確認します。
  2. 左側のナビゲーションバーにある「設定」(Settings)タブをクリックします。
  3. システム設定セクションにある 「TUN モード」 スイッチを見つけてオンにします。
  4. UAC プロンプトが表示されたら、「はい」をクリックして管理者権限を付与します。
  5. Clash Verge Rev が Wintun ドライバをインストールします(初回のみ)。スイッチが緑色に変われば、TUN モードが有効になっています。
💡

Windows では、Clash Verge Rev は Wintun ドライバを使用しています。これは従来の TAP ソリューションよりもパフォーマンスと互換性に優れています。起動に失敗した場合は、設定で TUN スタックモードを gVisor または Mixed に切り替えてみてください。

macOS:Clash Verge Rev での TUN 有効化

macOS での TUN 有効化にもシステム権限が必要です:

  1. Clash Verge Rev を開き、「設定」ページへ移動します。
  2. 「TUN モード」を見つけてオンにします。
  3. 「システム設定 → プライバシーとセキュリティ」でネットワーク拡張機能を許可するよう求められます。プロンプトに従って「許可」をクリックしてください。
  4. 変更を反映させるために、通常は Clash Verge Rev の再起動が必要です。
  5. 有効化されたら、アクティビティモニタで utun という名前の仮想インターフェースが存在することを確認できます。
⚠️

macOS 14 (Sonoma) 以降では、ネットワーク拡張機能の制御がより厳格になっています。「システム設定 → プライバシーとセキュリティ → ネットワーク拡張機能」で手動での許可が必要になる場合があります。

Android:Clash for Android での TUN 有効化

Android はネイティブで VPN インターフェースをサポートしています。Clash for Android は VpnService API を使用して TUN 同様の透過プロキシを実現しており、非常に簡単に使用できます:

  1. Clash for Android を開き、プロファイルが導入されていることを確認します。
  2. ホーム画面の大きな「Stopped」ボタンをタップします。
  3. VPN 接続要求のダイアログが表示されるので、「OK」をタップして許可します。
  4. ステータスバーに鍵のアイコンが表示され、Clash が VPN モード(機能的には TUN と同一)で動作していることを示します。

TUN スタックモードの選択

Clash Verge Rev は TUN のスタックモードを 3 つ提供しており、それぞれに利点があります:

  • System:OS カーネルの TCP/IP スタックを使用します。最高のパフォーマンスと互換性を持ち、ほとんどのユーザーに推奨されます。
  • gVisor:Google の gVisor ユーザ空間ネットワークスタックを使用します。システムカーネルから隔離されているため安定性が向上しますが、CPU 使用率はわずかに高くなります。
  • Mixed:ハイブリッドモード。TCP には System、UDP には gVisor を使用します。UDP を多用する場合のパフォーマンスと安定性のバランスが良いです。

TUN モード用の DNS 設定

TUN モードを有効にすると、DNS 解決の扱いが変わります。DNS 漏洩(DNS クエリがプロキシをバイパスすること)を避けるために、 enhanced-mode: fake-ip または redir-host の使用をお勧めします。以下は推奨される DNS 設定のスニペットです:

dns:
  enable: true
  enhanced-mode: fake-ip
  fake-ip-range: 198.18.0.1/16
  nameserver:
    - 114.114.114.114
    - 8.8.8.8
  fallback:
    - tls://8.8.4.4:853
    - https://cloudflare-dns.com/dns-query

fake-ip モードは、偽の IP アドレスを返すことで DNS 漏洩を防ぎ、 fallback は海外ドメインに対して暗号化された解決を保証します。

TUN モードのよくある問題

トラフィックループ(インターネットにアクセスできない)

TUN を有効にした後にすべての接続ができなくなった場合、Clash 自体のトラフィックが TUN インターフェースにインターセプトされ、ループバックが発生している可能性があります。解決策は、Clash のプロセスを直接ルールに追加することです。最新の Clash Verge Rev はこれを自動的に処理します。

ゲームの遅延が増大した

TUN モード自体がゲームを高速化するわけではありません。トラフィックが確実にプロキシされるようにするだけです。遅延が増えた場合は、選択したノードがゲームに適しているか確認してください。高帯域幅の一般ノードよりも、BGP 最適化済みまたは専用の IPLC 回線が推奨されます。

Android のバッテリー消費

Clash for Android は VpnService が動作している間、バックグラウンドでアクティブであり続けます。これは VPN アプリ全般の特徴です。不要な時は Clash をオフにするか、「アクセス制御」機能を使用してプロキシが不要なアプリをバイパス設定にすることをお勧めします。

なぜ Clash Verge Rev の TUN 体験がベストなのか

Clash クライアントによって、TUN モードの実装品質には差があります。開発停止した Clash for Windows の TUN 実装は重く、メモリ使用量も高く、時折クラッシュすることがありました。対照的に、Clash Verge Rev は Mihomo コアの TUN 実装に合わせて最適化されています。Wintun(Windows)のサポート、軽量な gVisor スタック、電力消費の最適化、そして正確な DNS インターセプト。実用的には、Clash Verge Rev の TUN モードは格段に安定しており、メモリ漏洩も少なく、オン/オフの切り替えも非常にスムーズです。他のクライアントで TUN モードに不満があった方は、ぜひ Clash Verge Rev を試してみてください。