Clash Linux 无头部署 Meta
发布时间:2026-10-21 | 浏览:1
如果你要在没有桌面的 Debian、Ubuntu、Arch 或任意一台远程 VPS 上长期跑 Clash,图形客户端帮不上忙。本文以社区广泛使用的 Clash Meta 内核实现(发布名常见为 mihomo)为主线,说明如何安装二进制、组织配置目录、用 proxy-providers 让订阅按间隔自动拉取、用 systemd 做进程守护与开机自启,以及怎样让 curl 、 apt 、CI 脚本等命令行工具稳定走本地混合端口或环境变量代理。步骤与 Windows、Android 教程差异很大,更适合自建网关、旁路由或远端开发机场景。
为什么在无图形 Linux 上要选 Clash Meta
无头服务器没有托盘图标,也没有「一键导入」界面,一切依赖配置文件与进程管理。Clash Meta 系内核在规则特性、协议支持与生态工具链上较贴近当前机场与规则集实践,适合在服务器侧与桌面侧共用同一套 YAML 思路。你可以把它理解成:一个常驻用户空间进程,监听本地端口(常见为混合端口或 HTTP/SOCKS),根据规则把流量送到不同节点;再通过外部控制器(REST API)做热更新与健康检查。
与桌面版相比,Linux 无头部署多出来的工作主要集中在三块:其一,用包管理器或官方发布页取得与 CPU 架构匹配的可执行文件,并放到统一路径;其二,把配置、订阅缓存、GeoIP 数据等目录权限收紧,避免以 root 长期运行;其三,用 systemd 处理崩溃重启、开机顺序(建议在网络就绪后再拉起),以及可选的定时任务配合 API 触发完整配置重载。把这三块做对,后面无论是旁路由转发还是本机出站,都会省心很多。
CPU 架构 :确认是 amd64 、 arm64 等,下载对应发行包,避免在 ARM 小主机上误装 x86 二进制。
专用系统用户 :建议创建 clash 或 mihomo 用户,配置目录归其所有,服务以该用户运行。
端口规划 :为 mixed-port(或分别的 HTTP/SOCKS)、external-controller(REST)选定未占用端口,防火墙仅对本机或管理网段开放管理口。
订阅可达性 :若订阅域名在墙外,首次拉取可能需从中转或已联通的环境拷贝生成的 providers 缓存文件,再改为定时更新。
家用旁路由场景下,往往还会涉及 IPv4 转发、iptables/nftables 或透明代理插件,这已经超出单篇入门篇幅;本文默认读者目标是「本机或 VPS 上有一个可靠的上游 SOCKS/HTTP 出口」,先把无头服务跑稳,再与网关转发方案拼接。
安装 mihomo(Clash Meta)二进制
以官方 GitHub Release 为例(项目名常写作 mihomo),在服务器上下载与你架构匹配的压缩包或单文件,解压后将可执行文件放到 /usr/local/bin/mihomo ,并赋予可执行权限。若你更习惯发行版自带的 AUR、第三方包,也可以,但要确认版本是否满足订阅里用到的协议与规则特性,过旧的内核可能在解析新字段时直接报错退出。
使用 uname -m 核对架构,与 Release 资产文件名对照。
下载后校验校验和(若发布页提供),避免供应链风险。
sudo install -m 0755 mihomo /usr/local/bin/mihomo 或等价方式安装到 PATH。
以普通用户执行 mihomo -v 验证能正常输出版本信息。
不要把整个配置目录放在全局可写路径;systemd 的 ReadWritePaths 与专用用户组合,比 root 运行后再 chmod 777 更安全。
约定配置根目录为 /etc/mihomo (亦可选用 /var/lib/mihomo ,关键是权限与 systemd 中路径一致)。主文件通常命名为 config.yaml ,其中声明监听端口、模式、外部控制器密钥、引用哪些 proxy-providers 与 rule-providers 。无头环境下建议显式打开 external-controller 并设置 secret ,这样后续可以用 curl 调用 API 做健康检查或触发重载,而无需登录桌面。
下面是一段极度精简的骨架,仅用于说明字段关系;真实环境请在此基础上补全规则、策略组与节点引用。占位 URL 需替换为你的订阅地址。
interval 以秒为单位,表示内核周期性重新下载订阅并合并;配合 health-check 可对节点做主动探测,减少手工在命令行里换节点的次数。若订阅返回的是完整 proxies 列表而非 provider 片段,需按你所用版本的文档调整字段(部分场景会用 proxy-providers 的 parser 或单独维护静态文件)。
编写 systemd 服务单元
在 /etc/systemd/system/mihomo.service 创建单元文件。核心思路是: Type=simple ,工作目录指向配置根,启动命令带 -d 指定目录;失败时自动退避重启;限制文件句柄数以应对大量连接。若你希望服务在 WAN 拨号完成后再启动,可把 After= 调整为运营商提供的网络目标或使用 network-online.target (需确保系统启用了相应等待逻辑)。
sudo systemctl daemon-reload
sudo systemctl enable --now mihomo.service
systemctl status mihomo 确认 active (running)
异常时查看 journalctl -u mihomo -e 日志中的 YAML 解析错误或端口占用信息
external-controller 若监听在非回环地址,必须配合防火墙与强 secret ,否则等价于在网络上暴露一台可切换出口的代理控制台。默认建议仅绑定 127.0.0.1 ,通过 SSH 端口转发管理。逐步加固步骤见 《Clash Meta Web 面板:bind-address 与 secret》 。
无头服务器上最常见的需求是: apt 、 git 、 curl 、容器拉镜像、语言包管理器等都走 Clash。若主配置里打开了 mixed-port ,可以在 shell 中导出标准环境变量,让支持这些变量的工具自动使用 HTTP 或 SOCKS 代理。示例(端口请与本地配置一致):
部分工具只认小写变量,部分则认大写;CI 环境里可在 job 级别注入。若你希望「仅对某些命令走代理」,可在命令前加前缀 env,而不是把变量写进全局 ~/.bashrc ,避免影响本机维护流量。对于不走环境变量的程序,可考虑 redsocks、proxychains 或 TUN 级方案,但复杂度会明显上升。
把 DNS 查询也纳入规划:若使用 fake-ip 等模式,请阅读你所用内核版本文档,避免在服务器上出现「解析到了假地址导致本机服务异常」的耦合问题。
当 proxy-providers 的 interval 到期时,内核会尝试重新下载订阅并更新内存中的节点列表,这一过程通常不需要重启整个进程。若你修改了主配置 config.yaml 本身(例如新增了一个 provider 或改了规则文件路径),则需要触发一次完整配置加载。常见做法有两种:其一是通过外部控制器调用重载接口(具体路径以当前版本文档为准,常见模式为向 /configs 发送 PUT 并带 Authorization: Bearer <secret> );其二是 systemctl restart mihomo ,简单粗暴但有短暂断流。
你也可以额外定义 systemd timer,每小时执行一次调用 API 的脚本,用于在 interval 之外强制刷新;这在订阅端突发变更、而本地 interval 设得较长时有用。编写脚本时注意不要把 secret 写进世界可读的文件,可用 systemd EnvironmentFile 配合权限 600 存放。
服务启动后立即退出,日志提示端口被占用?
用 ss -lntp 或 lsof -i :7893 查看是否已有旧进程或其他代理占用 mixed-port 或 controller 端口。若曾手动前台运行过 mihomo,可能重复启动导致冲突。统一改为仅由 systemd 管理,并关闭重复实例。
先在服务器上用 curl -v 直连订阅 URL,确认是 DNS、TLS 还是出口被拦。若订阅必须翻墙才能拉取,属于「冷启动」问题:需要先用其他方式拿到首份 providers 缓存,或临时在可达网络生成配置后同步到服务器,再依赖节点在线后的周期性更新。部分机场提供多线路订阅域名,换一个直连更友好的域名往往比盲目加大 interval 更有效。
提示无法写入 providers 目录?
检查配置目录所有者是否与 systemd 里的 User= 一致,并确认 path: ./providers/... 相对目录存在且可写。不要把整个仓库克隆到 root 目录却用低权限用户运行,否则下载订阅时无法落盘。
准备架构匹配的二进制与专用系统用户,规划端口与权限。
编写 config.yaml ,用 proxy-providers 声明订阅 URL、间隔与健康检查。
配置 systemd 单元,启用 Restart=on-failure 与合理的网络依赖。
用 mixed-port 或环境变量让命令行工具走本地代理;管理接口仅本机或 SSH 转发访问。
大改配置时用 API 重载或受控重启;日常节点变更交给 provider 周期更新。
在服务器上维护 YAML 与 systemd 是稳定方案;若你同时在桌面环境工作,也可以从 Clash 下载页 获取带图形界面、已整合常见规则与中文说明的客户端,把无头实例当作网关或上游,在电脑上专注业务本身。
立即免费下载 Clash,开启流畅上网新体验
桌面端一键配置,服务器端稳态运行
无头 Linux 负责常驻与订阅更新;日常办公可搭配整合版客户端,减少手写配置时间。