はじめに:なぜ「TUN」と「システムプロキシ」を区別するのか
Clash 系クライアント(Clash Verge Rev、ClashX Meta、FlClash など)を初めて設定するとき、多くのユーザーが最初に迷うのが システムプロキシ と TUN モード のどちらを使うべきかという点です。どちらも「プロキシを有効にする」スイッチのように見えますが、トラフィックを拾うレイヤー が根本的に異なります。
システムプロキシは OS が提供する HTTP/HTTPS/SOCKS 設定を書き換え、プロキシ対応アプリだけを経由させます。一方 TUN モードは仮想ネットワークアダプタ(TUN デバイス)を作成し、カーネルレベルでアウトバウンド通信を横取りするため、プロキシ設定を無視するアプリにも効きます。日本語の検索では「Clash TUN モード 設定」「システムプロキシ 違い」「グローバルプロキシ 使い方」といったキーワードが多く、本記事では原理・比較・各 OS の設定手順まで一通り整理します。
システムプロキシとは?仕組みと特徴
システムプロキシ(System Proxy)は、Windows の「インターネットオプション」や macOS の「ネットワーク」設定にあるプロキシサーバー欄を、Clash クライアントが自動で書き換える方式です。有効にすると、通常は次のような値が設定されます。
- HTTP プロキシ:
127.0.0.1:7890(ポートはクライアント設定により異なる) - HTTPS プロキシ:同上
- SOCKS プロキシ:
127.0.0.1:7891など
ブラウザ(Chrome、Edge、Firefox など)、多くの Electron アプリ、一部のメッセージングクライアントは、OS のシステムプロキシ設定を参照して通信します。そのため、設定が簡単で管理者権限が不要なことが多く、日常の Web 閲覧には十分な選択肢です。
システムプロキシの限界
次のような通信は、システムプロキシだけでは拾えない、または拾いにくいケースがあります。
- コマンドラインツール:
curl、git、npm、pipなどは環境変数HTTP_PROXYを別途設定しない限りプロキシを通りません - 一部ゲーム・対戦マッチングクライアント:独自プロトコルで直結するもの
- UWP / Microsoft Store アプリ(Windows):ループバック制限によりローカルプロキシへ接続できないことがある
- プロキシ非対応の常駐ソフト:システム設定を読まない独自スタックを使うアプリ
「ブラウザでは Google に繋がるのに、ターミナルではタイムアウトする」という症状の多くは、この違いが原因です。
TUN モードとは?仮想 NIC による全体キャプチャ
TUN モード(TUNnel mode)は、OS に仮想のネットワークインターフェースを追加し、そこへ流れる IP パケットを Clash(Mihomo)コアが受け取ってルール分流・プロキシ転送を行う方式です。ユーザーから見ると「グローバルプロキシ」「全体プロキシ」「VPN 的な動作」と説明されることが多いですが、厳密には VPN プロトコル(WireGuard 等)ではなく、ローカルでのトラフィック横取り です。
代表的なドライバ・実装は次のとおりです。
- Windows:Wintun(WireGuard プロジェクト由来の仮想 NIC ドライバ)
- macOS:utun デバイス(システムが提供する TUN インターフェース)
- Linux:tun0 などの TUN デバイス(capabilities または root が必要な場合あり)
- Android:VPNService API 経由(FlClash などで「VPN モード」として表示)
TUN を有効にすると、DNS クエリも Clash 側で処理できるため、DNS 漏洩対策 と組み合わせやすい点がメリットです。設定画面で「DNS ハイジャック」「fake-ip」などを有効にしているかも合わせて確認してください。
CAP_NET_ADMIN が必要になることがあります。
一覧比較:システムプロキシ vs TUN モード
| 比較項目 | システムプロキシ | TUN モード |
|---|---|---|
| 動作レイヤー | アプリケーション層(OS プロキシ設定) | ネットワーク層(仮想 NIC・IP パケット) |
| 対象トラフィック | プロキシ対応アプリ中心 | 原則すべての TCP/UDP(ルールで除外可能) |
| 管理者権限 | 通常不要 | 多くの環境で必要 |
| 設定の手軽さ | ワンスイッチで有効化しやすい | ドライバインストール・再起動が必要な場合あり |
| CLI・ゲーム・UWP | 拾えないことが多い | 拾いやすい(ルール分流は維持) |
| DNS 制御 | アプリ依存、漏洩しやすい | Clash 側で一元管理しやすい |
| リソース消費 | 比較的軽い | やや高い(仮想 NIC・追加処理) |
| 併用 | 同時オンは非推奨(二重処理でエラーの原因) | |
システムプロキシが向いている場面
次のような利用スタイルなら、まずはシステムプロキシだけで十分なことが多いです。
- 主な用途が ブラウザでの海外サイト閲覧(動画・SNS・検索など)
- 会社や学校の PC で 管理者権限が使えない
- ルール分流で国内サイトは直結、海外だけプロキシという 日常の「賢い分流」 が目的
- ターミナルやゲームをプロキシに載せる必要がない
Clash Verge Rev では、サブスクリプションをインポートしノードを選んだあと、ホーム画面の「システムプロキシ」をオンにするだけで開始できます。動作確認はブラウザで十分です。
TUN モードが向いている場面
次のニーズがある場合は、TUN モードの検討をおすすめします。
- 開発環境:
docker pull、go get、CI ツールなど CLI からの外部アクセス - ゲーム・ボイスチャット:プロキシ設定を読まないクライアント
- Microsoft Store / UWP アプリ(Windows)
- DNS 漏洩を抑えたい:プロバイダー DNS ではなく Clash 経由で解決したい
- 「グローバルに拾いたいが、ルール分流は維持したい」:TUN でもルールモードは有効(国内直結ルールはそのまま機能)
Android では FlClash などが VPN 権限を求めるのも、実質的に TUN 相当の全体キャプチャのためです。デスクトップと同じ考え方で使い分けできます。
Windows:Clash Verge Rev での設定手順
Windows では Clash Verge Rev が最も情報が多く、TUN(Wintun)のサポートも安定しています。
システムプロキシを有効にする
-
サブスクリプションを「プロファイル」にインポートし、利用するプロファイルを選択します。
-
「プロキシ」タブでノードまたは自動選択グループを選びます。
-
メイン画面の「システムプロキシ」スイッチをオンにします。
-
ブラウザで海外サイトが開けるか確認します。
TUN モードを有効にする
-
Clash Verge Rev を管理者として実行します(ショートカットの互換性設定で常時管理者化も可)。
-
「設定」→ コア関連の項目で「TUN モード」をオンにします。
-
Wintun ドライバのインストール確認が出たら許可します。
-
システムプロキシをオフにし、CMD で
ping 8.8.8.8やcurl https://www.google.comを試して CLI 経由も確認します。
macOS:ClashX Meta / Clash Verge Rev での設定
macOS では ClashX Meta または Clash Verge Rev が一般的です。メニューバーアイコンから「システムプロキシを設定」を選ぶとシステムプロキシが有効になります。
TUN(Enhanced Mode)の有効化
-
設定 → 「TUN モード」または「Enhanced Mode」を有効にします。
-
初回は「システム拡張」やネットワークフィルタの許可ダイアログが表示される場合があります。セキュリティとプライバシーから許可してください。
-
システムプロキシと TUN の同時有効は避け、ターミナルで
curl -I https://www.google.comを確認します。
Apple Silicon(M シリーズ)でも Wintun に相当する utun 経由の実装が使われます。Intel Mac でも手順は同様です。
Linux:Mihomo / Clash Verge Rev での設定
Linux では GUI の Clash Verge Rev や、systemd で動かす Mihomo コアがよく使われます。TUN を使う場合は次を確認してください。
- プロセスに
CAP_NET_ADMINを付与するか、root で実行する iptablesやnftablesと競合していないか- NetworkManager などがルーティングを上書きしていないか
設定ファイルで TUN を有効にする場合の最小例(参考):
tun:
enable: true
stack: system
auto-route: true
auto-detect-interface: true
ディストリビューションによっては system の代わりに gvisor スタックの方が安定する報告もあります。接続できない場合はスタック種別の変更を試してください。
上級者向け:config.yaml での tun セクション
GUI ではなく設定ファイルを直接編集する場合、Mihomo 形式では tun: ブロックで制御します。よく触る項目は次のとおりです。
enable:TUN のオン/オフstack:system/gvisor/mixeddns-hijack:DNS を Clash に誘導inet4-route-address:ルーティングする IPv4 範囲の調整
システムプロキシ相当の機能は port や mixed-port でローカルリスンし、クライアントが OS 設定を書き換える形で連携します。TUN とポート設定は独立しているため、「TUN オン + mixed-port 有効」は問題ありませんが、「TUN オン + システムプロキシスイッチオン」はクライアント側で二重経路になりやすい点に注意してください。
よくある間違いと対処
両方同時にオンにしている
症状:接続が不安定、一部サイトだけ失敗、速度が極端に遅い。対処:TUN を使うときはシステムプロキシをオフにする(逆も同様にどちらか一方)。
TUN なのに管理者権限がない(Windows)
症状:TUN スイッチがすぐオフになる、仮想 NIC が作成されない。対処:管理者として再起動し、Wintun の再インストールを試す。
モードが「グローバル」になっている
症状:国内サイトまで遅い。対処:「ルール」モードに戻し、GEOIP や DOMAIN-SUFFIX ルールが効いているか確認する。TUN は「全部プロキシに送る」モードではなく、ルール分流と併用するのが Clash の強みです。
UDP 非対応ノードでゲームや DNS が失敗
症状:ブラウザは OK だがゲームや VoIP だけダメ。対処:UDP をサポートするノード・プロトコル(一部の Trojan/Hysteria2 等)に切り替える。
よくある質問
TUN とシステムプロキシは同時に使えますか?
技術的には可能な場合もありますが、推奨しません。公式ドキュメントや各クライアントの注意書きでも、二重処理による不具合が報告されています。TUN を主モードにするならシステムプロキシはオフにしてください。
初心者はどちらから始めるべき?
まずはシステムプロキシでサブスクリプションとルール分流に慣れ、CLI やゲームで困ったら TUN に進む流れが安全です。
TUN は VPN と同じですか?
見た目は似ますが、Clash の TUN はローカルでパケットを処理し、出口は設定したプロキシノードです。企業 VPN のような暗号化トンネルそのものではありません。プライバシー要件が高い場合はノード提供者の信頼性と DNS 設定も合わせて確認してください。
他ツールとの比較:なぜ Clash でモードを選べるのか
ブラウザ拡張のプロキシはインストールが楽ですが、ブラウザ外のトラフィックは一切扱えず、ルール分流もありません。単一の SOCKS5 クライアントを手動で各アプリに設定する方法は、アプリごとにポートを覚える負担があり、UWP やゲームには向きません。
一方 Clash(Mihomo)エコシステムは、ルール分流・サブスクリプション同期・遅延テスト に加え、同じ設定のままシステムプロキシと TUN を切り替えられます。Clash Verge Rev や ClashX Meta では GUI のスイッチ一つでモードを変えられ、config.yaml を深く理解していなくても「ブラウザだけ」「PC 全体」という段階的な運用が可能です。開発が止まった Clash for Windows 系と比べても、TUN と新プロトコルへの追従が継続されている点が大きな違いです。
「コマンドは通るのにブラウザだけおかしい」「その逆」といった切り分けに迷ったときは、本記事の比較表に当てはめてモードを見直すと、原因の大半は解消できます。環境に合ったクライアントは クライアントダウンロードページ から入手できます。