最近更新:2026-08-06

TUN DECISION

TUN 通过虚拟网卡和路由接管匹配流量。系统代理已覆盖目标应用时不必开启;未覆盖时再做对照。

  • 先测系统代理确认目标应用是否已经被覆盖。
  • 再开 TUN只把未接管流量作为对应变量。
  • 注意冲突企业 VPN、虚拟网卡、WSL2、DNS 都可能和 TUN 互相影响。
SETUP按客户端配置

优先使用客户端内置服务模式与默认 stack,再按官方字段排查。

看跨平台配置 →
FIX开了就断网

先回退 TUN,再检查路由、DNS、权限、防火墙和其他隧道。

看断网排查 →
💡 阿信避坑实测提醒(2026 稳定防失联建议):
无论选用何种客户端配置,科学上网最核心的基石在于节点线路抗封锁质量与服务商冗余。阿信实测建议:
1. 主力日常与流媒体/AI 访问:首推 榴莲云 (IEPL专线),原生纯净 IP 晚高峰 4K 零卡顿,可使用独家专属 7 折优惠码 ll88(支持月付折后仅 ¥16.8/月);
2. 防失联备用容灾方案:建议同步备用 月之暗面 (Moonshot),25元包年 / 5元月付,全节点 1 倍率不限速不限设备数,性价比极高;
3. 更多经过用户确认核验的高速专线,请查阅 2026 机场推荐天梯榜中心。

什么是 TUN 模式 ​

TUN (网络隧道) 模式 通过创建虚拟网卡,并按 auto-route、包含 / 排除项与系统路由把流量送入 mihomo。它能覆盖不遵守系统代理的应用,但不代表任何平台、任何配置都会接管所有流量。

与系统代理的本质区别 ​

维度系统代理TUN 模式
工作层级应用层(HTTP/HTTPS/SOCKS)网络层(IP 层)
覆盖范围遵守系统代理或手动指定代理的应用被 TUN 路由与排除规则选中的流量
需要应用支持应用需要读取代理设置应用通常无需感知代理,但仍受路由与平台限制
权限要求普通用户管理员/root
性能开销按应用与实现测量按 stack、路由、DNS、设备与端点测量
典型场景浏览器、终端工具游戏、即时通讯、不支持代理的应用

什么时候考虑使用 TUN ​

先记录目标应用、连接和日志,再判断:

  • 游戏、即时通讯、AI 客户端或命令行工具没有读取系统代理,且流量需要进入 mihomo。
  • 容器、WSL2 或虚拟机确有透明路由需求,并已确认接口、内网和组织策略。
  • 需要让匹配的传统 DNS 查询进入 mihomo,并能核对 dns-hijack、私人 DNS、局域网 DNS 与平台限制。

什么时候不建议用 TUN ​

  • 系统代理已覆盖目标应用。
  • 企业 VPN、内网网段或组织策略尚未确认。
  • 无法在路由、DNS 或权限出错时立即关闭 TUN 回退。
⚠️
TUN 与企业 VPN 不一定技术上绝对互斥,但经常争用默认路由、DNS 和内网网段。没有组织授权和明确路由设计时,先关闭 TUN,再连接企业 VPN。

跨平台配置指南 ​

Windows 配置 ​

1. 使用客户端内置服务模式 ​

Clash Verge Rev / Clash Party(原 Mihomo Party)通常通过内置服务模式申请 TUN 所需权限。优先在客户端界面安装或修复服务,不要从第三方来源下载 DLL,也不要把不同客户端的驱动文件互相复制。

自动安装失败时,按 服务模式 / TUN 权限失败 检查安装位置、管理员授权、安全软件和旧服务残留。

2. Windows 特有问题 ​

UAC 提示频繁弹出
每次开机都弹 UAC 时,先确认客户端的服务模式已正确安装。不要把整个 GUI 长期设为管理员运行来掩盖服务安装失败。

与 Hyper-V / WSL2 冲突
Hyper-V、WSL2、Docker 或虚拟机可能增加接口和路由。先记录接口、默认路由与冲突网段,使用 auto-detect-interface 或明确排除项做验证;不要把禁用 Hyper-V 当作首个排障动作。

macOS 配置 ​

首次启用时按客户端官方流程批准网络扩展或 VPN 配置。权限反复弹出时记录 macOS、客户端版本与服务日志,确认应用安装位置和扩展状态;iCloud Private Relay 只在冲突可复现时作单变量对照。

Linux 配置 ​

1. 手动创建 TUN 设备 ​

大多数 Linux 发行版需要手动启用 TUN:

bash
# 检查 TUN 模块是否加载
lsmod | grep tun

# 如果没有,手动加载
sudo modprobe tun

# 开机自动加载
echo "tun" | sudo tee -a /etc/modules

2. Clash 配置示例 ​

编辑 config.yaml:

yaml
tun:
  enable: true
  stack: system  # 或 gvisor / mixed
  dns-hijack:
    - any:53
  auto-route: true
  auto-detect-interface: true

3. systemd 服务配置 ​

让 Clash 开机自启 + TUN 权限:

bash
# 创建服务文件
sudo nano /etc/systemd/system/clash.service

内容:

ini
[Unit]
Description=Clash daemon
After=network.target

