systemd 守护进程 Linux运维 命令行CLI 热重载 审核:ClashWiki 网络协议组 · 阅读约 23 分钟 · 发布于 2026-05-17 · 实验室核验:2026-06-01

Mihomo 命令行与服务运行指南:systemd 服务与启动参数

手把手掌握在 Linux 服务器与软路由上通过 systemd 守护进程运行 Mihomo 内核的实战全流程。详解 CLI 启动参数、Linux 网络权能绑定(AmbientCapabilities)、热重载信号与资源限制配置。

⚡ 直接解答 / 极速核心结论(AEO 快速参考):

【Mihomo 生产级 systemd 部署核心指南】在 Linux 环境下部署 Mihomo 规范三部曲:① 规范存放路径:二进制可执行文件放置于 `/usr/local/bin/mihomo`,配置目录建立于 `/etc/mihomo/`;② 编写 systemd 单元文件:关键在于配置 `AmbientCapabilities=CAP_NET_ADMIN CAP_NET_BIND_SERVICE`,允许非 root 用户或受限服务绑定特权端口(如 53)与创建 TUN 虚拟网卡;③ 运维命令:使用 `systemctl enable --now mihomo` 启动并设为开机自启,使用 `systemctl reload mihomo`(发送 SIGHUP 信号)实现零中断热重载配置文件。

深网实测雷达 · 场景化节点推荐

全协议支持 · 2026 稳定主力专线推荐

企业级 BGP + 跨境内网专线

经过深网观测站 7×24 小时并发稳定性压测,网络拓扑冗余充沛,全天候保障高吞吐与多设备并发。

Firefly

2026 运营 · 多国原生IP节点
IPLC
门槛资费 ¥8 /月起
晚高峰丢包 0.0%
28家品牌中唯一核心标注「IPLC专线」(非普通IEPL)
专属码: firefly
直达官网开通 ↗
(含赞助返利 · 不影响购买价格)
查看深度评测报告 →

暮光加速

2023 运营 · 标准节点集群
IEPL
门槛资费 ¥20 /月起
晚高峰丢包 0.0%
20元/月 120GB 标准IEPL专线规格
专属码: muguang5555
直达官网开通 ↗
(含赞助返利 · 不影响购买价格)
查看深度评测报告 →

宇宙云

2023 运营 · 多线接入节点
IEPL
门槛资费 ¥14.9 /月起
晚高峰丢包 0.0%
14.9元/月 100GB 低门槛月付专线
专属码: YUZHOU553
直达官网开通 ↗
(含赞助返利 · 不影响购买价格)
查看深度评测报告 →
💡 所有推荐均通过深网自动化测速探针实测,支持各大主流客户端一键导入。
📑 本篇技术目录导引
  • 01. 1. Mihomo 核心命令行(CLI)参数全解
  • 02. 2. 生产级 systemd 单元服务文件编写(带安全权能)
  • 03. 3. 运维实战操作命令集与生命周期管理
  • 04. 4. 零中断热重载(Hot-Reload)实战
  • FAQ. 常见疑问与故障排查解答

1. Mihomo 核心命令行(CLI)参数全解

在深入服务化之前,必须熟练掌握 Mihomo 二进制文件的直接启动与诊断参数: ### 常用启动参数字典: - **`-d <dir>`**:指定运行工作目录(默认搜索 `~/.config/mihomo`),所有静态资源(mmdb、geosite)及缓存数据库均存放在此; - **`-f <path>`**:指定主配置文件路径(默认为工作目录下的 `config.yaml`); - **`-t`**:**【重要诊断参数】** 仅测试配置文件语法是否正确,不实际启动服务,测试完毕立即退出并报告行号错误; - **`-v`**:打印内核构建版本、平台架构与编译标记; - **`-ext-ctl <addr>`**:动态覆盖配置文件中的外部控制器监听地址(如 `127.0.0.1:9090`)。
bash
# 在启动前先行校验配置语法合法性(避免由于 YAML 缩进错误导致服务崩溃)
mihomo -t -d /etc/mihomo -f /etc/mihomo/config.yaml

