跳转到内容

系统代理、TUN 与路由模式

Clash Nyanpasu 提供两种将设备流量交给所选内核处理的方式。路由模式则单独决定内核收到流量后如何处理。

  • 系统代理 操作系统代理设置:设置操作系统代理,只有遵循这些设置的应用程序才会使用。
  • TUN 模式 虚拟网络接口:将 TUN 设置写入当前内核配置,由内核创建虚拟网络接口并路由设备流量。它可以覆盖忽略系统代理的应用程序,但仍取决于内核支持和网络权限。
  • 路由模式 内核策略:决定内核如何路由已接管的流量,不会自动开启系统代理或 TUN。
flowchart LR
    App[应用程序] -->|遵循系统代理| Proxy[系统代理]
    App -->|设备流量接管| Tun[TUN 模式]
    Proxy --> Core[所选内核]
    Tun --> Core
    Core --> Mode{路由模式}
    Mode -->|规则| Rules[配置文件规则]
    Mode -->|全局| Global[全局代理选择]
    Mode -->|直连| Direct[直连出站]
    Mode -->|脚本,若内核支持| Script[脚本策略]

如果你使用的浏览器或其他应用遵循操作系统代理设置,可以先启用系统代理。这是最简单的起点,也不需要 TUN 网络权限;但使用独立代理或网络设置的应用程序可能会绕过系统代理。

如果需要接管忽略系统代理的应用程序流量,可以使用 TUN 模式。Nyanpasu 会将 TUN 设置写入当前内核配置,由所选内核创建虚拟网络接口并改变设备级路由,因此需要内核支持和足够的网络权限。系统代理和 TUN 是独立开关,也可以同时启用;排查流量覆盖范围时,可以先启用其中一种。

这两个开关和路由模式选择器位于设置 → 系统设置。该页面的当前系统代理区域会显示操作系统报告的代理设置,可用来检查系统代理状态,但不能证明某个应用确实使用了它。

这些模式适用于内核处理的流量,无论流量来自系统代理还是 TUN:

模式 作用
规则 根据配置文件中的规则选择出站方式,例如代理组或直连。这通常是推荐的起始模式。
全局 将已接收的流量交给内核的全局代理选择。请在配置文件中选择可用的代理或代理组。
直连 将已接收的流量直接发送,不使用代理出站。

选择 Clash Premium 内核时,选择器还可能显示脚本模式;其他内核可能不提供该模式。详情请查看内核兼容性。

依赖所选内核 TUN 要求所选内核支持当前配置和所用 TUN 堆栈。如果选项不可用或内核拒绝配置,请查看内核兼容性。

  1. 打开设置 → 系统设置,找到系统服务。点击安装;如果服务已停止,再点击启动。操作系统会请求提升权限,授权方式见下方平台标签。
  2. 确认服务已安装、兼容并运行后,开启服务模式。应用会通过系统服务管理内核,由服务向内核提供 TUN 等功能所需的权限。
  3. 在路由模式区域开启 TUN 模式。测试流量前,先确认系统服务状态正常,且服务模式旁没有回退警告。

安装或启动服务时会调用提权辅助程序。如果已安装的服务不兼容,请按系统服务区域的提示重新安装兼容版本。

系统服务的设计目标是只向内核提供系统级功能所需的权限,并让桌面应用保持普通用户权限。设置 → Clash 设置中的TUN 堆栈会按所选内核提供 System、gVisor 和 Mixed 等选项;Clash Premium 不提供 Mixed。不要假设所有内核都支持相同的堆栈和可选 TUN 字段。手动修改内核二进制文件权限不属于应用内置的 TUN 设置流程;请使用系统服务和服务模式。

  • 使用系统代理时,检查当前系统代理,并用遵循操作系统代理设置的应用程序测试。
  • 使用 TUN 时,确认 TUN 模式已开启。如果依赖服务模式,请确认系统服务正在运行且没有回退警告,然后用一个不遵循系统代理的应用程序测试。
  • 如果流量已进入内核但路由不符合预期,请检查配置文件中的规则和所选路由模式。

开关处于启用状态只表示已请求该设置,不能证明每个应用程序的流量都经过内核。

  • 关闭系统代理即可停用 Nyanpasu 设置的系统代理。应用退出时会尝试恢复接管系统代理之前记录的状态。
  • 关闭 TUN 模式即可应用 TUN 已禁用的内核配置。服务模式可以独立保持开启。
  • 使用全局、直连或脚本模式后,选择规则即可恢复按配置文件规则路由。

平台和安装包信息请查看安装指南,内核相关行为请查看内核兼容性,其他问题请查看常见问题。