Clash配置文件怎么设置开机启动?Windows、macOS、Linux与Android排查
简答:Clash配置文件不能直接设置开机启动:桌面端应开启客户端自启并确认Profile,Linux用systemd,Android按客户端和系统权限处理;
定义:Clash配置文件是由客户端或mihomo内核读取的运行参数文件,而开机启动由客户端自启、系统登录项、systemd服务或移动端后台机制负责。
先试这一步:不要修改YAML,先开启客户端自启
如果你的目标是“登录系统后自动运行Clash,并继续使用已经导入的配置”,先不要在YAML里寻找“开机启动”字段。配置文件通常描述端口、代理组、规则、DNS和TUN等运行参数;是否随系统登录启动,通常由客户端设置、系统启动项或服务管理器负责。
本文主要覆盖Clash Verge Rev桌面客户端、mihomo命令行服务,以及Android移动端的通用核验思路。菜单名称会随客户端版本和系统语言变化,以下路径应与当前界面中的同义选项对应,不应理解为所有版本完全一致。Clash Verge Rev项目的设置字段中可以核对“开机自启”“静默启动”“系统代理”和“TUN模式”等独立选项,详见Clash Verge Rev设置字段。
| 对象 | 负责什么 | 开机后检查什么 |
|---|---|---|
| 配置文件 | 端口、节点、代理组、规则、DNS和TUN参数 | 是否通过校验、是否被当前Profile选中 |
| 客户端 | 加载Profile、启动内核、显示状态并修改系统代理 | 开机自启、静默启动、当前配置是否正确 |
| 系统代理 | 让支持系统代理的应用使用HTTP或SOCKS代理 | 开关、地址和端口是否正确 |
| TUN模式 | 通过虚拟网卡接管更多系统流量 | 服务、权限、虚拟网卡和路由是否正常 |
| 系统启动项或systemd | 在登录或系统启动时拉起程序 | 启动项状态、服务状态和日志 |
核心结论:开机自启、自动加载配置、自动开启系统代理和启用TUN是四个不同结果。只打开其中一个开关,不能证明其他三个也已经生效。
Clash Verge Rev:开机自启、配置加载与系统代理分开设置
下面是桌面端最短操作路径。具体菜单层级以你当前安装的Clash Verge Rev版本为准;如果找不到完全相同的中文名称,可在设置页寻找含义对应的“Auto Launch”“Silent Start”“System Proxy”或“TUN Mode”选项。
- 打开客户端,先在配置或Profile页面确认目标配置已经导入,并且当前状态显示为已选中或已激活。
- 进入“设置”或“Settings”,打开系统设置相关区域。
- 开启“开机自启”或“Auto Launch”。这一步只负责让客户端随系统登录启动。
- 需要后台运行时,再开启“静默启动”或“Silent Start”。该选项的作用是启动时不显示主面板,不等于开启系统代理。
- 回到主界面确认当前配置仍然存在,代理组已经选择节点或策略,并查看内核状态是否为运行中。
- 需要让支持系统代理的应用使用本地代理时,再开启“系统代理”或“System Proxy”。Clash Verge Rev的设置说明指出,系统代理用于修改操作系统代理设置。
- 只有在需要接管不遵守系统代理的应用时,才进一步检查“TUN模式”。设置说明指出,TUN需要服务模式或管理员模式,且启用TUN后通常不需要再依赖系统代理。
- 正常退出客户端后重启系统。不要只关闭主窗口,因为部分客户端关闭窗口后仍会留在托盘,也可能没有真正完成退出。
重启后按这个顺序观察:是否有托盘或菜单栏图标、当前Profile是否正确、内核是否运行、系统代理是否开启、TUN是否按需启用。只要其中一项不符合预期,就先定位这一层,不要同时修改YAML、替换内核和重装客户端。
如果开机后客户端已经出现但配置没有加载,先重新选择Profile并查看日志;如果配置被订阅更新覆盖,应把自定义内容放在客户端支持的覆盖或扩展配置中,而不是直接修改远程订阅原文件。
Windows:客户端自启后,再核对系统启动项
Windows桌面端建议先使用客户端自己的“开机自启”,再用系统设置复核。Microsoft官方说明显示,Windows 10和Windows 11可以通过“开始”→“设置”→“应用”→“启动”管理已注册的启动应用,也可以在任务管理器中检查启动状态,详见Microsoft Windows启动应用说明。
- 在Clash Verge Rev设置中打开“开机自启”,保存后退出客户端。
- 进入“设置”→“应用”→“启动”,找到对应客户端,确认状态为开启。
- 重启Windows并登录,观察通知区域是否出现客户端图标。
- 打开客户端,确认当前Profile、内核状态和系统代理状态。
- 如果程序启动但系统代理未开启,先单独打开系统代理,不要立即修改配置文件。
- 如果TUN提示服务未安装、权限不足或内核没有运行,再检查服务模式、管理员权限和端口占用。
| 现象 | 优先检查 | 下一步 |
|---|---|---|
| 没有托盘图标 | 客户端自启和Windows启动项 | 确认启动项未被关闭,必要时重新启用客户端自启 |
| 有图标但Profile为空 | 当前配置是否仍被选中 | 重新选择配置并检查订阅更新结果 |
| 内核未运行 | 日志、端口和服务权限 | 先关闭重复运行的客户端或占用端口的程序 |
| 系统代理关闭 | System Proxy开关 | 重新开启并核对本地HTTP、SOCKS或mixed-port |
| TUN不可用 | 服务模式、管理员权限和虚拟网卡 | 按客户端提示安装或修复服务后再复测 |
如果使用的是旧版客户端,本文不把其菜单名称当作所有版本的通用规则。能正常打开时,应按当前界面寻找“Start with Windows”“System Proxy”等同义选项;无法确认安装包来源或版本状态时,不要为了自启下载来路不明的替代文件。
macOS:登录项负责启动,系统代理和TUN要单独验证
macOS的系统级自启入口是“系统设置”→“通用”→“登录项与扩展”。Apple官方说明显示,该页面可以添加登录时自动打开的应用,也可以控制应用是否允许在后台运行,详见Apple登录项说明。
- 先在Clash Verge Rev中打开“Auto Launch”或同义的开机自启选项。
- 退出应用后,打开“系统设置”→“通用”→“登录项与扩展”。
- 检查客户端是否位于“登录时打开”列表;如果没有,可用加号添加应用本体,而不是添加安装镜像或下载目录中的临时文件。
- 登录系统后观察菜单栏图标,打开客户端确认当前Profile和内核状态。
- 需要普通应用走本地代理时,单独确认“System Proxy”状态。
- 需要TUN时,按照客户端提示检查服务或权限。TUN与登录项不是同一个功能。
macOS上应用出现在登录项列表,只能证明系统会尝试启动它,不能证明配置已选中、内核已运行或系统代理已恢复。因此复测时至少要看菜单栏图标、当前Profile、内核状态和系统代理四项。
Linux:用完整systemd服务实现mihomo开机启动
如果使用的是mihomo命令行内核,而不是图形客户端,Linux可以通过systemd创建服务。下面示例中的路径是明确的可执行路径:二进制文件放在/usr/local/bin/mihomo,配置目录放在/etc/mihomo,配置文件应位于/etc/mihomo/config.yaml。如果你的文件路径不同,应先替换路径并确认文件存在。
前置条件:已取得与你的Linux架构匹配、来源可核验的mihomo二进制文件,并准备好能够被mihomo读取的配置文件。下面的复制命令只有在当前目录确实存在名为mihomo和config.yaml的文件时才可执行。
sudo install -m 755 ./mihomo /usr/local/bin/mihomosudo mkdir -p /etc/mihomosudo cp ./config.yaml /etc/mihomo/config.yaml
然后创建服务文件/etc/systemd/system/mihomo.service。可执行的完整内容如下,ExecStart中的路径必须与前面的安装路径一致:
[Unit]
Description=mihomo Daemon
After=network.target NetworkManager.service systemd-networkd.service iwd.service
[Service]
Type=simple
LimitNPROC=500
LimitNOFILE=1000000
CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_RAW CAP_NET_BIND_SERVICE CAP_SYS_TIME CAP_SYS_PTRACE CAP_DAC_READ_SEARCH CAP_DAC_OVERRIDE
AmbientCapabilities=CAP_NET_ADMIN CAP_NET_RAW CAP_NET_BIND_SERVICE CAP_SYS_TIME CAP_SYS_PTRACE CAP_DAC_READ_SEARCH CAP_DAC_OVERRIDE
Restart=always
ExecStartPre=/usr/bin/sleep 1s
ExecStart=/usr/local/bin/mihomo -d /etc/mihomo
ExecReload=/bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target
上面的服务结构依据mihomo官方systemd服务文档整理。写入文件后,依次执行以下命令:
sudo systemctl daemon-reloadsudo systemctl enable mihomosudo systemctl start mihomosudo systemctl status mihomosudo journalctl -u mihomo -o cat -e
如果status显示服务失败,先检查/usr/local/bin/mihomo是否可执行、/etc/mihomo/config.yaml是否存在、配置是否能通过校验,以及端口是否被其他进程占用。若只需要命令行服务,不要再同时让图形客户端使用相同端口自启,否则可能出现两个内核竞争端口。
Linux的systemd自启只负责拉起mihomo进程,不会自动替你设置桌面环境的系统代理。是否需要系统代理、TUN或路由规则,要根据你的桌面环境和配置文件另行检查。
Android:没有统一的配置文件自启开关,重点看客户端和系统限制
Android不能简单照搬Windows或Linux的自启方法。配置文件本身仍然不负责启动;是否能在开机后恢复VPN或代理状态,取决于具体客户端是否实现开机广播、前台服务和VPN恢复逻辑,也会受到Android版本及设备厂商后台管理影响。
Android官方文档说明,应用可以接收ACTION_BOOT_COMPLETED广播,但需要声明相应权限;同时,Android对后台服务有执行限制,处于受限状态的应用可能无法及时收到开机广播。相关限制可参考Android开机广播文档和Android后台优化说明。
- 打开当前Android客户端,确认配置文件或订阅已经导入,并确认当前配置被选中。
- 在客户端设置中寻找“开机启动”“启动时连接”“自动恢复VPN”或同义选项;没有该选项时,不要自行添加配置字段。
- 在系统设置中检查该客户端的VPN权限,并按设备实际界面检查电池优化、后台运行或自动启动权限。
- 重启手机并解锁后,观察VPN钥匙图标或客户端连接状态。
- 如果重启后没有恢复,先手动打开客户端一次,再检查系统是否将应用放入“受限”电池状态。
Android上的“开机后应用进程存在”与“VPN已经连接”不是同一结果。部分系统还会在后台限制、未解锁或省电策略下延迟启动,因此只能依据当前客户端提供的状态、系统VPN图标和实际请求进行验证。本文不提供绕过系统权限的做法。
开机后没生效:按程序、配置、内核、代理、TUN顺序排查

