TUN モードとは?システムプロキシとの違い
Clash にはトラフィックをプロキシに流す方法が 2 つあります:システムプロキシと TUN モードです。この違いを理解することが、Clash を正しく活用するための鍵です。
| 比較項目 | システムプロキシ(HTTP/SOCKS5) | TUN モード(仮想 NIC) |
|---|---|---|
| 動作レイヤー | アプリケーション層(L7) | ネットワーク層(L3) |
| 傍受方式 | アプリが能動的にプロキシアドレスを設定 | OS カーネルレベルでトラフィックを横取り |
| カバー範囲 | プロキシプロトコルに対応したアプリのみ | 全 TCP/UDP トラフィック、アプリの対応不要 |
| UDP サポート | 限定的、アプリ実装に依存 | 完全な UDP サポート |
| 必要な権限 | 一般ユーザー権限 | 管理者 / root 権限 |
システムプロキシは OS レベルで HTTP/SOCKS5 プロキシアドレス(例:127.0.0.1:7890)を設定する仕組みです。ブラウザなどプロキシプロトコルに対応したアプリはリクエストをそのアドレスに送り、Clash が転送します。しかし、ゲームクライアント・CLI ツール・一部の Electron アプリはシステムプロキシ設定を読み取らず、直接接続してしまいます。
TUN モードは OS 内に仮想ネットワークインターフェース(Mihomo TUN)を作成し、ドライバレベルで送信パケットをすべて傍受します。アプリがプロキシプロトコルに対応しているかどうかに関わらず、すべてのトラフィックが強制的に捕捉され、Clash のルールエンジンで処理されます。これこそが真の意味での「グローバル透過プロキシ」です。
TUN モードが必要な場面
以下のシナリオでは TUN モードの有効化を強くお勧めします:
- ゲームの高速化:Steam・Epic Games・Battle.net などのゲームクライアントは通常システムプロキシを経由しません。TUN を有効にするとゲームトラフィックを直接プロキシできます
- CLI ツール:
git clone・npm install・pip install・docker pullなどはデフォルトでシステムプロキシを使いません。TUN モードか環境変数の手動設定が必要です - UDP プロトコルアプリ:ビデオ通話(Zoom・Teams)・音声チャット(Discord)・DNS クエリなど UDP に依存するトラフィックは、システムプロキシでの UDP サポートが限定的です
- 非標準アプリ:一部の開発ツール・研究ソフトウェア・VPN クライアントはシステムプロキシ設定を無視します
- iOS/macOS のフルプロキシ:Stash/Surge と組み合わせると、TUN はシステムアップデートを含む全トラフィックを引き継げます
Windows で TUN モードを有効にする(Clash Verge Rev)
前提条件
TUN モードには Clash Verge Rev を管理者として実行する必要があります。タスクバーアイコンを右クリック →「管理者として再起動」、またはスタートメニューのアイコンを右クリック →「管理者として実行」を選択してください。
TUN を初めて起動すると、wintun.dll ドライバ(Windows TUN 仮想 NIC ドライバ)が自動インストールされます。この処理にはインターネット接続が必要で、約 1 MB のファイルがダウンロードされます。インストールは一度だけ行えば以後不要です。
有効化の手順
- Clash Verge Rev が管理者として実行されていることを確認する(タイトルバーまたはタスクバーアイコンにシールドマークが表示されます)
- 左側ナビゲーションの「設定」をクリック
- 「システム設定」セクションで「TUN モード」のスイッチをオンにする
- ドライバのインストールプロンプトが表示された場合は「確認」をクリックし、完了を待つ
- 有効化後、タスクマネージャーのネットワークアダプター一覧に「Mihomo」仮想 NIC が表示されます
macOS で TUN モードを有効にする(Clash Verge Rev)
有効化の手順
- Clash Verge Rev の「設定」ページで「TUN モード」を見つけてオンにする
- セキュリティの警告が表示されたら「システム環境設定 → プライバシーとセキュリティ」を開く
- ページ下部の「システム拡張機能がブロックされました」という表示を見つけ、「許可」をクリック
- macOS のパスワードを入力して承認し、Clash Verge Rev に戻って TUN スイッチをオンにする
macOS Sequoia(15)以降では、「システム設定 → VPN とフィルタ」で Mihomo のネットワーク拡張機能を手動で許可する必要があります。
Android の TUN モード(ClashMeta for Android)
Android 版 CMFA の TUN モードはシステムの VpnService API を使用しており、root は不要です。プロキシ起動時に表示される VPN 権限リクエストが TUN モードの認証ダイアログです。
- CMFA を起動し、プロファイルが有効になっていることを確認する
- メイン画面の起動ボタンをタップ。初回起動時に VPN 権限リクエストが表示される
- 「OK」をタップ。Android ステータスバーに鍵アイコンが表示されれば TUN が有効です
- 「設定 → 設定を上書き」で TUN の動作モードを調整できます(Mixed / TUN only / System Proxy only)
Android の TUN はデフォルトですべてのアプリのトラフィックを引き継ぐため、追加設定は不要です。銀行アプリなどリスク検知を避けたい特定のアプリは、アプリ一覧から除外できます。
TUN モード YAML 設定の詳細
設定ファイルに tun フィールドを追加することで、TUN モードを細かく制御できます:
tun:
enable: true
stack: mixed # mixed(推奨)/ system / gvisor
auto-route: true # ルートを自動追加してトラフィックを TUN に流す
auto-detect-interface: true # 出口 NIC を自動検出、複数 NIC 環境では必須
dns-hijack:
- any:53 # すべての DNS リクエストを横取り(UDP 53 番ポートを含む)
strict-route: false # true にすると TUN 以外のトラフィックを破棄。安全性は上がるが LAN に影響
mtu: 9000 # 最大転送単位。9000 でフラグメントを減らしスループットを向上
# DNS 設定は TUN と合わせて使用する
dns:
enable: true
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
nameserver:
- 223.5.5.5
- 119.29.29.29
fallback:
- tls://8.8.8.8:853
- tls://1.1.1.1:853
fallback-filter:
geoip: true
geoip-code: CN
stack パラメータの選択
| stack 値 | 説明 | 推奨シナリオ |
|---|---|---|
mixed | TCP はシステムスタック、UDP は gVisor。互換性が最高 | デフォルト推奨、ほとんどの場面 |
system | すべてシステムネットワークスタックを使用。最高パフォーマンス | Linux / macOS の高パフォーマンス環境 |
gvisor | ユーザー空間の仮想ネットワークスタック。分離性が高い | 互換性の問題が発生したときに試す |
TUN モードのトラブルシューティング
有効化後にインターネットに接続できない
- 管理者として実行されているか(Windows)、またはネットワーク拡張機能が承認済みか(macOS)を確認する
- 設定ファイルに
GEOIP,CN,DIRECTルールが含まれているか確認し、国内トラフィックのループを防ぐ - Clash のログを確認し、TUN インターフェースが正常に作成されたか確認する(ログに "inbound started" for tun が表示される)
- ウイルス対策ソフトを一時的に無効にする。一部のセキュリティソフトが仮想 NIC ドライバをブロックする場合があります
ゲームのトラフィックがまだ直接接続している
以下の設定がすべて完了していることを確認してください:
- TUN スイッチがオンで、
auto-route: trueになっている - プロキシモードが「ルール」または「グローバル」に設定されており、「ダイレクト」ではない
- ゲームサーバーのドメイン/IP に対応するルールがプロキシポリシーを指しており、DIRECT ではない
- Clash のログでゲームプロセス名を検索し、トラフィックが Clash を経由しているか確認する
DNS ループ / 名前解決の失敗
TUN 有効時、dns-hijack: any:53 はすべての DNS リクエストを Clash に処理させるために傍受します。Clash の DNS 設定に問題がある場合(例:ネームサーバーに到達できない)、DNS 解決が失敗します。
対処法:DNS ネームサーバーを一時的に 223.5.5.5(Alibaba DNS)に変更して基本的な疎通を確認してから調整してください。
TUN 有効化後に速度が低下した
TUN モードはカーネルレベルでパケットを処理するため、約 5〜15% の余分な CPU オーバーヘッドが生じます。大幅な速度低下が見られる場合:
stackをgvisorからmixedまたはsystemに変更するauto-route: trueが設定されているか確認する(ルーティングテーブルの競合を防ぐ)- 別の VPN ソフトが同時に動作していないか確認する(二重プロキシになっている場合があります)
まとめ:TUN モード使用のポイント
- TUN モードはドライバレベルですべてのトラフィックを傍受する。システムプロキシはプロキシプロトコル対応アプリのみをカバー
- ゲーム・CLI ツール・UDP アプリには TUN が唯一の確実な解決策
- Windows は管理者権限 + wintun ドライバが必要。macOS はネットワーク拡張機能の承認が必要。Android は VpnService を使用(root 不要)
- YAML のベストプラクティス:
stack: mixed+auto-route: true+dns-hijack: any:53の組み合わせ - 国内の直接接続ルール(
GEOIP,CN,DIRECT)を必ず含め、国内トラフィックがプロキシを経由して速度が落ちないようにする
関連記事
- ルールベースのルーティング設定:DOMAIN / IP-CIDR / GEOIP などのルールタイプを深く理解する
- DNS 汚染防止の設定:TUN モードと組み合わせて DNS リークを完全に解消する
- Clash 完全インストール・設定ガイド:ゼロから始める初心者向け入門ガイド