教程 阅读约 14 分钟

Mihomo 外控端口怎么设?Yacd 网页面板一步步对接(2026)

若你已能跑起 MihomoClash.Meta 内核),却不想每次改节点、看连接都打开 YAML,那么 external-controllerREST API 就是管理入口:Yacd 这类 Web 面板通过浏览器调用同一套接口,实现策略组切换、连接列表与部分配置热更新。本文说明外控地址该填什么、本机与局域网如何访问、secret 怎么配,并整理「面板连不上」的常见原因;与 Linux TUN 部署Docker 端口映射 等文互补,聚焦管理面而非内核或容器细节。

Clash 编辑组 Mihomo · external-controller · Yacd · REST API

external-controller 是什么

external-controller 是 Mihomo 对外暴露控制平面的监听地址,通常写成 IP:端口。内核在同一端口上提供 REST API(例如查询版本、代理列表、切换策略组、查看连接等)。图形客户端、命令行工具与 YacdWeb 面板本质上都是这些 HTTP 接口的调用方;你改 YAML 里的策略组名称、端口或 secret 后,面板与 API 行为会立刻受影响,因此「能连上外控」是浏览器管理的前提。

数据平面(实际代理流量)仍由 mixed-portportsocks-portTUN 等承担,不要与外控端口混淆。若你刚做完 systemd 与 TUN 一条龙,只需在现有配置上确认外控段无误即可;DNS 与 FakeIP 若未对齐,可能出现「面板里一切正常但网页解析怪」的现象,可对照 Meta 内核 DNS 防泄漏指南

配置里该填什么:127.0.0.1 还是 0.0.0.0

仅本机浏览器访问(面板与 Mihomo 在同一台电脑):最常见写法是 external-controller: 127.0.0.1:9090。这样外控只监听回环接口,局域网其他设备无法直连,暴露面最小。端口可自定,只要不与系统或其他服务冲突;改端口后,面板里填的 API 地址也要同步改。

需要从手机或另一台电脑打开面板:内核必须监听在可被对方访问的地址上,例如 0.0.0.0:9090,并通常配合 allow-lan: true(以及代理侧允许局域网,若你还要连 mixed-port)。同时要在系统或路由器防火墙上放行该端口。务必设置足够随机的 secret,否则等同在局域网内裸奔管理接口;公网直连外控极其危险,本文不鼓励也未给出相关步骤。

# Minimal example — change port and secret
mixed-port: 7890
external-controller: 127.0.0.1:9090
secret: "replace-with-a-long-random-string"

# LAN access example (lock down firewall + strong secret)
# allow-lan: true
# external-controller: 0.0.0.0:9090

secret 与浏览器跨域(CORS)

secret 用于校验调用方是否有权操作 API。面板在请求头里携带令牌(常见形式为 Authorization: Bearer <secret>,具体以你所用面板说明为准)。若面板提示 401 或未授权,首先核对 YAML 里的 secret 与面板输入是否一致、是否有多余空格或引号问题。

使用在线托管的 Yacd 页面(HTTPS)去访问本机 HTTP127.0.0.1:9090 时,浏览器会涉及跨源与混合内容策略,部分环境可能拦截。可行做法包括:使用面板提供的「本地 / 自托管」静态页、或通过官方文档推荐的方式访问;若 Meta 系配置支持对外控配置 CORS,可按需加入 external-controller-cors 等字段放行来源,但仍应最小权限,避免写成通配且暴露在不可信网络。

1用 Yacd 对接:逐步操作

下面以典型流程为例,不同站点镜像的 Yacd 界面文案可能略有差异,但字段含义一致。

  1. 在浏览器打开你所使用的 Yacd 部署地址(社区常用静态托管页;亦可自行构建后本地打开 HTML)。
  2. 在配置或设置中找到「API」或「Controller」输入框,填写 http://127.0.0.1:9090(若你改了端口,改为实际端口)。
  3. 在密钥栏填入与配置文件中完全一致的 secret
  4. 保存并连接;成功后可看到版本信息、策略组与节点列表,并能在界面中切换策略、查看当前连接。

