TUNモードとは何ですか?
TUN(ネットワークトンネル)モードは、ClashXが提供する拡張プロキシモードです。仮想ネットワークインターフェース(TUNデバイス)を作成し、オペレーティングシステムのネットワーク層ですべてのトラフィックを捕捉して転送します。
TUNモードはネットワーク層(レイヤー3)で動作し、アプリケーションがプロキシ設定をサポートしているかどうかに関係なく、すべてのアプリケーションからのすべてのネットワークトラフィックをキャプチャできます。つまり、コマンドラインツール、バックグラウンドサービス、さらにはシステムプロキシをサポートしていないアプリケーションまで含む、真の「グローバルプロキシ」を実現できます。
TUNモードの主な利点
- 真のグローバルプロキシ: すべてのアプリケーションのネットワークトラフィックが例外なくプロキシされます
- アプリごとの設定不要: 各アプリケーションで個別にプロキシ設定を行う必要がありません
- UDPサポート: UDPプロトコルをプロキシでき、ゲームやビデオ会議などをサポートします
- 優れたDNS制御: DNS解決プロセスを完全に制御し、DNS漏洩を防ぎます
- 高いルール優先度: ネットワーク層で動作するため、より正確なルールマッチングが可能です
- プロキシバイパスの防止: アプリケーションがプロキシを回避して直接接続することを防ぎます
TUNモードの仕組み
TUNモードが有効になると、ClashXは仮想ネットワークインターフェース(通常は utun という名前)を作成し、システムはすべてのネットワークトラフィックをこの仮想インターフェースにルーティングします。ClashXはトラフィックを受信した後、設定されたルールに基づいて、プロキシサーバーを経由させるか直接接続するかを決定します。
TUNモードとシステムプロキシの比較
TUNモードと従来のシステムプロキシモードの違いを理解することで、最適なプロキシ方法を選択できます。
| 比較 | TUN モード | システムプロキシ |
|---|---|---|
| 動作レイヤー | ネットワーク層 (レイヤー 3) | アプリケーション層 (レイヤー 7) |
| カバー範囲 | すべてのアプリケーション | プロキシ対応アプリのみ |
| UDP サポート | ✓ 完全対応 | ✗ 非対応 |
| DNS 制御 | 完全制御 | 部分的制御 |
| 必要な権限 | 管理者権限が必要 | 特別な権限不要 |
| パフォーマンスへの影響 | わずかな影響 (<5%) | ほぼなし |
| 構成の複雑さ | 普通 | シンプル |
| 互換性 | 完璧 (全アプリ) | 限定的 (一部アプリ) |
TUNモードがおすすめ: すべてのアプリをプロキシしたい場合、コマンドラインツールの使用、ゲームの加速、DNS漏洩の防止が必要な場合。
システムプロキシがおすすめ: ブラウザのみのプロキシで十分な場合、パフォーマンスのオーバーヘッドを最小限にしたい場合、一時的に素早く使用したい場合。
前提条件
TUNモードを有効にする前に、以下の条件が満たされていることを確認してください:
システム要件
- macOS バージョン: macOS 10.15 Catalina 以降
- ClashX バージョン: ClashX 1.90.0 以降(最新バージョンを推奨)
- 管理者権限: macOSの管理者アカウント権限が必要です
- システム整合性保護 (SIP): 無効にする必要はありません。TUNモードは通常通り動作します
ハードウェアの互換性
Apple Silicon (M1/M2/M3) Macでは、ClashXのTUNモードは完全に最適化されており、Intel版よりも優れたパフォーマンスを発揮します。ARM64ネイティブアーキテクチャは、より高いネットワーク処理効率と低い消費電力を提供し、TUNモードに最適なプラットフォームとなっています。
準備チェックリスト
- ☑️ ClashXが正しくインストールされ、システムプロキシモードが使用できることを確認する
- ☑️ 管理者アカウントのパスワードを手元に用意する(設定時に必要です)
- ☑️ 現在の設定ファイルをバックアップする(設定ミスに備えるため)
- ☑️ 他のプロキシツールを閉じる(ポートの競合を避けるため)
- ☑️ サブスクリプションまたは設定ファイルが正常に動作していることを確認する
TUNモードを有効にするための5ステップ
以下の手順に従って、10分以内にClashX TUNモードを正常に有効化して構成してください。
ステップ 1: システム権限を付与する
TUNモードは仮想ネットワークインターフェースを作成する必要があるため、まずClashXに対応するシステム権限を付与する必要があります。
- システム環境設定 → セキュリティとプライバシー を開きます
- 左下の鍵アイコンをクリックし、管理者のパスワードを入力してロックを解除します
- プライバシー タブに切り替えます
- 左側のリストで フルディスクアクセス を見つけます
- 「+」ボタンをクリックし、ClashXアプリを追加します(通常は /アプリケーション 内にあります)
- ClashXの横のチェックボックスがオンになっていることを確認します
- ClashXのメニューバーで、設定 → 実験的機能 → ネットワーク拡張機能をインストール をクリックします
- 管理者のパスワードを入力し、インストールが完了するまで待ちます
ネットワーク拡張機能を初めてインストールするとき、システムにセキュリティプロンプトが表示される場合があります。システム環境設定 → セキュリティとプライバシー → 全般 で「許可」をクリックしてください。権限の問題が発生した場合は、Macを再起動してもう一度試してください。
ステップ 2: 設定ファイルを編集する
設定ファイルにTUNモードの構成項目を追加します。
- ClashXメニューバーアイコンをクリック → 設定 → 設定フォルダを開く
- テキストエディタ(テキストエディット、VS Codeなど)を使用して、現在の設定ファイルを開きます
- 設定ファイルの先頭(一般設定エリア)に以下の内容を追加します:
# TUN モード設定
tun:
enable: true
stack: system # または gVisor。system の方がパフォーマンスが良いです
dns-hijack:
- any:53
auto-route: true # ルーティングテーブルを自動構成
auto-detect-interface: true # 送出インターフェースを自動検出
stack パラメータ: 最高のパフォーマンスを得るために system を使用することをお勧めします。互換性の問題が発生した場合は gvisor を試してください。
dns-hijack: すべてのDNSリクエストをClashにハイジャックし、DNS漏洩を防ぎます。
auto-route: システムのルーティングテーブルを自動的に構成するため、手動セットアップは不要です。
ステップ 3: DNS構成を設定する
TUNモードでは、最適なパフォーマンスとプライバシー保護のためにDNS構成が必要です。
設定ファイルにDNS構成を追加または修正します(tun構成と同じレベル):
dns:
enable: true
listen: 0.0.0.0:53
enhanced-mode: fake-ip # または redir-host。fake-ip の方がパフォーマンスが良いです
fake-ip-range: 198.18.0.1/16
nameserver:
- 223.5.5.5 # AliDNS
- 119.29.29.29 # Tencent DNS
- 114.114.114.114 # 114 DNS
fallback:
- https://1.1.1.1/dns-query # Cloudflare DoH
- https://dns.google/dns-query # Google DoH
fallback-filter:
geoip: true
ipcidr:
- 240.0.0.0/4
ステップ 4: ルーティングルールを設定する
どのトラフィックをプロキシ経由にし、どれを直接接続にするかを決定するプロキシルールを構成します。
設定ファイルに基本的なルールが含まれていることを確認してください(通常、サブスクリプション設定には含まれています):
rules:
# ローカルネットワークを直接接続
- DOMAIN-SUFFIX,local,DIRECT
- IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
- IP-CIDR,10.0.0.0/8,DIRECT,no-resolve
- IP-CIDR,172.16.0.0/12,DIRECT,no-resolve
- IP-CIDR,127.0.0.0/8,DIRECT,no-resolve
# 国内(日本・中国など)サイトを直接接続
- GEOIP,JP,DIRECT
- GEOIP,CN,DIRECT
# その他のトラフィックをプロキシ経由に
- MATCH,PROXY
ステップ 5: 有効化と確認
- 設定ファイルを保存します
- ClashXメニューの 設定 → 設定ファイルを再読み込み をクリックします
- ClashXメニュー → システムプロキシに設定 をクリックしてチェックを外します(TUNモードでは不要です)
- ClashXメニュー → 拡張モード → TUNモード をクリックして、チェックが入っていることを確認します
- 利用可能なプロキシノードを選択します
- ブラウザや任意のアプリを開いて、ネットワーク接続をテストします
TUNモードが正常に開始されると、ClashXのメニューバーアイコンの横に小さな点が表示され、ステータスバーに「拡張モード有効」と表示されます。この時点で、Mac上のすべてのアプリケーションのネットワークトラフィックは、ClashXのプロキシルールを通じて処理されます。
DNS構成の最適化
DNS構成は、TUNモードのパフォーマンスとプライバシーの鍵です。適切なDNS構成により、アクセス速度が大幅に向上し、DNS漏洩を防ぐことができます。
Fake-IP vs Redir-Host
Fake-IP モード (推奨)
- 仕組み: 偽のIPアドレス(198.18.0.0/16の範囲)を返し、ドメイン名で直接接続します
- 利点: 接続確立が速い、DNS解決の遅延が少ない、正確なルールマッチングが可能
- 欠点: 一部のアプリ(NASアクセスやローカルサービスなど)と互換性がない場合があります
- 使用例: 日常利用、ゲーム加速、ストリーミングメディアへのアクセス
Redir-Host モード
- 仕組み: 本物のIPアドレスを返し、通常のDNS解決プロセスを行います
- 利点: 互換性が高く、あらゆるアプリケーションシナリオに適しています
- 欠点: DNS解決に余分な時間がかかり、接続がわずかに遅くなります
- 使用例: ローカルサービス、NAS、ルーター管理インターフェースへのアクセス
DNSサーバーの選択
1.1.1.1 (日本の場合)
8.8.8.8
DNS漏洩の防止
DNSリクエストがローカルISPに漏洩するのを防ぐために、設定ファイルに以下の設定が含まれていることを確認してください:
dns:
enable: true
listen: 0.0.0.0:53
enhanced-mode: fake-ip
fake-ip-filter: # これらのドメインは fake-ip を使用しません
- '*.lan'
- 'localhost.ptlogin2.qq.com'
nameserver:
- 223.5.5.5
- 119.29.29.29
fallback:
- https://1.1.1.1/dns-query
- https://dns.google/dns-query
fallback-filter:
geoip: true # 国内IPには nameserver、それ以外には fallback を使用
geoip-code: JP
ルール構成の推奨事項
適切なルール構成により、ネットワークパフォーマンスを最適化し、不要なプロキシトラフィックを減らすことができます。
基本的なルールテンプレート
rules:
# 広告ドメインをブロック
- DOMAIN-KEYWORD,adservice,REJECT
- DOMAIN-SUFFIX,googlesyndication.com,REJECT
# ローカルネットワークを直接接続
- DOMAIN-SUFFIX,local,DIRECT
- IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
- IP-CIDR,10.0.0.0/8,DIRECT,no-resolve
- IP-CIDR,172.16.0.0/12,DIRECT,no-resolve
- IP-CIDR,127.0.0.0/8,DIRECT,no-resolve
# 一般的な国内サイトを直接接続
- DOMAIN-SUFFIX,jp,DIRECT
- DOMAIN-KEYWORD,yahoo,DIRECT
- DOMAIN-KEYWORD,rakuten,DIRECT
# ストリーミングサービスをプロキシ経由に
- DOMAIN-KEYWORD,youtube,PROXY
- DOMAIN-KEYWORD,netflix,PROXY
- DOMAIN-SUFFIX,twitter.com,PROXY
# 国内IPを直接接続
- GEOIP,JP,DIRECT
- GEOIP,CN,DIRECT
# その他のトラフィックをプロキシ経由に
- MATCH,PROXY
ルールの優先順位
Clashはルールを上から順に照合し、一致するものが見つかった時点で停止します。そのため、以下の順序で配置する必要があります:
1. REJECTルール (広告ブロック) を一番上に
2. 完全一致 (DOMAIN) をその下に
3. キーワード一致 (DOMAIN-KEYWORD) を中間に
4. IPルール を後半に
5. MATCH (フォールバックルール) を一番最後に
推奨されるルールセット
ルールセットを使用すると、構成を簡素化し、ルールを自動的に更新できます。推奨されるルールセット:
- Loyalsoldier ルールセット: 一般的なウェブサイトのルーティングルールを網羅しています
- ACL4SSR ルールセット: きめ細かなルーティングで、上級ユーザーに適しています
- DivineEngine ルールセット: プライバシーと広告ブロックに重点を置いています
TUNモードが動作していることを確認する
以下の方法を使用して、TUNモードが正常に開始され、正しく動作しているかを確認してください。
方法 1: ネットワークインターフェースを確認する
ターミナルを開き、以下のコマンドを実行します:
ifconfig | grep utun
utun で始まるネットワークインターフェース(utun3、utun4など)が表示されれば、TUNデバイスは正常に作成されています。
方法 2: ルーティングテーブルを確認する
以下のコマンドを実行してルーティングテーブルを表示します:
netstat -nr | grep utun
utunインターフェースを指すルートエントリが表示されれば、ルーティング構成は成功しています。
方法 3: アプリケーションの接続をテストする
システムプロキシをサポートしていないアプリ(コマンドラインツールなど)がプロキシを使用できるかテストします:
curl -I https://www.google.com
Googleに正常にアクセスできれば、TUNモードは正しく機能しています。
方法 4: DNS解決を確認する
DNSが正しくハイジャックされているかを確認します:
nslookup www.google.com
返されるDNSサーバーが 127.0.0.1 (ローカル) であれば、DNSハイジャックは成功しています。
これら4つの方法すべてで検証に合格すれば、TUNモードは完璧に構成されています。これで、Mac上のすべてのアプリケーションからのすべてのネットワークトラフィックがClashXのプロキシルールを通じて処理され、真のグローバルプロキシが実現されます。
一般的な問題のトラブルシューティング
TUNモードの使用時に遭遇する可能性のある問題とその解決策です。
問題 1: TUNモードを有効にできない
「拡張モード」→「TUNモード」をクリックしてもメニュー項目にチェックが入らない、またはチェックしてもすぐに外れてしまう。
解決策- ネットワーク拡張機能がインストールされているか確認:ClashXメニュー → 設定 → 実験的機能 → ネットワーク拡張機能をインストール
- フルディスクアクセスを許可:システム環境設定 → セキュリティとプライバシー → プライバシー → フルディスクアクセス
- システム環境設定 → セキュリティとプライバシー → 全般 に「許可」プロンプトが出ていないか確認
- ClashXを再起動、またはMacを再起動
問題 2: 有効にした後、インターネットに繋がらない
TUNモードは有効になっているが、すべてのネットワーク接続が失敗する。
解決策- プロキシノードが利用可能か確認:別のノードに切り替えてみる
- DNS構成を確認:
dns.enable: trueになっているか - ルール構成を確認:
MATCHフォールバックルールがあるか - TUNモードを一旦無効にし、システムプロキシモードでノードをテストしてみる
問題 3: 一部のアプリが接続できない
ほとんどのアプリは動作するが、一部のアプリ(NASアクセスやローカルサービスなど)が接続できない。
解決策- LANのIP範囲を直接接続ルールに追加:
IP-CIDR,192.168.0.0/16,DIRECT - fake-ipモードを使用している場合、ローカルドメインを
fake-ip-filterに追加 - redir-hostモードへの切り替えを試す:
enhanced-mode: redir-host
問題 4: ネットワーク速度が遅い
TUNモードを有効にした後、ネットワーク速度が著しく低下する。
解決策gvisorではなくstack: systemを使用してパフォーマンスを向上させるredir-hostではなくfake-ipモードを使用する- ルール構成を最適化し、国内サイトやIPを直接接続に設定する
- プロキシノードの品質を確認し、より低レイテンシなノードに切り替える
問題 5: 権限エラー
「権限が不足しています」または「管理者権限が必要です」というエラーメッセージが表示される。
解決策- ターミナルを開き、以下を実行:
sudo chown root:admin /Applications/ClashX.app/Contents/Library/LaunchServices/ClashX.HelperTool - 続けて実行:
sudo chmod +s /Applications/ClashX.app/Contents/Library/LaunchServices/ClashX.HelperTool - ネットワーク拡張機能を再インストール:ClashXメニュー → 設定 → 実験的機能 → ネットワーク拡張機能をインストール
- Macを再起動してもう一度試す
パフォーマンス最適化のヒント
TUNモードのパフォーマンスをさらに向上させるための最適化のヒントです。
1. 最適なプロトコルスタックを選択する
推奨: stack: system
- system スタック: OS標準のネットワークスタックを使用し、最高のパフォーマンスと最低のレイテンシを提供します
- gvisor スタック: Goで実装されたユーザ空間ネットワークスタック。互換性は良いですがパフォーマンスはわずかに低下します
- Apple Silicon Macでは、systemスタックの優位性がより顕著になります
2. DNS構成の最適化
- DNS解決の遅延を避けるために
fake-ipモードを使用する - 最も近いDNSサーバーを使用する(国内はGoogle/Cloudflare、状況に応じてプロバイダー指定のもの)
- セキュリティと干渉耐性を高めるために DoH (DNS over HTTPS) を有効にする
- ローカルサービスドメインを除外するために
fake-ip-filterを適切に構成する
3. プロキシルールの合理化
- 頻繁にアクセスするドメインをリストの上部に配置して照合を高速化する
GEOIP,JP,DIRECTを使用して国内トラフィックを直接接続にし、プロキシ負荷を軽減するDOMAIN-KEYWORDルールは照合効率に影響するため、多用しすぎない- 使用されていないルールを定期的に整理する
4. 高品質なノードの選択
- レイテンシテストを使用して、最も遅延の少ないノードを選択する
- より良いパフォーマンスのために、XTLSやRealityプロトコルをサポートするノードを優先する
- 混雑した公開ノードを避ける
- (サブスクリプションがサポートしている場合)最速ノードの自動選択機能を有効にする
5. システムレベルの最適化
- 競合を避けるために不要なVPNや他のプロキシツールを閉じる
- 最高の互換性のために、macOSを最新バージョンに保つ
- キャッシュと接続をクリアするために定期的にClashXを再起動する
- Apple Silicon Macでは、必ずARM64ネイティブバージョンを使用していることを確認する
MacBook Pro M2 において、最適化されたTUNモード構成の場合:
• ネットワーク遅延の増加: 5-8ms
• 速度低下: <3%
• メモリ使用量: 60-80MB
• CPU使用率: <2% (アイドル時)
よくある質問
Q1: TUNモードと拡張モードは同じものですか?
はい。ClashXにおいて「拡張モード(Enhanced Mode)」はTUNモードのことを指します。メニューでは「拡張モード」と表示され、設定ファイルでは tun フィールドを使用します。
Q2: TUNモードを有効にした後も「システムプロキシに設定」をオンにする必要がありますか?
いいえ。TUNモードはネットワーク層で動作するため、システムプロキシの構成は不要です。実際、両方を同時に有効にすると競合が発生する可能性があります。システムプロキシをオフにし、TUNモードのみを使用することをお勧めします。
Q3: TUNモードで Docker コンテナのトラフィックをプロキシできますか?
はい。TUNモードはネットワーク層で動作するため、Dockerコンテナを含むすべてのネットワークトラフィックをプロキシできます。ただし、TUNデバイスとのIP範囲の競合を避けるために、Dockerのネットワーク構成が正しいことを確認する必要があります。
Q4: TUNモードの使用は検知されますか?
TUNモード自体が検知リスクを高めることはありません。トラフィックの特性は主に、使用しているプロキシプロトコル(Shadowsocks、VMess、Trojanなど)に依存します。TUNモードはトラフィックの捕捉方法を変えるだけであり、暗号化や難読化の手法を変えるものではありません。
Q5: 同じTUN構成を複数のMacで使用できますか?
はい。TUNモードの設定ファイルは複数のMac間で持ち運び可能です。ただし、各Macで個別に権限の付与とネットワーク拡張機能のインストールを行う必要があることに注意してください。設定ファイル自体は直接コピーして使用できます。
Q6: TUNモードは IPv6 をサポートしていますか?
はい。ClashXのTUNモードはIPv6トラフィックをサポートしています。ネットワーク環境とプロキシノードがIPv6をサポートしている場合、TUNモードは自動的にIPv6接続を処理します。設定に ipv6: true を追加することで有効にできます。
Q7: TUNモードが時々自動的にオフになるのはなぜですか?
考えられる理由:1) 設定ファイルの再読み込み時のエラー、2) ネットワーク拡張機能のクラッシュ、3) システム権限の変更。解決策:設定ファイルの構文を確認する、権限を再付与する、またはClashXを再起動する。
Q8: TUNモードと Surge の拡張モードの違いは何ですか?
動作原理は同じで、どちらもネットワーク層に仮想ネットワークインターフェースを作成します。主な違いは実装の詳細と構成オプションにあります。Surgeの拡張モードにはより多くの機能(MITMなど)がありますが、ClashXのTUNモードは完全に無料でオープンソースです。
TUNモードの使用中にこの記事でカバーされていない問題に遭遇した場合は、以下をお試しください:
• ClashX GitHub にアクセスして Issue を確認
• ClashX FAQ ページを確認
• 完全チュートリアル を参照
TUNモード 3ステップ簡易診断 (ターミナル編)
「有効にした後にネットが繋がらない」「一部のアプリがプロキシを通らない」といった場合は、設定ファイルを編集する前にまず以下の最小限のチェックを行ってください。
ステップ 1: TUNインターフェースとルートの存在を確認
ifconfig | grep utun
netstat -nr | grep utun
utunインターフェースが表示されない場合は、権限付与または拡張機能の読み込みに失敗しています。まず承認をやり直してください。
ステップ 2: DNSが期待通りのローカルパスを使用しているか確認
scutil --dns
nslookup www.google.com
解決パスが正しくない場合は、DNS漏洩防止チェックリストに戻り、システムDNSとブラウザのDoHポリシーを調整してください。
ステップ 3: 推測ではなく、ログを使用してルールマッチングを特定
tail -f ~/Library/Logs/ClashX/clashx.log
grep -E "MATCH|RULE|DIRECT|REJECT" ~/Library/Logs/ClashX/clashx.log | tail -n 60
重要なドメインが広すぎるルールに飲み込まれている場合は、ルール優先度ガイドを参照して順序を調整してください。