# 验证输出:
# configuration file /etc/mihomo/config.yaml test is successful

2. 生产级 systemd 单元服务文件编写(带安全权能)

许多运维新手习惯直接使用 root 用户裸跑程序,这会带来巨大的安全隐患。遵循 Linux 最小权限原则,通过 systemd 的权能授予(Capabilities)可以在不赋予完整 root 特权的情况下让 Mihomo 正常启用 TUN 模式: 在 `/etc/systemd/system/mihomo.service` 创建以下内容:
ini
[Unit]
Description=Mihomo (Clash Meta) Daemon Service
After=network.target network-online.target
Wants=network-online.target

[Service]
Type=simple
User=root
WorkingDirectory=/etc/mihomo
ExecStart=/usr/local/bin/mihomo -d /etc/mihomo -f /etc/mihomo/config.yaml
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
RestartSec=5s

# 安全与网络特权配置(开启 TUN 模式或绑定 53 DNS 端口所必需)
AmbientCapabilities=CAP_NET_ADMIN CAP_NET_BIND_SERVICE
CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
💡 `LimitNOFILE=65535` 能够防止在高并发连接时抛出 `too many open files` 系统文件句柄耗尽错误。

3. 运维实战操作命令集与生命周期管理

服务文件创建完毕后,按标准系统流程注册并管理服务生命周期:
bash
# 1. 重新加载 systemd 守护进程以识别新服务文件
sudo systemctl daemon-reload

# 2. 启用开机自启并立即启动 Mihomo 服务
sudo systemctl enable --now mihomo

# 3. 查看实时服务运行状态
sudo systemctl status mihomo

# 4. 实时查看内核滚动日志
sudo journalctl -u mihomo -f -o cat

4. 零中断热重载(Hot-Reload)实战

当你在日常维护中修改了 `config.yaml` 的分流规则或节点订阅后,**切勿使用 `systemctl restart mihomo` 粗暴重启服务**。粗暴重启会强行切断当前所有已建立的 TCP 长连接(如正在下载的大文件或视频推流)。 ### 正确的热重载方式: 1. **方式一:通过 systemd 发送 SIGHUP 信号**: `sudo systemctl reload mihomo` Mihomo 接收到 SIGHUP 信号后,会在后台初始化新的路由引擎,验证成功后平滑接管新连接,原有长连接不受影响; 2. **方式二:通过 RESTful API 热重载**:
bash
# 向本地控制器发送 PUT 请求重新加载配置
curl -X PUT -H "Authorization: Bearer 你的Secret密钥"      -H "Content-Type: application/json"      -d '{"path": "/etc/mihomo/config.yaml"}'      http://127.0.0.1:9090/configs

❓ 常见疑问与排查步骤

执行 systemctl start 提示 Active: failed 是什么原因?

通常由于配置语法错误或端口冲突。立即执行 `sudo journalctl -u mihomo -n 30 --no-pager` 查看最后 30 行日志,精准定位错误根因。

服务重启后 Fake-IP 缓存会丢失吗?

不会。Mihomo 会在工作目录下自动维护 `cache.db`(基于 BoltDB 键值库),退出时自动持久化 Fake-IP 映射表,启动时自动恢复。

如何在非 root 用户下运行 systemd 服务?

将 service 文件中的 `User=root` 改为指定用户名,并确保给该二进制文件赋予 Linux 网络权能:`sudo setcap 'cap_net_admin,cap_net_bind_service=+ep' /usr/local/bin/mihomo`。

想要体验晚高峰 0 丢包的极致速度?

已为您筛选 28 家经过 7×24 小时并发稳定性压测的物理专线机场。

查看 2026 专线机场天梯榜 →