什麼是 TUN 模式?
TUN(Network TUNnel)模式是 ClashX 提供的增強代理模式,它透過建立虛擬網路介面(TUN 設備),在作業系統的網路層實現全域性流量攔截和轉發。
TUN 模式工作在網絡層(Layer 3),可以捕獲系統中所有應用的網絡流量,無論該應用是否支援代理設定。這意味着你可以實現真正的"全局代理",包括命令行工具、後臺服務、甚至是不支持系統代理的應用程序。
TUN 模式的主要優勢
- 真正的全局代理:所有應用的網路流量都會被代理,無一遺漏
- 無需應用配置:不需要為每個應用單獨配置代理設定
- 支持 UDP 流量:可以代理 UDP 協議,支援遊戲、視訊會議等場景
- 更好的 DNS 控制:可以完全控制 DNS 解析過程,防止 DNS 泄露
- 規則優先順序更高:在網絡層工作,規則匹配更精確
- 防止代理繞過:應用無法繞過代理直接連接
TUN 模式的工作原理
當 TUN 模式啟動後,ClashX 會建立一個虛擬網路介面(通常命名為 utun),系統會將所有網路流量路由到這個虛擬介面。ClashX 接收到流量後,根據配置的規則決定是透過代理伺服器轉發,還是直接連線目標地址。
TUN 模式 vs 系統代理模式對比
瞭解 TUN 模式和傳統系統代理模式的區別,有助於你選擇最適合的代理方式。
| 對比項 | TUN 模式 | 系統代理模式 |
|---|---|---|
| 工作層級 | 網絡層(Layer 3) | 應用層(Layer 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 已正常安裝並能夠使用系統代理模式
- ☑️ 準備好管理員賬戶密碼(配置過程中需要授權)
- ☑️ 備份當前配置文件(避免配置出錯導致無法恢復)
- ☑️ 關閉其他代理工具(避免端口衝突)
- ☑️ 確認訂閱或配置文件正常可用
5步開啟 TUN 模式
按照以下步驟,你可以在 10 分鐘內成功開啟並配置 ClashX 的 TUN 模式。
第1步:授予系統權限
TUN 模式需要建立虛擬網路介面,必須先授予 ClashX 相應的系統權限。
- 打開 系統偏好設置 → 安全性與隱私
- 點選左下角鎖圖示,輸入管理員密碼解鎖
- 切換到 隱私 標簽頁
- 在左側列表中找到 完全磁碟訪問許可權
- 點選 + 號,添加 ClashX 應用(通常在 /Applications 目錄)
- 確保 ClashX 旁邊的勾選框已選中
- 在 ClashX 選單欄中,點選 配置 → 實驗性功能 → 安裝網路擴充套件
- 輸入管理員密碼,等待安裝完成
首次安裝網路擴充套件時,系統可能會彈出安全提示,請在系統偏好設置的 安全性與隱私 → 通用 中點選"允許"按鈕。如果遇到權限問題,重啟 Mac 後再次嘗試。
第2步:編輯配置文件
在配置文件中添加 TUN 模式的配置項。
- 點選 ClashX 選單欄圖示 → 配置 → 開啟配置資料夾
- 使用文本編輯器(如 TextEdit、VS Code)打開當前使用的配置文件
- 在配置檔案的頂部(general 配置區域)新增以下內容:
# 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 # 阿里 DNS
- 119.29.29.29 # 騰訊 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,CN,DIRECT
# 其他流量走代理
- MATCH,PROXY
第5步:啟用並驗證
- 保存配置文件
- 在 ClashX 選單中點選 配置 → 重載配置文件
- 點選 ClashX 菜單 → 設置為系統代理(取消勾選,TUN 模式下不需要)
- 點選 ClashX 菜單 → 增強模式 → TUN 模式(確保已勾選)
- 選擇一個可用的代理節點
- 開啟瀏覽器或任何應用測試網路連線
當 TUN 模式成功啟動後,ClashX 的選單欄圖示旁會顯示一個小圓點,且狀態列會顯示"增強模式已啟用"。此時所有應用的網路流量都會透過 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 伺服器選擇
119.29.29.29
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,國外 IP 使用 fallback
geoip-code: CN
規則配置建議
合理的規則配置可以最佳化網路效能,減少不必要的代理流量。
基礎規則模板
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,cn,DIRECT
- DOMAIN-KEYWORD,baidu,DIRECT
- DOMAIN-KEYWORD,taobao,DIRECT
- DOMAIN-KEYWORD,jd,DIRECT
# 流媒體服務走代理
- DOMAIN-KEYWORD,youtube,PROXY
- DOMAIN-KEYWORD,netflix,PROXY
- DOMAIN-SUFFIX,twitter.com,PROXY
# 國內 IP 直連
- GEOIP,CN,DIRECT
# 其他流量走代理
- MATCH,PROXY
規則優先順序
Clash 按照從上到下的順序匹配規則,一旦匹配成功就不再繼續。因此應該將:1. REJECT 規則(廣告攔截)放在最前面2. 精確匹配(DOMAIN)放在前面3. 模糊匹配(DOMAIN-KEYWORD)放在中間4. IP 規則放在後面5. MATCH(兜底規則)放在最後
規則集推薦
使用規則集可以簡化配置,自動更新規則。推薦以下規則集:
- Loyalsoldier 規則集:涵蓋常用網站分流規則
- ACL4SSR 規則集:精細化分流,適合高級用戶
- DivineEngine 規則集:注重隱私和廣告攔截
驗證 TUN 模式是否生效
通過以下方法可以驗證 TUN 模式是否成功啟動並正常工作。
方法1:檢查網絡接口
打開終端(Terminal),執行以下命令:
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 訪問、本地服務)無法連接。
解決方法- 將區域網 IP 段新增到直連規則:IP-CIDR,192.168.0.0/16,DIRECT
- 如果使用 fake-ip 模式,將本地域名新增到 fake-ip-filter
- 嘗試切換到 redir-host 模式:enhanced-mode: redir-host
問題4:網絡速度變慢
開啟 TUN 模式後,網絡速度明顯下降。
解決方法- 使用 stack: system 而非 gvisor,性能更好
- 使用 fake-ip 模式代替 redir-host
- 最佳化規則配置,將國內網站和 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 棧:使用系統原生網路棧,性能最佳,延遲最低
- gvisor 棧:Go 語言實現的使用者態網路棧,兼容性更好但性能稍低
- 在 Apple Silicon Mac 上,system 棧優勢更明顯
2. 優化 DNS 配置
- 使用 fake-ip 模式,避免 DNS 解析延遲
- 使用距離最近的 DNS 服務器(國內用阿里/騰訊,海外用 Cloudflare)
- 啟用 DoH(DNS over HTTPS)提升安全性和抗干擾能力
- 合理配置 fake-ip-filter,排除本地服務域名
3. 精簡代理規則
- 將高頻訪問的域名放在規則列表前面,加快匹配速度
- 使用 GEOIP,CN,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%(空閒時)
常見問題 FAQ
Q1: TUN 模式和增強模式是一回事嗎?
是的。在 ClashX 中,"增強模式"就是指 TUN 模式。菜單中顯示為"增強模式",配置文件中使用 tun 字段。
Q2: 開啟 TUN 模式後還需要開啟系統代理嗎?
不需要。TUN 模式在網絡層工作,無需配置系統代理。實際上,同時開啟系統代理和 TUN 模式可能導致衝突。建議關閉系統代理,僅使用 TUN 模式。
Q3: TUN 模式能代理 Docker 容器的流量嗎?
可以。TUN 模式工作在網絡層,可以代理包括 Docker 容器在內的所有網路流量。但需要確保 Docker 的網絡配置正確,避免與 TUN 設備的 IP 段衝突。
Q4: 使用 TUN 模式會被檢測到嗎?
TUN 模式本身不會增加被檢測的風險。流量特徵主要取決於你使用的代理協議(如 Shadowsocks、VMess、Trojan)。TUN 模式只是改變了流量捕獲方式,不影響流量加密和偽裝。
Q5: 可以在多臺 Mac 上使用相同的 TUN 配置嗎?
可以。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 查看 Issues• 查閱 ClashX 常見問題 頁面• 參考 完整使用教程
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
若發現關鍵域名被寬規則吞掉,參考 規則優先順序實戰 調整順序。