[Service]
Type=simple
User=root
ExecStart=/usr/local/bin/clash -d /etc/clash
Restart=on-failure

[Install]
WantedBy=multi-user.target

启动:

bash
sudo systemctl enable clash
sudo systemctl start clash
ℹ️
Linux 上 TUN 模式需要 root 权限,不建议用普通用户运行。

TUN 高级配置 ​

DNS 劫持与分流 ​

yaml
tun:
  enable: true
  stack: system
  dns-hijack:
    - any:53           # 劫持所有 DNS 查询
    - tcp://any:53     # 也劫持 TCP DNS
  auto-route: true
  auto-detect-interface: true

dns:
  enable: true
  listen: 0.0.0.0:53
  enhanced-mode: fake-ip  # 或 redir-host
  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
    ipcidr:
      - 240.0.0.0/4

Stack 模式选择 ​

Stack实现方式优点缺点推荐场景
system系统原生 TCP/IP 栈资源占用相对低、覆盖较全面受系统防火墙与内核行为影响兼容性对照
gvisor用户态 TCP/IP 栈隔离性与跨平台行为不同兼容和性能表现需按平台实测默认或故障对照
mixedTCP 用 system、UDP 用 gvisor组合两种实现仍受防火墙与具体客户端支持影响当前 mihomo 文档的常用建议

新手建议: 先保留客户端生成的默认值;需要手动选择时按当前 mihomo / 客户端文档测试 mixed,出现可复现问题再单独比较 system 或 gvisor。不要同时改 stack、DNS 和路由。

排除特定应用(Windows) ​

部分应用不希望走 TUN(如本地开发服务器):

yaml
tun:
  enable: true
  # ... 其他配置
  exclude-interface:
    - "VMware*"        # 排除虚拟机网卡
    - "VirtualBox*"
  exclude-package:     # 仅 Android 支持
    - "com.android.vending"

Windows / macOS 暂不支持按应用排除,只能通过规则绕过特定域名/IP。

性能优化 ​

怎么比较开销 ​

TUN 没有跨设备固定的毫秒开销。结果会受客户端核心、stack、路由、DNS、MTU、防火墙、CPU、目标端点和本地网络影响。用同一设备、节点、端点和时间依次测试“系统代理 → TUN 默认配置 → 单独更换 stack”,记录空闲 / 负载延迟、吞吐、CPU 和真实应用结果。

减少性能损耗 ​

  1. 先保留客户端默认 stack,只有可复现问题时再切换对照。
  2. 保持规则和排除项最小化,不要在没有原始错误时同时改 DNS、MTU 与路由。
  3. 用 Rule 验证实际命中,DIRECT / 代理选择应符合目标与内网要求。
  4. 排障时保留必要日志,问题解决后再降低日志级别。

常见问题排查 ​

开启 TUN 后所有网页都打不开了
先关闭 TUN 恢复系统代理,再保存日志并依次核对服务权限、路由、DNS、防火墙和其他隧道;不要同时改 stack、MTU 与 DNS。完整流程见 TUN 模式开启后断网怎么办。
TUN 模式下部分国内网站打不开
原因: 国内网站也被强制走了代理,但节点到国内速度慢。

解决方案:

  1. 确认 Clash 规则模式是 Rule(而非 Global)
  2. 检查规则集是否包含国内域名/IP 的 DIRECT 规则
  3. 更新订阅(机场可能更新了规则)
  4. 手动添加直连规则:
yaml
rules:
  - DOMAIN-SUFFIX,baidu.com,DIRECT
  - DOMAIN-SUFFIX,qq.com,DIRECT
  - GEOIP,CN,DIRECT
TUN 模式下 DNS 泄漏怎么办?
单个检测站不足以证明所有查询路径。记录目标、`dns-hijack`、私人 DNS、浏览器 DoH、企业 / 局域网 DNS 和平台限制,再用多个实际解析错误复测。完整流程见 DNS 泄露与解析异常怎么排查。
TUN 模式与 VPN 冲突怎么办?
先遵守公司或学校的网络策略。两者可能争用默认路由、DNS、内网网段和虚拟网卡,但并非所有实现都绝对不能共存。保存路由表和错误,先关闭 TUN 确认企业 VPN 能恢复;确需组合时由网络管理员明确分流、排除网段和 DNS,不在个人设备上盲目叠加。
macOS 每次重启都要重新授权?
按客户端官方说明检查网络扩展、VPN 配置和防火墙状态;“完全磁盘访问”不是 TUN 的通用前置权限。持续失败时保存版本与服务日志,先回退系统代理,再按客户端 Issue 排查。

安全性考虑 ​

TUN 模式更安全吗? ​

不能只凭是否开启 TUN 判断。TUN 可以覆盖更多不遵守系统代理的流量,也扩大了虚拟网卡、路由、DNS 和管理员服务的权限范围;是否泄漏仍取决于 auto-route、dns-hijack、排除规则、应用自带 DoH / 私人 DNS 及平台实现。

最佳实践 ​

  1. 只在目标流量确实未被覆盖时开启 TUN
  2. 定期更新 Clash 客户端(修复安全漏洞)
  3. 不要用野配置(来路不明的 config.yaml 可能包含恶意规则)
  4. 启用规则模式(Global 模式会让国内流量也绕一圈,增加泄漏风险)

推荐阅读 ​