Premium 版本 · Clash文档

功能:TUN 设备

用 Clash Premium TUN 接管 TCP、UDP 与 ICMP 时,核对 auto-route、auto-redir、system/gvisor 和 DNS 劫持设置,确认系统限制再启用。

  • auto-route
  • auto-redir
  • dns-hijack
  • gvisor
  • interface-name
Premium 版本
本文章节

历史文档适用范围

本文保留原版 Clash / Clash Premium 的历史用法,适合核对旧配置。文中的“仅 Premium”“暂不支持”及平台限制不代表当前 Mihomo 的能力;不要据此替换现用客户端的配置或运行权限命令。

使用 Mihomo 时,请对照 Mihomo 当前配置文档;图形界面、安装和授权操作请以 对应客户端的项目说明 为准。

Premium 内核支持 TUN 设备。作为网络层设备,它可以用来处理 TCP、UDP、ICMP 流量。它已经在生产环境中进行了广泛的测试和使用——您甚至可以用它来玩竞技游戏。

使用 Clash TUN 的最大优势之一是内置支持对操作系统路由表、路由规则和 nftable 的自动管理。您可以通过选项 tun.auto-route 和 tun.auto-redir 来启用它。这个功能替换了古老的配置选项 redir-port(TCP),以方便配置和提高稳定性。

TIP

tun.auto-route 仅在 macOS、Windows、Linux 和 Android 上可用,并且仅接收 IPv4 流量。tun.auto-redir 仅在 Linux 上可用(需要内核 netlink 支持)。

下文保留原版 Premium 的 system/gvisor 用法。当前 TUN 故障应先核对实际内核和客户端版本;界面、安装或权限问题请向对应客户端反馈,确认属于 Mihomo 内核的问题再使用 Mihomo 问题反馈。不确定项目归属时,可先查看 客户端及项目来源;原版 Clash 的新建 Issue 入口已失效。反馈前请删除日志与配置中的订阅令牌、密码等信息。

技术限制

  • 对于 Android,控制设备位于 /dev/tun 而不是 /dev/net/tun,您需要先创建一个软链接(i.e. ln -sf /dev/tun /dev/net/tun)

  • 如果系统 DNS 位于私有 IP 地址上,DNS 劫持可能会失败(因为 auto-route 不会捕获私有网络流量)。

Linux、macOS 和 Windows

这是 TUN 功能的示例配置:

yaml
interface-name: en0 # 与 `tun.auto-detect-interface` 冲突

tun:
  enable: true
  stack: system # or gvisor
  # dns-hijack:
  #   - 8.8.8.8:53
  #   - tcp://8.8.8.8:53
  #   - any:53
  #   - tcp://any:53
  auto-route: true # manage `ip route` and `ip rules`
  auto-redir: true # manage nftable REDIRECT
  auto-detect-interface: true # 与 `interface-name` 冲突

请注意,由于使用了 TUN 设备和对系统路由表、nftable 的操作,Clash 在此处将需要超级用户权限来运行。

shell
sudo ./clash

如果您的设备已经有一些 TUN 设备,Clash TUN 可能无法工作——您必须手动检查路由表和路由规则。在这种情况下,fake-ip-filter 也许也有帮助。

Windows

您需要访问 WinTUN 网站 并下载最新版本。之后,将 wintun.dll 复制到 Clash 主目录。示例配置:

yaml
tun:
  enable: true
  stack: gvisor # or system
  dns-hijack:
    - 198.18.0.2:53 # 当 `fake-ip-range` 是 198.18.0.1/16, 应该劫持 198.18.0.2:53
  auto-route: true # 为 Windows 自动设置全局路由
  # 推荐使用 `interface-name`
  auto-detect-interface: true # 自动检测接口, 与 `interface-name` 冲突