安装前的通用准备工作
先确认平台、架构与客户端类型
Clash 不是单一安装包,而是一套由代理内核、图形客户端、配置文件和规则数据共同组成的工具链。普通桌面或移动设备用户通常需要图形客户端;服务器、软路由和容器环境才会直接运行 Mihomo 内核。图形客户端负责订阅管理、策略切换、日志查看和系统权限操作,内核负责解析配置、监听本地端口、执行规则匹配并转发连接。下载前先区分这两类软件,可以避免把只有命令行界面的内核当成桌面程序安装。
平台判断不能只看 Windows、macOS 或 Linux 名称,还要确认处理器架构。大多数常规 Windows 电脑使用 x64;采用高通等 ARM 处理器的设备才需要 ARM64。Apple Silicon Mac 使用 macOS ARM64 安装包,Intel Mac 使用 x64 安装包。Android 安装包常见 arm64、arm 与 universal 三类,近年的设备通常优先选择 arm64,不确定时可选 universal。Linux 还要核对发行版包格式,Debian、Ubuntu 及其衍生系统通常使用 deb,Fedora、openSUSE 等系统通常使用 rpm。
| 环境 | 常见架构或格式 | 推荐入口 | 安装前检查 |
|---|---|---|---|
| Windows | x64 | Clash Plus、Clash Verge Rev | 系统版本、管理员权限、安全软件提示 |
| macOS | Apple Silicon / Intel | Clash Plus、Clash Verge Rev | 芯片类型、网络扩展授权、登录项 |
| Android | arm64 / arm / universal | Clash Plus、Clash Meta for Android | 安装来源权限、VPN 权限、省电策略 |
| iOS | App Store 应用 | Clash Plus | 商店账号、VPN 配置授权、后台策略 |
| Linux | deb / rpm / AppImage 或内核压缩包 | Clash Verge Rev、FlClash、Mihomo | 桌面环境、包管理器、服务权限 |
准备订阅地址与基础网络
客户端本身不包含可用代理节点。首次配置前需要准备由服务提供方生成的 Clash 或 Mihomo 兼容订阅地址,或者一份结构完整的 YAML 配置文件。订阅地址通常包含访问凭据,应当像密码一样保存,不要放入截图、公开日志、命令历史或公开代码仓库。若提供方同时给出多个格式,应优先选择明确标注 Clash、Mihomo 或 Meta 的格式;通用分享链接是否能导入,取决于客户端是否内置格式转换能力。
导入前先用当前网络确认订阅地址能够访问。如果浏览器无法打开,客户端通常也无法完成更新。需要认证的订阅可能返回 YAML 文本而不是网页,这是正常现象;返回登录页面、HTML 错误页或空白内容,则说明地址、权限或网络环境存在问题。公司、校园和公共网络可能限制特定连接,首次安装最好在稳定的家庭网络或移动热点下完成,再迁移到目标网络测试。
区分配置、订阅与覆写
订阅是远端配置的来源,配置文件是客户端实际加载的内容,覆写则是在不修改远端订阅的情况下调整本地字段。许多图形客户端会为订阅保存缓存,因此导入成功并不代表每次启动都实时请求远端;更新按钮通常才会重新拉取。修改订阅缓存中的 YAML 可能在下一次更新时被覆盖。需要长期保留的端口、DNS 或规则调整,应使用客户端提供的覆写、合并配置或脚本功能,并在修改前导出原配置。
最小配置至少需要监听端口、代理节点或代理提供者、策略组以及规则。字段之间存在引用关系:规则指向策略组,策略组再选择具体节点;任一名称拼写不一致都会导致加载失败。若准备手工维护 YAML,可先阅读 Clash 配置文件结构解析,理解层级后再调整。YAML 使用空格缩进,不能混用制表符,同一列表下的项目必须保持一致缩进。
记录可回退的初始状态
安装前记录系统原有的代理设置、DNS 设置和 VPN 软件状态。Windows 可查看“设置 → 网络和 Internet → 代理”,macOS 可查看当前网络服务的“详细信息 → 代理”,移动设备则确认是否已有其他 VPN 配置。Clash 与其他 VPN、网络过滤器、抓包工具、家长控制或企业安全软件同时运行时,可能争夺路由表、虚拟网卡或系统代理。首次调试应只保留一个接管网络的工具,连接稳定后再逐项恢复其他软件。
下载入口集中在 客户端页面。其中 Clash Plus 是 Windows、macOS、Android 与 iOS 的首推图形客户端;Linux 桌面可选 Clash Verge Rev 或 FlClash,服务器与路由器环境再考虑 Mihomo 内核。停止维护的 Clash for Windows 和 ClashX Meta 仅适合已有环境迁移或兼容旧配置,不建议用于新的长期部署。
Windows 下载、安装与系统接管
下载安装包并完成首次启动
Windows 普通用户优先选择 Clash Plus,也可根据界面习惯选择 Clash Verge Rev、FlClash 或 Clash Nyanpasu。进入 Windows 下载区域 后,先确认设备架构,再下载完整安装包。绝大多数 Intel 与 AMD 电脑使用 x64。只有系统信息中明确显示 ARM64 的设备才选择 ARM 版本。安装路径建议使用默认位置,避免把程序目录放在需要频繁同步的云盘、临时目录或受严格权限控制的文件夹中。
安装过程中若系统弹出用户账户控制窗口,需要确认操作来源后允许安装。首次启动时,Windows 防火墙可能询问是否允许客户端通信。只在可信网络上运行时可按实际需要授权;若拒绝,通常不会影响本机通过回环地址访问代理端口,但局域网共享、外部控制或部分 TUN 功能可能受限。安装完成后先打开客户端主界面,不要立即启用开机启动,先确认配置和接管方式工作正常。
导入订阅与检查配置状态
在配置或订阅页面选择从 URL 导入,粘贴订阅地址并保存。客户端拉取完成后,应能看到配置名称、策略组和节点列表。若只出现一个空配置,或者导入按钮没有反馈,可打开日志检查 HTTP 状态、超时、证书错误与 YAML 解析信息。导入本地文件时应选择完整的 YAML 文件,而不是浏览器保存下来的 HTML 页面。配置加载成功后,将它设为当前使用配置,再进入代理组页面选择策略。
首次测试建议将主要策略组选为一个明确节点,而不是立即使用自动选择或负载均衡。这样出现连接问题时可以排除健康检查和策略组切换带来的变量。客户端通常会提供延迟测试,但该结果只反映测试地址的连接情况,不等同于所有网站的实际可用性。测试完成后打开日志,在访问普通网页时确认出现规则命中和连接记录。
系统代理的启用与端口关系
Windows 的系统代理适合浏览器、聊天工具和大多数遵循 WinINET 或系统代理设置的桌面应用。开启客户端中的“系统代理”后,系统通常会把 HTTP 与 HTTPS 代理指向本机监听地址。常见监听地址是 127.0.0.1,端口来自配置中的 mixed-port、port 或客户端设置。系统代理只是一条指向本地端口的设置,真正的规则匹配仍由 Clash 内核执行。
如果浏览器可以访问而命令行工具失败,通常不是节点问题,而是程序没有读取 Windows 系统代理。PowerShell、Git、包管理器和开发工具可能需要单独设置代理环境变量或软件内代理。反过来,浏览器扩展若设置了独立代理,也可能绕过系统设置。排查时先关闭浏览器代理扩展,再检查系统代理地址是否与客户端实际监听端口一致。
$env:HTTP_PROXY="http://127.0.0.1:7890"
$env:HTTPS_PROXY="http://127.0.0.1:7890"
curl.exe https://example.com
Remove-Item Env:HTTP_PROXY
Remove-Item Env:HTTPS_PROXY
上面的 PowerShell 设置只对当前终端会话生效,端口需要替换为客户端实际显示的混合代理端口。短期测试使用会话级变量更安全,关闭窗口后不会继续影响其他程序。若要给 Git 单独配置,应使用 Git 自己的配置项,并在不需要时删除,避免客户端关闭后命令仍指向失效的本地端口。
TUN 模式、服务模式与权限
不读取系统代理的应用、部分商店应用和需要处理 UDP 的程序,可使用 TUN 模式。TUN 会创建虚拟网络接口并调整路由,因此通常需要管理员权限或安装服务组件。部分客户端提供“服务模式”,由后台服务代替每次启动时申请管理员权限。安装服务后应重新启动客户端,确认服务状态正常,再开启 TUN。若虚拟网卡创建失败,可检查是否同时运行其他 VPN、虚拟机网络组件或旧版网络过滤驱动。
TUN 开启后并不意味着所有连接都必须走代理。规则模式仍会根据域名、IP、进程或规则集决定直连、代理或拦截。若局域网打印机、NAS 或远程桌面不可访问,应检查私有地址规则和路由排除,而不是直接切换全局模式。常见私网网段应保持直连;企业环境还可能使用自定义内网网段,需要额外加入直连规则。
开机启动、休眠恢复与退出顺序
确认订阅更新、系统代理和 TUN 均能正常工作后,再启用开机启动。若客户端提供“静默启动”“启动后开启系统代理”“启动后开启 TUN”等独立选项,建议分阶段启用。先让客户端随系统启动但不自动接管,观察一次重启;再开启自动代理。这样可以避免服务尚未就绪时系统已经把流量指向本地端口,造成登录后的短暂断网。
Windows 从睡眠或网络切换后,旧连接与 DNS 缓存可能保留。遇到恢复后无法访问,可先关闭系统代理或 TUN,等待客户端重新获取网络状态,再重新开启。退出客户端前应使用界面中的退出命令,让程序恢复系统代理;直接在任务管理器终止进程可能留下代理地址。若已经出现“客户端退出后所有网页都打不开”,进入系统代理设置关闭手动代理,再重新启动客户端检查。
macOS 安装、授权与网络扩展
选择 Apple Silicon 或 Intel 安装包
macOS 首先要区分处理器架构。点击屏幕左上角苹果菜单并打开“关于本机”,芯片显示 Apple M 系列时选择 Apple Silicon 或 ARM64 安装包;处理器显示 Intel 时选择 x64 安装包。首推 Clash Plus,也可使用 Clash Verge Rev 或 FlClash。下载入口位于 macOS 客户端区域。架构选错时,应用可能无法启动,或者依赖转译运行并出现额外兼容问题。
常见安装方式是打开磁盘映像,将应用拖入“应用程序”文件夹,再从该文件夹启动。不要长期直接从磁盘映像中运行,因为挂载路径会变化,登录项、更新和权限记录可能不稳定。首次启动若被系统拦截,应在“系统设置 → 隐私与安全性”中核对应用名称后允许打开。不要反复移动应用位置,macOS 会把不同路径视为不同的授权对象。
导入订阅并允许必要权限
在客户端的配置页面添加远程订阅,完成更新后将其设为活动配置。接着进入策略组选择节点,并通过日志或网页访问验证连接。系统可能在首次开启代理、TUN 或网络扩展时要求输入管理员密码,也可能要求允许添加 VPN 配置。授权窗口来自操作系统,完成后应返回客户端确认开关状态,而不是只看系统弹窗是否消失。
如果客户端提供菜单栏图标,可从菜单栏快速切换系统代理和模式,但复杂配置仍应回到主界面完成。菜单栏图标消失不一定表示进程退出,可能被系统折叠或应用设置为仅后台运行。通过“活动监视器”确认进程状态,比重复启动多个实例更可靠。多个实例同时监听相同端口会导致后启动的内核报端口占用。
系统代理与不同网络服务
macOS 会按网络服务保存代理设置,Wi-Fi、以太网和手机共享可能分别具有独立配置。客户端开启系统代理时通常修改当前活动服务,但网络切换后系统可能恢复另一套代理状态。若 Wi-Fi 下正常、连接网线后失效,应在“系统设置 → 网络”中检查当前服务,而不是只重启客户端。企业配置描述文件也可能锁定代理设置,此时普通应用无法覆盖,需要遵循设备管理策略。
系统代理主要影响遵循 CFNetwork 或系统网络设置的应用。终端中的 curl、SSH、Homebrew 和部分开发工具不会自动采用图形界面的代理设置。可在当前终端临时导出环境变量进行验证:
export HTTP_PROXY=http://127.0.0.1:7890
export HTTPS_PROXY=http://127.0.0.1:7890
curl -I https://example.com
unset HTTP_PROXY
unset HTTPS_PROXY
端口应与客户端当前混合端口一致。若终端测试成功而图形应用失败,检查应用是否使用独立网络扩展、是否缓存旧 DNS,或是否明确禁用了系统代理。若图形应用正常而终端失败,则优先检查环境变量、Shell 启动文件和软件自己的代理设置。
TUN、DNS 与其他网络扩展冲突
TUN 适合需要接管更多应用和 UDP 流量的场景。开启时客户端会安装或调用网络扩展,并修改系统路由。macOS 同一时间可能还运行防火墙、内容过滤器、企业 VPN、虚拟机桥接或其他代理软件,这些组件的处理顺序会影响连接。首次启用 TUN 前,应暂时退出其他网络接管工具,并在“系统设置 → 网络 → VPN 与过滤器”中确认没有重复启用的配置。
如果 TUN 开启后可以访问 IP 地址却无法解析域名,应查看客户端日志中的 DNS 请求,并确认配置使用的 DNS 服务器在当前网络可达。若局域网域名依赖路由器或公司内部 DNS,统一把所有查询发送到公共 DNS 可能导致内网名称失效。可以为内网域名设置独立 nameserver-policy,或让对应域名与私网地址走本地解析。
登录项、退出与系统升级后的检查
需要开机自启时,可使用客户端自身的登录启动选项,并在“系统设置 → 通用 → 登录项”确认状态。不要同时通过多个工具重复添加启动项,否则可能产生两个实例。系统升级后若网络扩展失效,先检查应用权限和后台项目是否仍被允许,再重新安装服务组件。直接删除应用并不会总是清除系统代理,因此移除前应先关闭系统代理和 TUN,再从客户端正常退出。
Android 安装、VPN 权限与后台运行
选择安装包并完成安装
Android 可优先选择 Clash Plus,也可使用 Clash Meta for Android、FlClash 或 Surfboard。进入 Android 下载区域 后,应优先采用与设备架构匹配的安装包。大多数近年手机和平板使用 arm64;较旧设备可能使用 arm;无法确认时可选择 universal,但文件体积通常更大。架构不匹配时系统会直接提示无法安装,或安装后启动失败。
通过浏览器下载应用安装包时,Android 可能要求为当前浏览器或文件管理器开启“允许安装未知应用”。该权限只授权指定应用发起安装,不等于永久放开所有来源。安装完成后可按需要关闭该来源权限。若系统提示安装包与现有应用冲突,通常是签名不同或旧应用使用了相同包名;先导出旧客户端配置,再决定是否卸载,避免订阅与覆写规则一并丢失。
导入订阅与创建 VPN 连接
打开客户端后,在配置页面通过 URL 导入订阅,更新完成后选中该配置。进入代理或策略页面,为主要策略组指定节点。返回主页点击启动时,Android 会弹出 VPN 连接请求,确认后状态栏通常出现 VPN 标识。这个权限用于建立本地虚拟网络接口,让应用流量进入 Clash 内核,并不代表已经选择了可用节点;是否能访问仍取决于配置、策略和 DNS。
如果点击启动后立即停止,应先查看客户端日志。常见原因包括配置解析失败、本地端口冲突、VPN 权限被另一应用占用,或系统不允许后台启动。Android 同一时间通常只允许一个常规 VPN 连接,其他 VPN、广告过滤器、企业安全客户端和部分防火墙会与 Clash 互相替换。测试时关闭其他 VPN,再重新授权。
分应用代理、绕过与本地网络
Android 客户端通常支持分应用代理,可以选择仅代理指定应用,或让指定应用绕过 VPN。仅代理模式适合明确知道哪些应用需要接管的场景;绕过模式更适合默认接管大部分应用、只排除银行、局域网工具或企业应用。系统组件之间存在调用关系,一个应用可能通过系统下载器、WebView 或外部浏览器完成请求,因此分应用列表过窄时会出现主界面正常、登录或下载失败的情况。
访问路由器、投屏设备、打印机和 NAS 时,需要允许局域网连接并保证私有地址走直连。某些 Android 系统提供“阻止不使用 VPN 的连接”开关,开启后所有未进入 VPN 的流量都会被系统丢弃,可能与分应用绕过或局域网访问冲突。若只在开启该系统选项后出现问题,应先关闭它验证,再调整 Clash 的路由与绕过规则。
省电策略与后台保活
移动系统会在熄屏、低电量或长时间后台时限制应用。表现通常是刚启动正常,锁屏一段时间后连接中断,重新打开客户端又恢复。可在系统电池设置中将客户端设为不受限制,允许后台运行,并在厂商的自启动管理中允许启动。不同品牌设置名称不同,但判断标准一致:客户端进程和 VPN 服务不能在熄屏后被清理。
持续运行 TUN/VPN 会增加一定耗电,具体取决于网络质量、DNS 请求、健康检查频率和活动连接数量。不要为了保活同时开启多个重复的定时更新和高频测速。订阅更新可以按实际需求设置合理周期;策略组健康检查也不需要对大量节点进行过于频繁的探测。出现异常耗电时,应先查看 Android 电量统计和客户端日志,确认是持续网络活动还是系统反复重启 VPN。
移动网络、Wi-Fi 与私人 DNS
从 Wi-Fi 切换到移动网络时,原有 TCP 和 UDP 连接会中断,客户端需要重新建立通道。短暂等待后仍无法恢复,可停止再启动 VPN,而不是反复重新导入订阅。Android 的“私人 DNS”使用加密 DNS,与 Clash 的 DNS 接管可能产生处理顺序差异。若出现部分域名解析失败,可先把私人 DNS 调整为自动进行对照测试,再根据所用配置决定由系统还是 Clash 统一负责解析。
iOS 安装、VPN 配置与按需连接
通过 App Store 安装 Clash Plus
iPhone 与 iPad 使用 Clash Plus,下载页会提供 App Store 入口,并列出官网 clashplus.io 供核对应用信息。安装完成后先打开应用,阅读系统权限说明,再进入配置页面。iOS 上的网络接管依赖系统 Network Extension,应用首次启动代理时会请求添加 VPN 配置,并要求通过设备密码、Face ID 或 Touch ID 确认。
系统设置中的 VPN 状态表示网络扩展是否已建立,不代表配置中的节点一定可用。安装后应依次完成订阅导入、配置选中、策略组选择和连接测试。若只授权 VPN 而没有加载有效配置,应用可能连接后立即断开,或者保持连接但没有可转发的策略。
导入订阅与配置更新
在配置页面选择通过 URL 添加,粘贴兼容 Clash 或 Mihomo 的订阅地址。更新成功后确认配置中存在代理组和规则,再将其设为当前配置。iOS 剪贴板访问可能弹出隐私提示,这是粘贴订阅地址时的系统行为。完成导入后不必长期保留地址在剪贴板中。若通过 Safari 点击订阅链接跳转到应用,应核对实际打开的应用和配置名称,避免重复导入同一订阅。
订阅更新失败时,可先在 Safari 中访问同一地址。若浏览器同样无法打开,应检查网络、地址有效性和服务状态;若浏览器可访问而应用失败,再检查 URL 是否包含被转义的字符、是否需要额外请求头,以及客户端日志中的状态码。更新现有配置前可导出重要覆写,远端更新可能替换订阅生成的节点和策略组。
策略模式、局域网与蜂窝网络
首次连接建议使用规则模式,并为主要策略组选定一个明确节点。全局模式会把大量本应直连的系统服务和本地连接交给单一策略,不适合作为长期排障手段。规则模式下,域名和地址按顺序匹配,未命中的连接由最终规则处理。需要访问家庭设备时,应保证私有地址、局域网域名和 Bonjour 相关流量不被错误代理。
从 Wi-Fi 切换到蜂窝网络后,系统会重建底层连接。网络扩展通常能够自动恢复,但长连接可能需要应用重新发起。若状态栏仍显示 VPN 而网络不可用,可先在 Clash Plus 内停止连接,等待系统 VPN 标识消失后再启动。直接反复开启飞行模式可能掩盖配置问题,不利于判断是网络切换、DNS 还是节点造成。
按需连接与后台限制
按需连接可根据网络变化自动建立 VPN,适合配置已经稳定的设备。首次安装阶段不建议立即启用,因为错误配置可能在每次网络切换后自动恢复,增加排查难度。先手动连接完成 Wi-Fi、蜂窝网络、锁屏和唤醒测试,再根据需要启用按需规则。若家庭 Wi-Fi、公司 Wi-Fi 与移动网络需要不同处理,应明确设置网络条件,而不是依赖同一条宽泛规则。
iOS 的后台行为由系统统一管理,不能通过持续打开应用界面解决所有断连。稳定性主要取决于网络扩展状态、系统资源、配置复杂度和网络切换。大量高频健康检查会增加后台活动,复杂脚本与过大的规则集也会延长配置载入时间。出现连接被系统终止时,应先减少不必要的探测,检查日志中是否有内存、配置解析或网络变化记录。
与其他 VPN 配置的关系
设备上可保存多个 VPN 配置,但同一时刻通常只有一个主要隧道生效。企业设备管理、内容过滤、DNS 应用和其他代理工具可能占用网络扩展能力。若 Clash Plus 无法启动,进入“设置 → 通用 → VPN 与设备管理”检查当前配置,但不要随意删除企业管理项目。个人设备可先停用其他 VPN 进行对照;受管理设备则应遵循组织策略。
Linux 桌面、命令行与服务部署
桌面客户端的包格式选择
Linux 桌面用户可选择 Clash Verge Rev 或 FlClash。Debian、Ubuntu、Linux Mint 及其衍生系统通常使用 deb 安装包;Fedora、Rocky Linux、openSUSE 等环境根据发行版支持选择 rpm;部分客户端还可能提供独立运行格式。进入 Linux 下载区域 前,先执行 uname -m 确认架构。输出 x86_64 通常对应 AMD64,输出 aarch64 对应 ARM64。
uname -m
cat /etc/os-release
sudo apt install ./clash-client-amd64.deb
# 使用 rpm 系发行版时,改用对应包管理器安装 rpm 文件
示例中的文件名需要替换为实际下载文件。使用包管理器安装本地包,比直接解压复制更容易处理桌面入口和依赖。若安装后没有菜单图标,可从终端启动一次并查看错误输出。Wayland 与 X11 环境在托盘图标、权限提示和自动启动方面可能存在差异,托盘不可见不代表内核没有运行,应结合进程、端口和日志判断。
导入配置与桌面系统代理
图形客户端的订阅导入流程与其他桌面平台相似:添加远程 URL、更新配置、设为当前配置、选择策略,然后开启系统代理。Linux 的系统代理并非全系统统一接口,GNOME、KDE、浏览器、终端和后台服务可能各自读取不同设置。桌面开关主要影响遵循桌面环境代理配置的应用,命令行程序和 systemd 服务通常不会自动读取。
终端测试可临时设置环境变量。变量名同时写大写与小写可以兼容更多工具,但长期配置前应确认程序行为。不要把代理变量直接写入所有用户的全局环境,客户端未运行时会导致大量命令连接失败。
export http_proxy=http://127.0.0.1:7890
export https_proxy=http://127.0.0.1:7890
export HTTP_PROXY=$http_proxy
export HTTPS_PROXY=$https_proxy
curl -I https://example.com
unset http_proxy https_proxy HTTP_PROXY HTTPS_PROXY
SSH 不会因为设置 HTTP 代理变量就自动通过 Clash。Git 的 HTTPS 远程可能读取环境变量,使用 SSH 远程时则需要单独的 ProxyCommand 或 TUN 路由。包管理器也可能有自己的代理配置文件。排查时应按应用逐项确认,不要把“浏览器正常”推断为所有 Linux 进程都已接管。
TUN 权限、路由与 DNS
Linux TUN 需要访问 /dev/net/tun 并修改路由、策略路由或防火墙规则。图形客户端可能通过授权助手完成这些操作,命令行内核则需要合适的 capability 或由受控服务启动。直接长期以 root 身份运行整个桌面客户端并不理想,应优先使用客户端提供的服务模式,或为内核配置最小必要权限。
容器、虚拟机、Docker 网桥和本地 Kubernetes 会创建额外网段。启用自动路由后,如果这些网段没有正确排除,容器访问宿主机、镜像拉取或集群内部通信可能异常。启用 TUN 前记录 ip route,出现问题后对比路由表。局域网、容器网段和 VPN 专用网段应根据实际环境配置直连或排除。
ip route
ip rule
ss -lntup | grep -E '7890|9090'
resolvectl status
不同发行版可能使用 systemd-resolved、NetworkManager、传统 resolv.conf 或其他 DNS 管理方式。Clash 的 DNS 接管需要与当前解析链配合。若系统的 /etc/resolv.conf 指向本地 stub,而 Clash 又把查询回送给同一地址,可能形成循环。日志中持续出现 DNS 超时、CPU 占用升高或大量重复请求时,应检查上游 nameserver 是否最终指向可达的真实 DNS。
Mihomo 内核的服务化运行
没有桌面环境的服务器或路由器可直接运行 Mihomo 内核。配置目录应包含主配置和所需规则数据,并让运行用户具有读取权限。启动前先使用内核的配置检查能力确认 YAML 可解析,再交给 systemd 管理。服务应设置明确的工作目录、配置路径、重启策略和日志输出,避免从临时目录启动。
mihomo -t -d /etc/mihomo
mihomo -d /etc/mihomo
服务化部署时不要默认开放控制端口和代理端口到所有网卡。仅本机使用时保持监听在回环地址;确需供局域网设备使用时,再设置 allow-lan、监听地址、防火墙和控制接口认证。远程控制接口一旦开放,应限制来源并配置访问密钥。配置变更后先执行检查,再重载服务,保留上一份可启动配置以便快速回退。
自动启动与图形会话差异
桌面客户端的自动启动通常依赖用户图形会话,systemd 系统服务则在系统启动阶段运行。两者不要同时启动同一个内核实例,否则会争用端口和配置目录。若只需要桌面代理,使用客户端登录启动即可;若要为整台主机或局域网提供稳定服务,应采用独立内核服务,并让图形界面仅作为控制端。升级前停止服务并备份配置,升级后先前台测试配置兼容性,再恢复自动启动。
系统代理、规则模式、全局模式与 TUN
四个概念分别负责什么
系统代理、TUN、规则模式和全局模式不处在同一层。系统代理与 TUN 决定“哪些流量进入 Clash”;规则模式与全局模式决定“进入后如何处理”。系统代理通过操作系统代理设置把支持代理的应用指向本地监听端口。TUN 通过虚拟网络接口和路由接管更多连接。流量进入内核后,规则模式按规则列表选择直连、代理或拦截;全局模式则把大部分连接交给一个指定策略。
理解这两层可以避免常见误判。例如浏览器没有流量日志,说明连接可能没有进入 Clash,应检查系统代理或 TUN;日志中已有连接但结果不符合预期,则应检查规则、策略组和节点。切换全局模式只能改变已经进入内核的流量,无法让一个完全不读取系统代理的程序突然被接管。
| 方式 | 作用层级 | 适用场景 | 主要限制 |
|---|---|---|---|
| 系统代理 | 流量入口 | 浏览器和常规桌面应用 | 应用必须遵循系统代理 |
| TUN | 流量入口 | UDP、命令行、部分游戏与商店应用 | 需要权限,并可能影响路由与 DNS |
| 规则模式 | 流量决策 | 日常长期使用 | 依赖规则顺序和数据完整性 |
| 全局模式 | 流量决策 | 短期对照测试 | 局域网和本地服务可能受影响 |
规则为什么按顺序匹配
Clash 规则通常从上到下检查,命中第一条后停止继续匹配。因此具体规则应放在宽泛规则之前,最终使用 MATCH 作为兜底。域名规则、规则集、IP 段和进程规则可以同时存在,但是否进行 DNS 解析、是否跳过 IP 匹配,会影响性能和结果。看到某个网站走错策略时,应从日志中取得域名、目标地址和命中规则,再回到配置定位,而不是盲目增加重复规则。
rules:
- DOMAIN-SUFFIX,example.org,DIRECT
- DOMAIN-KEYWORD,example,PROXY
- IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
- IP-CIDR,10.0.0.0/8,DIRECT,no-resolve
- MATCH,PROXY
示例中更具体的域名后缀规则位于关键词规则之前,私有地址明确直连,最后由 MATCH 交给 PROXY 策略组。实际配置中的策略组名称必须与 proxy-groups 定义完全一致。使用 no-resolve 表示匹配该 IP 规则时不为域名额外触发解析,但它不等于关闭整个 DNS 模块。
策略组不是节点列表的同义词
节点描述具体连接参数,策略组负责在多个节点或其他策略之间选择。select 组由用户手动选择;url-test 组根据测试结果选择;fallback 组按可用性回退;load-balance 组按算法分配连接。日常排障先使用 select 固定一个节点,因为自动策略会随健康检查改变结果。固定节点稳定后,再验证自动组的测试地址、间隔和容差是否合理。
策略组可以引用其他策略组,因此常见结构是业务规则指向“国外网站”“流媒体”或“下载”等业务组,业务组再引用地区组,地区组最终选择节点。层级过深时,界面中看到的选择可能不是最终节点。排查应沿引用链逐层展开,确认每个组都存在可用出口。关于项目与内核之间的关系,可参考 Clash 开源生态项目关系。
DNS 接管、Fake IP 与真实地址
DNS 模块不仅负责把域名转换为地址,还可能参与规则判断和流量映射。Fake IP 模式会先返回保留地址,再由内核根据映射恢复原始域名,便于规则匹配并减少应用自行绕过。少数依赖局域网发现、硬编码 DNS、特殊校验或直接记录返回地址的应用可能不适应 Fake IP,需要加入过滤列表或改用 redir-host 进行对照。
mixed-port: 7890
mode: rule
allow-lan: false
log-level: info
dns:
enable: true
listen: 127.0.0.1:1053
ipv6: false
enhanced-mode: fake-ip
nameserver:
- 1.1.1.1
- 8.8.8.8
该片段展示字段结构,不包含节点、策略组和规则,因此不是一份独立可连接的完整配置。监听地址限制在本机,适合单机理解字段。实际使用时应根据网络可达性、隐私要求和内网解析需要选择上游 DNS,不要机械复制。若网络不支持 IPv6,而配置优先返回 IPv6 地址,可能出现域名可解析但连接超时;此时应同时检查系统网络、DNS 返回和 Clash 的 IPv6 设置。
如何选择日常运行方式
桌面办公环境可先使用规则模式加系统代理,范围明确、退出恢复简单。需要处理命令行、UDP 或不遵循代理的应用时,再切换为规则模式加 TUN。移动设备通常通过系统 VPN 接口接管流量,本质上更接近 TUN,但仍由规则决定出口。全局模式适合判断“当前节点能否建立连接”,不适合作为所有问题的最终解决方案。
配置维护与常见故障排查
先判断故障发生在哪一层
有效排障需要按层次缩小范围。第一层是客户端是否运行、内核是否启动和端口是否监听;第二层是流量是否进入 Clash;第三层是规则是否命中预期策略;第四层是所选节点是否可连接;第五层是目标网站、DNS 或应用协议是否存在额外限制。不要一遇到网页打不开就同时更换客户端、订阅、DNS 和模式,否则即使恢复也无法知道真正原因。
先查看客户端主页是否显示活动配置,再查看日志。完全没有访问记录,重点检查系统代理、TUN、VPN 权限和应用独立代理。有连接记录但显示规则走错,检查规则顺序和策略组。有连接记录且命中正确节点,但报连接超时,测试其他节点与其他网络。只有某个域名失败时,再检查 DNS、域名规则和目标服务状态。
订阅更新失败与配置加载失败
订阅更新失败通常分为网络错误、HTTP 错误和内容解析错误。超时或连接拒绝说明地址不可达;认证失败或权限错误需要检查订阅状态;返回 HTML 而不是 YAML,常见于登录页面、网关拦截或错误跳转。浏览器能打开并不保证客户端请求条件完全相同,但可以先排除地址拼写和基础网络问题。复制地址时注意不要带入首尾空格、换行或聊天软件添加的转义字符。
配置解析错误通常会在日志中给出行号或字段名。YAML 最常见问题是缩进层级错误、冒号后缺少空格、同一键重复定义、列表符号位置错误以及引用了不存在的策略组。出现错误后应从报错行向上检查所属结构,因为真正的缩进问题可能位于前几行。可先恢复最近一次可用配置,再把修改分成小段逐次加入。
proxy-groups:
- name: PROXY
type: select
proxies:
- DIRECT
rules:
- DOMAIN-SUFFIX,example.org,DIRECT
- MATCH,PROXY
这段结构中,rules 引用的 PROXY 与策略组名称一致。若把名称改成其他文字,规则也必须同步修改。YAML 中包含特殊字符的名称可以使用引号包裹,但同一引用仍需保持完全一致。更系统的字段说明可阅读 配置文件结构解析。
端口占用与内核无法启动
内核启动后会监听混合代理、HTTP、SOCKS、DNS 或控制端口。若另一个 Clash 实例、旧进程或其他代理软件已经占用同一端口,新的实例会启动失败。Windows 可在资源监视器或命令行查看监听端口;macOS 与 Linux 可使用 lsof 或 ss。发现占用后先确认进程身份,不要直接终止不认识的系统服务。关闭旧客户端,或为当前配置改用未占用端口。
# macOS
lsof -nP -iTCP:7890 -sTCP:LISTEN
# Linux
ss -lntp | grep 7890
如果端口没有占用但内核仍无法启动,检查配置文件权限、工作目录、规则数据库是否存在,以及客户端调用的内核路径是否有效。安全软件隔离内核文件、系统升级后服务权限变化、应用移动位置都可能造成相同表现。图形界面只显示“启动失败”时,应打开详细日志或从终端启动客户端获取完整错误。
浏览器正常但终端或应用失败
浏览器正常说明节点和至少一条代理入口可用,但不能证明终端已接管。终端程序可能不读取系统代理,需要环境变量或软件级设置;游戏和部分商店应用可能使用 UDP 或直连套接字,需要 TUN;浏览器也可能安装独立代理扩展,因此它甚至可能没有使用 Clash 的系统代理。可以对照日志确认每个测试请求是否出现。
检查终端启动文件中是否残留旧代理变量。若变量仍指向已经关闭的客户端端口,命令会持续失败。Windows 检查 PowerShell 环境变量,macOS 与 Linux 检查 Shell 配置文件和当前会话。Git、npm、包管理器等还可能保存自己的代理项。详细分支可参考 系统代理不生效排查。
能访问 IP 但域名失败
这种现象通常指向 DNS。先查看 Clash DNS 是否启用、监听端口是否被占用、上游服务器是否可达。TUN 模式下还要确认 DNS 劫持是否生效,以及系统查询是否形成循环。若只有内网域名失败,说明公共 DNS 不知道企业或家庭内部记录,需要为这些域名保留本地解析。若部分应用失败,检查 Fake IP 兼容和过滤规则。
清理系统 DNS 缓存只能处理旧记录,不能修复错误的上游或规则。不要把反复刷新缓存当成主要方案。对照测试时可以暂时关闭 Clash DNS,让系统恢复原解析;如果立即正常,再逐项检查 enhanced-mode、nameserver、fallback、nameserver-policy 和 IPv6。若关闭后仍失败,应转向系统网络或路由器 DNS。
TUN 开启后局域网或网络全部中断
先关闭 TUN,确认系统代理模式是否正常。如果关闭后恢复,说明节点和基本配置大概率可用,问题集中在路由、虚拟网卡、DNS 或权限。检查是否存在其他 VPN、虚拟机、容器网络和企业过滤器。私有地址应直连,特殊内网网段应加入排除。Windows 重点检查服务模式和虚拟适配器;macOS 检查 VPN 与过滤器;Linux 检查路由表、策略路由和防火墙。
TUN 失败后如果系统仍无法联网,先正常退出客户端,再检查残留路由、系统代理和 DNS。移动设备可停止 VPN,等待系统标识消失后重新连接网络。桌面系统不要直接删除虚拟网卡作为第一步,因为客户端服务可能重新创建,且错误删除其他软件的适配器会扩大问题。应先从客户端关闭功能,再移除对应服务组件。
订阅更新后原有选择丢失
订阅提供方可能调整节点名称、策略组或规则结构。客户端保存的选择通常按名称关联,名称变化后会回到默认项。若使用本地覆写,也可能因为引用旧组名而失效。更新后先查看策略组是否仍存在,再检查覆写日志。不要直接在订阅缓存中长期手改,因为下一次更新会覆盖这些内容。
迁移客户端时,应分别备份订阅地址、本地配置、覆写脚本和用户选择。不同客户端对配置目录、脚本能力和策略持久化方式的实现不同,不能只复制整个旧程序目录。旧客户端迁移步骤可参考 客户端停更后的配置保留与替代软件选择。
建立可维护的配置更新流程
稳定配置应保留一份最近可用备份,并把本地改动控制在可解释范围内。更新订阅前记录当前策略和重要覆写;更新后先验证配置加载,再测试 DNS、直连网站、代理网站和局域网。规则数据库更新与客户端更新分开进行,这样出现问题时容易判断来源。GeoIP 与 GeoSite 的用途、引用和加载问题可查看 GeoIP 与 GeoSite 使用方法。
日志应在排障期间调到能够看到连接和规则的信息级别,问题解决后恢复常规级别,避免长期生成大量文件。分享日志时应删除订阅地址、控制密钥、节点凭据和个人域名记录。需要继续定位但无法确定分类时,可进入 常见问题 按基础认知、安装配置、使用技巧和故障排查继续检索。
全平台的核心判断逻辑相同:先确认软件与配置是否运行,再确认流量是否进入,随后查看规则、策略和节点,最后处理 DNS 与平台权限。按这个顺序保留证据并减少变量,比反复重装更容易得到稳定结果。需要重新选择客户端或安装包时,返回 Clash 客户端下载页,并按本页对应平台章节重新完成授权与接管设置。