若你从局域网另一台设备访问面板页面,而 Mihomo 跑在 PC 上,则 API 地址应填该 PC 的局域网 IP 加端口(例如 http://192.168.1.10:9090),且 Mihomo 必须监听 0.0.0.0 或该网卡地址,防火墙放行。手机浏览器若仍失败,可先在 PC 上用 curl/version 类接口是否可达。

2REST API 与面板功能边界

外控提供的是一组 HTTP JSON 接口,Yacd 将其做成图表与按钮。你能方便地完成:查看与切换策略组浏览连接与会话触发订阅更新(若实现暴露)、查看规则与延迟测试结果等。并非所有 YAML 片段都适合在面板里改:复杂规则集、大型 rule-providers 仍建议在文件或 Git 中维护,再热加载或重启,以免误操作。

Subconverter 生成的订阅合并进配置后,面板里看到的节点名、策略组名应与文件一致;若刷新订阅后名称变化,规则里旧名称会失效,表现为策略组空或启动报错,这与是否使用面板无关,属于配置一致性范畴。

Docker 与 NAS 场景:别漏映射与监听

容器内 Mihomo 的 external-controller 若仍为 127.0.0.1:9090,则只监听容器回环,宿主机浏览器无法直接映射端口访问。常见做法是改为 0.0.0.0:9090 并在 docker-compose 里映射 9090:9090,再用宿主机 IP 访问。更完整的卷与端口说明见 Mihomo Docker 部署:compose 卷挂载与端口映射

常见「连不上面板 / API」原因

  • 进程未启动或配置未加载: Mihomo 未运行或启动失败时,浏览器必然连接被拒绝;先看日志与前台运行报错。
  • 端口写错: 面板填的端口与 YAML 不一致,或与其他程序占用冲突。
  • 只监听 127.0.0.1: 却在另一台机器访问;需改监听地址并配合防火墙与 allow-lan
  • secret 错误: 401 或认证失败类表现,重新核对令牌字符串。
  • HTTPS 页面访问 HTTP 本机 API: 浏览器安全策略限制;换本地打开面板或按文档配置 CORS / 自托管。
  • 客户端自带外控: 若使用 Clash Verge 等图形壳,实际外控端口可能由客户端改写,以客户端设置为准,勿与独立内核配置文件想当然混用。

安全提示:external-controller 暴露到公网且无强认证,等同于把代理与规则控制权交给扫描器。仅在可信网络使用局域网监听,并配合复杂 secret 与防火墙最小放行。

更习惯图形客户端时

独立内核加 Yacd 适合喜欢「自己掌控进程与目录」的用户;若你更希望安装即用、更新与系统集成由客户端完成,可从 本站下载页 获取 Clash 系客户端,在 Windows 等环境下往往已内置或一键开启外控与面板入口。两种路径可以并存:客户端负责日常,YAML 与 API 负责自动化与排障。

合规提醒:请仅在法律与网络使用政策允许的范围内使用代理与加密隧道;企业或校园网络可能限制擅自绕行。

关于获取软件:Mihomo 与 Meta 内核可在 GitHub 查阅源码与变更;若你需要带图形界面的 Clash 客户端安装包,请优先使用 本站下载页,与纯内核或第三方面板区分理解。

小结

用好 Mihomoexternal-controller,核心是:监听地址与访问场景匹配(本机 127.0.0.1、局域网 0.0.0.0 加固)、secret 与面板一致、以及浏览器环境与 CORS / 混合内容不挡路。Yacd 作为 Web 面板REST API 包装成可视操作,适合快速切节点、看连接;与 订阅与节点管理相关的底层结构仍建议在配置文件中保持清晰可维护。

相比只啃 YAML,外控加面板把「观测与轻量变更」拉到浏览器里完成;与站内 TUN、Docker、DNS 等专题拼在一起,就是较完整的 Meta 内核使用闭环。

立即免费下载 Clash,开启流畅上网新体验

Clash 客户端 外控与面板

独立跑 Mihomo 配 Yacd 适合进阶用户;若更希望内置管理入口与安装包更新渠道,可从本站获取 Clash 系图形客户端,与外控 API 能力互补。

Web 面板

Yacd 对接 REST API 管理节点

Meta 内核一致

与教程中的 Mihomo 语境相同

教程衔接

Docker、TUN、DNS 文互相引用

本站分发

客户端安装包入口集中

上下篇导航

相关阅读

用 Yacd 管理 Mihomo

外控配好后面板切节点、看连接更直观;图形客户端也可从本站一键获取。

免费下载客户端