TUN模式 2025年1月15日 阅读时间 12 分钟

TUN模式完全指南:从原理到配置

深入解析 TUN 模式的工作原理,为什么它比系统代理更强大,如何正确配置以避免常见的坑。无论你使用 Windows、macOS 还是 Linux,都能找到对应的配置方法。

什么是 TUN 模式?

要理解 TUN 模式,首先需要了解操作系统网络通信的基本原理。当应用程序需要访问网络时,它会创建系统调用,请求操作系统内核处理网络数据。传统代理(包括浏览器代理)只在应用层工作,需要应用程序主动"告诉"系统代理的存在。

TUN 模式则不同。它在网络层创建一块虚拟网卡(virtual network interface),操作系统所有的网络流量都会经过这块虚拟网卡。这意味着所有应用程序的网络请求都会被 Clash 接管,无论这个程序是否支持系统代理。

为什么需要 TUN 模式?

让我们用一个真实的场景来说明这个问题:

我们团队的开发环境中使用 Docker 容器来运行各种服务。当需要从 Docker Hub 拉取镜像时,发现速度非常慢。尝试设置 HTTP_PROXY 环境变量后,命令行工具可以走代理了,但新的问题出现了:每个新的 Dockerfile 都要记得添加代理设置,更糟糕的是,某些基础镜像内部的构建工具完全忽略环境变量。

直到我们开启了 TUN 模式。所有问题迎刃而解——Docker 守护进程、容器内的应用、甚至那些"顽固"的构建工具,都自动走分流规则了。

TUN 模式 vs 系统代理

对比项 系统代理 TUN 模式
流量接管范围 仅支持代理的应用 所有应用
命令行工具 不支持 完美支持
Docker 容器 需要配置 自动接管
游戏/客户端软件 通常不支持 支持
配置复杂度 简单 中等
性能开销 极低 约 3-5%

TUN 模式的局限性

没有任何方案是完美的,TUN 模式也有它的局限性:

Windows 平台配置

前置条件

配置步骤

在 Clash Verge 中开启 TUN 模式非常简单:

  1. 打开 Clash Verge,进入「设置」页面
  2. 找到「TUN 模式」选项
  3. 将开关设置为「开」
  4. 首次开启时会提示安装服务组件,点击「安装」

高级配置可以编辑配置文件:

tun:
  enable: true
  stack: system  # 推荐使用 system,兼容性好
  dns-hijack:
    - 8.8.8.8:53
    - 1.1.1.1:53
  auto-route: true
  auto-detect-interface: true

# 推荐同时配置 DNS
dns:
  enable: true
  enhanced-mode: fake-ip  # 强烈推荐
  fake-ip-range: 198.18.0.1/15
  nameserver:
    - 223.5.5.5
    - 119.29.29.29

macOS 平台配置

macOS 上的 TUN 模式需要 macOS 11 (Big Sur) 或更高版本。

配置步骤

  1. 打开 Clash Verge,进入「设置」
  2. 启用「TUN 模式」
  3. macOS 会弹出授权提示,点击「允许」
  4. 可能需要在「系统偏好设置」-「安全性与隐私」中完成授权

推荐配置

tun:
  enable: true
  stack: system  # macOS 上 system 性能最好
  dns-hijack:
    - any:53
  auto-route: true
  bypass-lan: true

Linux 平台配置

Linux 使用 gvisor 作为 TUN 栈,推荐配置如下:

tun:
  enable: true
  stack: gvisor  # Linux 推荐使用 gvisor
  dns-hijack:
    - 8.8.8.8:53
  auto-route: true
  auto-detect-interface: true

常见问题排查

问题:开启 TUN 后无法访问内网

这是最常见的问题。TUN 模式接管了所有流量,包括内网请求。解决方法是在配置中添加内网直连规则:

rules:
  # 内网直连
  - DOMAIN-SUFFIX,local,DIRECT
  - IP-CIDR,192.168.0.0/16,DIRECT
  - IP-CIDR,10.0.0.0/8,DIRECT
  - IP-CIDR,172.16.0.0/12,DIRECT
  # 其他流量
  - MATCH,Proxy

问题:TUN 模式无法开启

检查以下几点:

问题:DNS 解析异常

确保使用了 Fake-IP 模式,并正确配置了 dns-hijack。Fake-IP 会为每个域名分配一个假IP,避免 DNS 污染。

总结

TUN 模式是 Clash Verge 最强大的功能之一。它让所有应用程序都能自动走代理,无需逐个应用配置。如果你还在使用系统代理,强烈建议切换到 TUN 模式——你不会后悔的。

当然,TUN 模式不是银弹。如果你只是需要代理浏览器流量,系统代理已经足够。只有当你需要代理命令行工具、Docker、游戏等"不听话"的程序时,TUN 模式才是最佳选择。

相关推荐