- 程序层:确认客户端进程、托盘图标、菜单栏图标或Android连接状态是否出现。没有启动迹象时,检查客户端自启、系统启动项或移动端后台权限。
- 配置层:打开客户端确认目标Profile仍被选中。订阅更新后如果本地修改消失,先恢复到可用配置,再考虑使用客户端支持的覆盖方式。
- 内核层:查看状态页和日志,确认mihomo内核正在运行。看到“端口被占用”时,先关闭重复运行的客户端或其他占用相同端口的程序。
- 代理层:确认系统代理开关已开启,并核对HTTP、SOCKS或mixed-port与当前配置一致。程序启动不代表系统代理自动开启。
- TUN层:只有需要接管更多应用流量时才检查TUN。确认服务模式、管理员权限、虚拟网卡和其他VPN类软件没有冲突。mihomo的TUN字段和平台限制应以mihomo TUN文档为准。
- 节点和规则层:先在客户端内测试当前节点,再查看日志中的规则命中和请求状态。不要用单个网页能打开推断所有应用都已接管。
- 复测层:每次只改一个开关,重启或重新连接后用新请求验证。若修改后无法联网,先关闭系统代理或TUN,恢复到上一次可用配置,再查看日志。
| 检查项目 | 预期结果 | 未达到时的处理 |
|---|---|---|
| 程序启动 | 托盘、菜单栏或客户端状态出现 | 检查自启、登录项、启动项或后台权限 |
| Profile | 目标配置仍处于选中状态 | 重新选择并检查订阅更新是否覆盖 |
| 内核 | 状态页显示运行中且无启动错误 | 查看日志、配置校验和端口占用 |
| 系统代理 | 需要时开关为开启,端口匹配 | 重新开启并核对本地监听端口 |
| TUN | 需要时显示启用,服务和权限正常 | 检查管理员权限、服务模式和虚拟网卡 |
| 实际请求 | 新请求按预期规则或代理组处理 | 查看请求日志、规则命中和节点错误 |
回滚与安全提醒:先恢复连接,再继续定位
如果开启自启、系统代理或TUN后出现无法联网,先按相反顺序回滚:关闭TUN,关闭系统代理,恢复到上一次可用Profile,再重新启动客户端。Linux服务则可执行sudo systemctl stop mihomo暂时停止服务,确认原因后再执行sudo systemctl start mihomo。
不要为了“开机自动运行”添加未经官方文档确认的YAML字段,也不要把未知来源的二进制文件、安装脚本或服务文件直接放入系统启动路径。涉及管理员权限、VPN权限、服务安装和路由修改时,使用最小权限并保留原配置备份。
更新于 2026 年 11 月 3 日。客户端菜单、系统权限和内核字段可能随版本变化,实际操作以当前客户端界面和对应官方文档为准。
常见问题
Clash配置文件里能不能直接写开机启动?
通常不能。配置文件负责端口、规则、DNS、代理组和TUN等运行参数;开机启动由客户端自启、Windows启动项、macOS登录项、Linux systemd或Android客户端机制负责。不要添加未经文档确认的字段。
Clash开机启动了,为什么系统代理还是没开?
因为客户端自启和系统代理是两个独立开关。先确认客户端和当前Profile已加载,再单独检查System Proxy及本地端口;如果需要接管更多应用,再检查TUN。
Clash Verge Rev开机后没有自动加载配置怎么办?
打开客户端确认目标Profile是否仍被选中,再查看订阅更新是否覆盖了本地修改。如果内核未运行,优先检查日志、端口占用和服务状态,不要先改YAML。
Windows里找不到Clash的开机启动项怎么办?
先在客户端设置中开启开机自启,再进入“设置→应用→启动”复核。若仍没有,检查是否使用便携版、不同Windows账户或被系统管理策略禁用;不要直接下载未知来源的替代安装包。
macOS登录项里有Clash,为什么开机后仍然没有代理?
登录项只负责启动应用,不保证Profile、内核和系统代理都已恢复。登录后依次检查菜单栏图标、当前配置、内核状态和System Proxy,TUN则另行检查服务与权限。
Linux的mihomo systemd服务为什么启动失败?
先确认服务文件确实保存为<code>/etc/systemd/system/mihomo.service</code>,并检查<code>ExecStart</code>中的二进制路径、<code>-d</code>后的配置目录、文件权限和端口占用;然后执行<code>sudo systemctl daemon-reload</code>、<code>sudo systemctl status mihomo</code>和<code>sudo journalctl -u mihomo -o cat -e</code>查看具体错误。
Android能不能像Windows一样设置Clash开机自启?
没有统一答案。要看具体客户端是否提供开机恢复或自动连接选项,并同时满足VPN权限、后台运行和电池策略要求;Android官方也对后台服务和开机广播设置了限制,因此应以客户端状态和系统VPN图标复测。