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 版本

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

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

TIP

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

Clash 有两种可供选择的 TCP/IP 协议栈:system or gvisor。为了获得最好的性能,我们建议您优先使用 system 栈,只有遇到兼容性问题时才使用 gvisor。并且如果你遇到这样的情况,请立即提交 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` 冲突