1 TUN モードとは
設定を深める前に、まず一つの概念を明確にしましょう。システムプロキシと TUN モードにはどのような違いがあるのでしょうか?
日常的に Clash を使用する際、多くの人は「システムプロキシ」をオンにしています。このモードは、本質的にオペレーティングシステムレベルで HTTP/SOCKS5 プロキシのアドレスを設定するものです。ブラウザや一部のアプリはこの設定を自動的に読み取ってトラフィックを送信しますが、多くのプログラム、特にコマンドラインツールはこのルールを全く認識しません。ブラウザでの閲覧は問題ないのに、ターミナルを開いて npm install や git clone を実行すると、依然として非常に遅かったりタイムアウトしたりすることはありませんか?これが、システムプロキシのカバー範囲が限定的であることの典型的な例です。
TUN モード (Tun Mode) の考え方は全く異なります。システム内に仮想ネットワークカード (通常 Meta または utun という名前) を作成し、HTTP、TCP、UDP を问わず、OS のすべての送信トラフィックをこの仮想ネットワークカードに「騙して」引き込みます。そして、Clash カーネルが設定されたルールに従って、各接続をプロキシ経由にするか直接接続にするかを決定します。低レイヤのトラフィックの視点から見ると、マシンのネットワークは完全に Clash によって制御され、いかなるプログラムもそれを回避することはできません。
gvisor または system の2つのスタックに基づいており、安定性と互換性の両面で旧版の Clash Premium カーネルよりも優れています。
2 なぜ TUN モードが必要なのか
以下のいずれかのニーズがある場合、TUN モードはほぼ必須の選択肢となります:
- 终端开发者:
npm、pip、cargo、brew等包管理器不走系统代理 - Git 用户:
git clone、git push到 GitHub/GitLab 经常超时 - Docker 用户:拉取 Docker Hub 镜像、构建过程中下载依赖包总是失败
- ゲーマー: Steam や Epic などのクライアントの UDP トラフィックは、システムプロキシではカバーできません
- リモート接続: SSH や一部ের VPN クライアントはプロキシパラメータの設定をサポートしていません
簡単に言えば、「プロキシを有効にしたのに一部のソフトが経由しない」という状況に陥った場合、TUN モードが究極の解決策となります。
3 有効にするための前提条件
ソフトウェアバージョンの要件
- Clash Verge Rev 1.7.0 以上バージョン (最新版の使用を推奨)
- Windows システムでは Npcap のインストール、または WinTUN ドライバの有効化が必要です
- macOS システムでは「ネットワークコンテンツフィルタ」の権限付与が必要です
管理者権限
仮想ネットワークカードの作成にはシステムレベルの権限が必要です。Windows ユーザーは Clash Verge Rev を管理者として実行するか、設定で「管理者権限で実行」オプションをオンにしてください(後者が推奨されます)。macOS では、初めて TUN を有効にする際にシステムプロンプトが表示され認証を求められますので、「許可」をクリックしてください。
4 Windows で TUN モードを有効にする
ステップ 1: 管理者権限で Clash Verge Rev を起動する
デスクトップアイコンを右クリック → 「管理者として実行」を選択します。または、Clash Verge Rev の「設定」→「システム設定」→ 「管理者権限で実行」スイッチをオンにすると、次回以降の起動時に自動的に権限が昇格されます。
ステップ 2: Service Mode (サービスモード) をインストールする
設定 → システム設定 → サービスモードの順にクリックし、「インストール」ボタンをクリックします。サービスモードにより、Clash をシステムのバックグラウンドでサービスとして実行できるようになります。ドライバのインストールにはこれが必要です。完了後、ステータスが「インストール済み」になれば OK です。
ステップ 3: TUN モードを有効にする
メイン画面に戻り、「TUN モード」スイッチ (通常はホーム画面または「設定 → カーネル設定」にあります) をオンにします。初めて有効にする際、Clash は自動的に WinTUN 仮想ドライバをインストールします。これには数秒かかり、タスクバーのアイコンが一時的に点滅することがありますが、これは正常な動作です。
WinTUN Userspace Tunnel または Meta という名前の仮想アダプターがあれば、ドライバの準備は完了です。
ステップ 4: 推奨される TUN パラメータ設定
Clash Verge Rev の「上書き設定」またはサブスクリプションの YAML を直接編集し、以下の TUN セクションを追加します:
tun:
enable: true
stack: mixed # mixed が最も互換性が高い (gvisor + system の混合)
dns-hijack:
- any:53 # すべての DNS リクエストをハイジャックし、DNS 漏洩を防止
auto-route: true # ルーティングルールを自動追加
auto-detect-interface: true # 出力ネットワークカードを自動検出
stack: mixed が現在最も推奨されるモードです。TCP トラフィックは gvisor ユーザー空間プロトコルスタック (互換性が高い) を経由し、UDP トラフィックは system (パフォーマンスが高い) を経由します。一部の UDP アプリで問題が発生する場合は、stack: gvisor に変更して統一して処理することもできます。
5 macOS で TUN モードを有効にする
ステップ 1: システム権限を付与する
macOS での TUN の実装は、システムの「ネットワークコンテンツフィルタ」(Network Extension) に依存しています。初めて TUN スイッチをクリックすると権限要求のポップアップが表示されるので、「システム設定」→「プライバシーとセキュリティ」の下部で「許可」をクリックしてください。
ステップ 2: TUN スイッチをオンにする
許可後、Clash Verge Rev のメイン画面に戻り、「TUN モード」切り替えボタンをクリックします。青くハイライトされれば有効です。メニューバーのアイコンの横に小さな盾のマークが表示されますが、これが TUN が有効であることを示しています。
ステップ 3: YAML 設定は Windows と同じ
macOS での YAML 設定は Windows と全く同じです。同様に stack: mixed、auto-route: true、dns-hijack の設定をお勧めします。具体的な設定例は上記の Windows セクションを参照してください。
6 TUN モードが実際に有効になっているか確認する
有効にした後、すぐに使い始めるのではなく、まずいくつかの簡単な検証を行って、TUN がすべてのトラフィックを制御しているか確認しましょう。
方法 1: ターミナルでの curl テスト
コマンドプロンプト (Windows) またはターミナル (macOS) を開き、以下を実行します:
curl -v https://www.google.com
正常にレスポンス (HTTP 200) が返ってくれば、ターミナルのトラフィックがプロキシを経由していることになります。TUN がない場合、このコマンドは高い確率でタイムアウトするか接続拒否になります。
方法 2: 現在の IP アドレスの所属を確認する
curl https://ip.sb
返される IP アドレスは、ノードのある海外の IP である必要があり、自身のプロバイダーの IP ではありません。両者が同じ場合は TUN が有効になっていません。管理者権限で実行されているか確認してください。
方法 3: Clash の接続パネルで確認する
Clash Verge Rev の「接続」パネルを開き、ターミナルコマンドを実行した後、対応する接続記録が表示されるか確認します。TUN モードでは、curl、git、npm などのコマンドによる接続がリストに表示され、プロセス名も一目で分かります。これは問題を特定する最も直接的な方法です。
方法 4: Docker のイメージ取得テスト
docker pull hello-world
Docker Hub から正常にイメージを取得できれば (Docker Desktop で個別にプロキシを設定することなく)、TUN が Docker のネットワークトラフィックを正常に制御できていることになります。
7 上級: 精密な分流ルール
TUN がすべてのトラフィックを制御する場合、適切な分流ルールがより重要になります。国内サイトをプロキシ経由にする必要はなく、逆に遅延が増える可能性があるためです。以下は、よく使われる精密な設定案です:
LAN および国内 IP を直接接続に維持する
rules:
- IP-CIDR,192.168.0.0/16,DIRECT
- IP-CIDR,10.0.0.0/8,DIRECT
- IP-CIDR,127.0.0.0/8,DIRECT
- GEOIP,CN,DIRECT
- MATCH,Proxy
GEOIP,CN,DIRECT このルールは、中国本土に属するすべての IP を直接接続し、プロキシを経由させません。これは国内サイト、オンラインゲーム、銀行アプリなどへのアクセスに非常に重要です。
特定のプロセスを直接接続から除外する
Mihomo カーネルは PROCESS-NAME ルールをサポートしており、プロセス名に対して例外を設定できます:
rules:
- PROCESS-NAME,WeChat,DIRECT # WeChat を直接接続にする
- PROCESS-NAME,QQ,DIRECT # QQ を直接接続にする
- PROCESS-NAME,Thunder,DIRECT # 迅雷を直接接続にする
Rule Provider を使用してコミュニティルールセットを購読する
ルールを手動で管理するのは時間がかかり、漏れも生じやすいため、を通じて ACL4SSR ルールセットを導入することをお勧めします。これにより、数万件のドメインをカバーする正確な分流、Netflix や YouTube のアンロック、広告ブロックをすぐに利用できます。
DNS 漏洩防止設定
TUN を有効にすると、DNS 漏洩の問題がシステムプロキシモードよりも顕著になります。FakeIP モードと DoH を同時に設定することをお勧めします。詳細については、私たちの記事「DNS 漏洩を完全に防ぐ」を参照してください。
8 よくあるトラブルシューティング
Q:开启 TUN 后网络完全断了?
最も一般的な原因は管理者権限で実行されていないこと、または WinTUN ドライバのインストール失敗です。まず TUN スイッチをオフにし、「デバイスマネージャー」に仮想ネットワークカードがあるか確認してください。ない場合はサービスモードを再インストールして再度お試しください。
Q:国内网站访问变慢了?
分流ルールに GEOIP,CN,DIRECT が正しく設定されているか確認してください。また、GeoIP データベース (Country.mmdb) が最新バージョンであるか確認してください。Clash Verge Rev は設定からワンクリックで更新できます。
Q:游戏、语音软件出现 UDP 问题?
stack を mixed から system に変更してみるか、そのソフトのプロセスに対して PROCESS-NAME,xxx,DIRECT ルールを追加して UDP トラフィックを直接接続するようにしてください。
Q:macOS 下 TUN 开关点击没反应?
「システム設定 → プライバシーとセキュリティ → ネットワーク」に移動し、Clash Verge Rev がリストにあり、権限がオンになっているか確認してください。一部の macOS バージョンでは、アプリを再起動しないと権限が反映されない場合があります。
Q:Docker Desktop 依然无法拉取镜像?
Docker Desktop は独自の仮想ネットワーク層を持っているため、一部のバージョンでは Docker Desktop の設定で手動でプロキシを設定する必要があります。Docker の設定で HTTP Proxy と HTTPS Proxy を http://127.0.0.1:7890(または Clash の混合ポート)に設定し、TUN モードと並行して使用することで最良の互換性が得られます。
9 まとめ
TUN モードは、「十分」から「本当に使いやすい」への分岐点です。システムプロキシは 80% のシーンを解決しますが、TUN は残りの 20% の最も頭の痛い問題、つまりターミナル、Git、Docker、ゲームクライアントなどの「通常の経路を通らない」トラフィックを解決し、ようやくプロキシルールの管轄下に統合できます。
設定手順は多く見えますが、実際には5分もかかりません。サービスモードをインストールし、TUN スイッチをオンにして、上記の YAML スニペットを上書き設定に貼り付けるだけです。一度設定してしまえば、二度と「特定のソフトがプロキシを通らない」と悩むことはありません。
ドライバ設定を手動で書いたり、サードパーティ製ツールを使ったりする必要がある他のクライアントと比較して、Clash Verge Rev は TUN 設定を GUI に統合しており、いくつかのスイッチだけで完了します。これが開発者の間で非常に評価が高い理由の一つです。まだ試していないなら、今が最高の始め時です。