Mihomo 订阅怎么添加和更新?Mihomo Party 与 config.yaml 双方法
简答:如果你使用 Mihomo Party,优先把订阅地址添加为远程 Profile,再下载、激活并选择节点;如果直接运行 Mihomo,则在 config.yaml 中用 proxy-providers 加载订阅,并让 proxy-groups 的 use 引用它。更新订阅、重载配置、切换当前配置和选择节点不是同一个动作。本文核对日期:2026年11月14日。
定义:Mihomo 订阅是由远程地址提供配置或节点集合,客户端或内核下载后保存为 Profile、Provider 缓存,再由代理组读取并使用。
先看三行速查卡:你应该用哪种方法
这是一个第三方使用指南,不是 Mihomo、Mihomo Party 或任何订阅提供方的官方网站。Mihomo 是代理内核;Mihomo Party 是调用该内核的图形客户端;Clash Meta 是 Mihomo 早期常见的名称关联。当前图形项目的代码仓库名称为 clash-party,界面和项目名称可能随版本调整,菜单文案以当前界面为准。
| 你的使用方式 | 导入方法 | 导入后必须继续做什么 |
|---|---|---|
| 使用 Mihomo Party 图形客户端 | 添加远程 Profile 或订阅 URL | 下载、激活 Profile、进入代理组选择节点 |
| 直接运行 Mihomo 二进制或服务 | 在 config.yaml 中添加 proxy-providers | 让 proxy-groups.use 引用 Provider,再重载或重启 |
| 拿到的是完整 YAML 配置 | 保存为 config.yaml 后启动内核 | 确认文件格式、工作目录和端口,再验证实际请求 |
最快判断:图形客户端走“远程 Profile”;原生内核走“proxy-providers + use”;更新订阅不等于重载配置,节点出现也不等于代理已经生效。
官方资料可参考 Mihomo Party 项目仓库、mihomo Proxy Providers 文档 和 mihomo Proxy Groups 文档。
方法一:在 Mihomo Party 中添加、下载和启用订阅
Mihomo Party 的具体菜单名称可能随版本、系统和语言变化。以下使用当前常见的“Profile、配置、远程配置、订阅”等入口描述;如果你的界面显示不同,以当前版本为准,具体文案需核实。
- 准备订阅地址。从配置提供方复制完整的 Clash、Mihomo 或 Clash Meta 兼容地址。不要只复制域名,也不要删除问号后的参数、令牌或末尾字符。订阅地址属于敏感凭据,不要放进公开截图、Issue、聊天群或代码仓库。
- 打开 Profile 管理入口。启动 Mihomo Party,在侧边栏寻找
Profile、配置、远程配置或订阅管理页面,点击加号、添加或新建。项目仓库当前名称为clash-party,因此应用标题、图标或文案可能与旧教程中的“Mihomo Party”不同。 - 选择远程导入。选择 URL、Remote Profile、远程配置或订阅地址类型,不要把 URL 放入本地文件选择框。
- 粘贴并保存。粘贴完整地址,名称可以填写“工作配置”等不含令牌的名称。保存后等待下载,不要连续重复点击添加,以免生成多个相同 Profile。
- 检查下载结果。确认 Profile 有更新时间、配置内容、节点或策略组。如果只有 Profile 名称但没有节点,查看下载响应、客户端日志和配置解析错误。
- 激活并选择节点。对新 Profile 执行使用、激活或切换,然后进入代理组选择具体节点。看到 Profile 被保存,只能说明地址已记录;看到节点,也不代表系统代理、TUN 或实际网页请求已经生效。
| 动作 | 作用 | 常见误判 |
|---|---|---|
| 添加 | 保存远程地址或本地文件入口 | 误以为已经开始代理 |
| 更新 | 重新下载远程 Profile 或 Provider | 误以为会自动切换到新配置 |
| 重载 | 让正在运行的 Mihomo 重新读取配置 | 误以为会重新获取所有订阅 |
| 切换与选节点 | 启用某个 Profile,并指定代理组使用的节点 | 误以为节点列表出现就代表连接成功 |
如果报 401 Unauthorized 或 403 Forbidden,先核对地址、令牌和权限;如果报 404 Not Found,重新复制完整地址;如果报 timeout,先检查订阅域名解析和当前网络,不要直接重复添加。
方法二:原生 Mihomo 用 config.yaml 添加 proxy-providers
原生 Mihomo 的配置目录由启动参数决定。官方 systemd 示例使用 /usr/local/bin/mihomo -d /etc/mihomo,因此 Linux 服务通常可以先进入 /etc/mihomo;如果你使用其他启动方式,应以服务文件、Docker 挂载目录或命令中的 -d 参数为准。
先进入实际工作目录并备份。Linux systemd 示例:
sudo cd /etc/mihomo由于 sudo cd 在多数 Shell 中不会改变当前目录,更稳妥的写法是:
cd /etc/mihomo
sudo cp config.yaml config.yaml.bak-20261114如果你使用的是用户目录,则先执行类似 cd ~/.config/mihomo;Windows 和 macOS 请在实际配置目录中复制一份 config.yaml。不要直接覆盖没有备份的配置。
下面是可照抄的最小结构。代码中的订阅地址必须替换为你自己获得的完整 URL;示例域名不是可用订阅地址。
mixed-port: 7890
mode: Rule
log-level: info
proxy-providers:
my-subscription:
type: http
url: "https://YOUR_SUBSCRIPTION_URL"
path: ./proxy_providers/my-subscription.yaml
interval: 3600
health-check:
enable: true
url: https://www.gstatic.com/generate_204
interval: 300
timeout: 5000
proxy-groups:
- name: PROXY
type: select
use:
- my-subscription
proxies:
- DIRECT
rules:
- MATCH,PROXY保存后,确认 YAML 使用空格缩进,不要使用 Tab;proxy_providers 目录应位于 Mihomo 工作目录下,或位于允许的安全路径中。官方文档说明,Provider 的 path 默认受工作目录限制,放到其他位置可能需要配置 SAFE_PATHS。
type: http:通过 HTTP 或 HTTPS 获取远程 Provider。url:填写完整订阅地址。不要公开含令牌的 URL。path:保存 Provider 的本地缓存文件,父目录不存在时先创建。interval: 3600:按 3600 秒间隔更新 Provider,单位是秒。health-check:对 Provider 中的节点进行延迟检查,官方文档列出了https://www.gstatic.com/generate_204和https://cp.cloudflare.com等地址。use:把 Provider 引入代理组。只写 Provider、不在代理组使用,节点可能不会出现在可选列表中。
如果你的订阅返回的是完整 Mihomo YAML,而不是 Provider 节点集合,可以将其保存为工作目录中的 config.yaml,先备份旧文件,再通过启动命令或服务重启加载:
cd /etc/mihomo
sudo cp config.yaml config.yaml.before-import
sudo mv downloaded-config.yaml config.yaml
sudo systemctl restart mihomo
sudo systemctl status mihomoWindows 或 macOS 没有 systemctl,可先退出正在运行的 Mihomo,再替换配置文件并重新启动程序。若远程内容没有明确说明是完整配置还是节点集合,不要凭文件名猜测,先用文本编辑器查看顶层是否包含 proxy-groups、rules 等配置字段。
订阅更新、配置重载和节点切换怎么验证
原生 Mihomo 运行服务时,官方 systemd 示例支持用 systemctl reload mihomo 重新加载,并用 journalctl -u mihomo -o cat -e 查看日志。若重载后配置没有变化,先确认服务实际使用的 -d 工作目录,再检查文件修改时间。
sudo systemctl reload mihomo
sudo systemctl status mihomo
sudo journalctl -u mihomo -o cat -e如果配置启用了外部控制器,可以查询运行配置或触发重载。API 请求需要使用你自己设置的控制器地址和密钥,不能把管理接口暴露到不可信网络:
curl -H "Authorization: Bearer YOUR_SECRET" \
-X PUT "http://127.0.0.1:9090/configs?force=true" \
-d '{"path":"","payload":""}'官方 API 文档说明,/configs 可查询基础运行配置,PUT /configs?force=true 用于重载;也可以查询 /version 获取当前内核版本。API 地址和端口不是所有安装方式都相同,需以配置文件中的 external-controller 为准。
| 检查项目 | 判定标准 | 失败时先查什么 |
|---|---|---|
| 远程更新 | Profile 或 Provider 的更新时间变化,缓存文件大小非零 | URL、状态码、DNS、超时 |
| 配置重载 | 日志显示重新读取配置,运行配置中的端口或模式与文件一致 | 工作目录、启动参数、YAML 语法 |
| 切换当前配置 | 图形客户端显示新 Profile 为当前配置 | 是否只添加未激活、是否仍在旧 Profile |
| 节点选择 | 代理组显示已选节点,日志出现对应连接活动 | Provider 是否被 use 引用、节点是否可用 |
三平台验证:先定位工作目录,再检查端口和实际请求
验证命令必须在实际工作目录执行,不能机械照抄相对路径。Linux systemd 常见目录是 /etc/mihomo;用户手动运行时可能是 ~/.config/mihomo;Windows、macOS 或容器环境则以启动参数、快捷方式和挂载目录为准。官方服务示例明确使用 -d /etc/mihomo。
| 检查目标 | Windows | macOS | Linux |
|---|---|---|---|
| 进入实际目录 | Set-Location "C:\path\to\mihomo" | cd /实际/mihomo目录 | cd /etc/mihomo 或以 -d 为准 |
| 检查主配置 | Get-Item .\config.yaml | ls -l ./config.yaml | sudo ls -l ./config.yaml |
| 检查 Provider 缓存 | Get-ChildItem .\proxy_providers | ls -l ./proxy_providers | sudo ls -l ./proxy_providers |
| 检查 TCP 代理端口 | Get-NetTCPConnection -LocalPort 7890 -State Listen | lsof -nP -iTCP:7890 -sTCP:LISTEN | ss -lntp | grep ':7890' |
| 发起实际请求 | curl.exe -x http://127.0.0.1:7890 -I https://example.com | curl -x http://127.0.0.1:7890 -I https://example.com | curl -x http://127.0.0.1:7890 -I https://example.com |
如果图形客户端中的 mixed-port 不是 7890,必须把表格中的 7890 替换为设置页、当前配置或 API 返回的实际端口;不能默认认为 Mihomo Party 一定使用 7890。合格标准是:端口处于监听状态、Provider 缓存文件非空、curl 收到 HTTP 响应,并且 Mihomo 日志能看到相应请求或节点活动。
如果端口没有输出,可能是内核没有启动、端口配置不同或被其他程序占用;如果端口在监听但 curl 报 Connection refused,核对代理协议、监听地址和实际端口。Linux 查看 systemd 日志通常需要 sudo;Windows 查看用户目录一般不需要管理员权限。
撤销时先停止客户端或服务,恢复 config.yaml 备份,删除本次生成的 Provider 缓存目录,再重新启动。不要连续导入相同订阅,以免多个 Profile 同时存在,造成排查混乱。
导入失败、节点为空和 YAML 报错排查
401 Unauthorized:订阅服务拒绝认证。检查令牌是否完整、是否过期,以及复制的是否为订阅地址而不是登录页地址。403 Forbidden:请求被拒绝。先查看响应内容是否为 HTML、登录页或权限提示;如果不是配置内容,不能直接导入。404 Not Found:路径错误或资源不存在。重新复制完整地址,不要只修改 URL 的某一段。timeout或context deadline exceeded:下载阶段超时。区分订阅地址访问失败和节点连接失败,先检查订阅域名解析、当前网络和客户端日志。yaml: unmarshal errors:通常与缩进、Tab、冒号后的空格、引号未闭合或特殊字符有关。恢复备份后用两格空格重新整理。mapping values are not allowed here:常见于某一行缩进层级错误或值中包含未处理的冒号。逐行检查报错附近,不要把 YAML 压成单行。address already in use或bind: Only one usage of each socket address:端口已被其他程序占用。先用三平台端口命令找到监听进程,再停止冲突程序或修改mixed-port。- Profile 已添加但节点为空:先检查远程响应是否为 HTML、登录页、单节点 URI 或不兼容格式,再确认 Provider 缓存是否生成,以及代理组是否使用了正确的 Provider 名称。
如果远程 Profile 更新后本地手工修改消失,通常是因为远程文件被重新下载覆盖。更稳妥的维护方式是:把远程地址放进 Provider,把本地代理组、规则或其他修改放在独立基础配置中。当前客户端是否支持更复杂的覆写功能,需以实际版本和官方资料为准。
常见问题
Mihomo 导入订阅后为什么没有自动开始代理?
导入通常只完成地址保存或配置下载,不等于 Profile 已激活,也不等于系统代理或 TUN 已开启。请先激活新 Profile,再进入代理组选择节点,最后检查实际端口和 curl 请求。
Mihomo Party 和原生 config.yaml 应该选哪个?
有图形界面、希望少改 YAML 时,使用远程 Profile 更直接;自己运行 Mihomo 服务、需要脚本化或精细控制时,使用 config.yaml 的 proxy-providers。两种方式都要区分更新、重载、切换和选节点。
proxy-providers 添加成功,为什么代理组里没有节点?
检查代理组是否通过 <code>use</code> 引用了 Provider 名称,并确认名称大小写和拼写完全一致;同时检查远程响应、缓存文件和是否设置了过窄的 <code>filter</code> 或 <code>exclude-filter</code>。
完整 YAML 订阅应该放在哪里?
如果远程内容本身是完整 Mihomo YAML,可以下载后备份旧文件,再保存为实际工作目录中的 <code>config.yaml</code>,最后重启或重载内核。如果它只是节点集合,则更适合放进 <code>proxy-providers</code>。不要只根据文件名判断格式。
Windows 上如何判断 Mihomo Party 的代理端口?
不要直接假设端口是 7890。先在当前配置或客户端设置页查看 <code>mixed-port</code>,再执行 <code>Get-NetTCPConnection -LocalPort 实际端口 -State Listen</code>,最后用 <code>curl.exe -x http://127.0.0.1:实际端口 -I https://example.com/</code> 验证。
更新订阅后手工配置被覆盖怎么办?
不要长期直接修改远程 Profile 文件。把远程地址作为 Provider,将本地规则、代理组或覆写内容放入独立基础配置,并在每次修改前备份。具体覆写能力以当前客户端和内核文档为准。