Mihomo Party 外部控制器怎么开启?Windows安全配置步骤

不知道 Mihomo Party 的外部控制器在哪里设置?本教程以 Windows 客户端为例,从功能入口、监听端口和密钥填写,到 Web 面板连接与安全检查,带你完成可用且不易暴露的控制接口配置。

外部控制器是什么:先理解监听接口的作用

Mihomo Party 的外部控制器,本质上是 mihomo 内核提供的一组 HTTP API。客户端界面负责展示节点、策略组和运行状态,外部控制器则负责把这些信息以接口形式暴露出来,其他 Web 面板、桌面工具或自动化脚本可以通过接口读取状态、切换代理组、查看连接、关闭连接和修改部分运行选项。

它与 Windows 系统代理不是一回事。系统代理决定浏览器和其他应用把流量交给哪个本地端口;外部控制器决定管理程序通过哪个地址和端口操作 mihomo。即使浏览器使用的是 127.0.0.1:7890,控制接口也可以监听在 127.0.0.1:9090,两个端口承担完全不同的职责。

  • 代理端口:例如 7890,供 HTTP、HTTPS 或 SOCKS5 流量接入。
  • 控制端口:例如 9090,供 Web 面板和管理工具调用 API。
  • 控制密钥:也叫 Secret,用来阻止未授权程序直接操作内核。
  • 监听地址:决定接口只允许本机访问,还是允许局域网其他设备访问。

大多数 Windows 用户只需要本机 Web 面板,因此最安全的组合是监听 127.0.0.1:9090,设置一组较长的密钥,并保持 allow-lan: false。如果把监听地址改成 0.0.0.0,接口可能同时暴露在无线局域网、有线网络甚至防火墙允许的其他网络环境中,风险会明显增加。

外部控制器不是代理节点入口

控制端口不能替代 HTTP 或 SOCKS5 代理端口,也不能把订阅链接中的节点流量直接转发出去。只要 Web 面板与 Mihomo Party 在同一台电脑上运行,通常不需要开启局域网访问,更不要为了“面板连不上”就直接把监听地址改成公网地址。

在 Mihomo Party 中找到外部控制器设置

不同版本的 Mihomo Party 菜单名称可能略有差异,尤其是客户端界面更新后,入口可能位于“设置”“内核设置”“高级设置”或“配置编辑”附近。不要只在节点列表中寻找这个功能,因为节点页面管理的是出站代理,外部控制器属于内核 API 设置。

  1. 启动 Mihomo Party,确认客户端已经载入一份有效配置,并在主界面能够看到当前内核处于运行状态。
  2. 点击左侧或顶部的“设置”,优先查看“常规”“内核”或“高级”分类。
  3. 寻找“外部控制器”“External Controller”“API 监听”或相近名称的设置项。
  4. 分别确认监听地址、监听端口和 Secret 三个字段;如果界面只显示一个组合输入框,就按地址与端口的形式填写。
  5. 保存设置并重启内核,部分版本需要重新启动 Mihomo Party 后才会创建新的监听端口。

如果设置页面没有单独的外部控制器输入框,可以打开当前生效配置的编辑视图,在顶层字段中检查相关配置。外部控制器属于顶层配置,不应放在 proxies:proxy-groups:dns: 下面。一个适合 Windows 本机使用的基础写法如下:

external-controller: 127.0.0.1:9090
secret: "replace-with-a-long-random-secret"
allow-lan: false

external-controller 负责指定 API 的监听地址和端口;secret 是访问控制接口时使用的密钥;allow-lan 控制是否允许局域网连接代理和相关服务。配置文件使用 YAML 语法,冒号后要保留空格,密钥包含特殊字符时建议用英文双引号包起来。

优先使用回环地址

127.0.0.1 只代表当前 Windows 电脑。它可以让本机 Web 面板访问 API,但不会主动把控制接口提供给同一 Wi-Fi 下的手机、平板或其他电脑。除非明确需要跨设备管理,否则不要填写 0.0.0.0、局域网 IP 或公网 IP。

Windows 动手配置:地址、端口与密钥

下面以本机控制为目标完成一次配置。示例使用 127.0.0.1:9090,这个端口只是常见示例,不代表必须固定使用 9090。如果该端口已经被其他程序占用,可以改成 9091、9097 或其他未使用的本地端口,但必须让 Web 面板填写同一个端口。

第一步:填写监听地址和端口

在外部控制器设置项中,把地址填写为 127.0.0.1,端口填写为 9090。有些界面要求直接输入完整值,此时填写 127.0.0.1:9090;有些界面把地址和端口拆成两个输入框,则分别填写。不要在地址前加 http://,因为这里填写的是监听端点,不是 Web 页面 URL。

端口冲突时,Mihomo Party 通常会在日志中出现“address already in use”“bind failed”或“listen tcp”一类提示。Windows 可以打开 PowerShell 执行以下命令,检查 9090 是否已被占用:

Get-NetTCPConnection -LocalPort 9090 -ErrorAction SilentlyContinue

如果命令返回了连接信息,说明该端口已经被程序使用。可以换一个端口,例如 9097,保存后再检查日志。不要仅仅因为浏览器打开空白页面,就连续更换多个端口;先确认内核是否成功启动以及设置是否已经写入当前生效配置。

第二步:设置控制密钥

Secret 不建议使用 123456、Windows 用户名、生日、订阅名称或客户端名称。它至少应包含较长的随机字符,避免被局域网内的其他程序猜到。示例中的密钥只是格式演示,不能直接用于真实环境:

secret: "Mihomo-Local-2026-Change-This-Key"

如果界面提供“生成密钥”按钮,优先使用生成结果;如果手动填写,建议使用 24 个字符以上的大小写字母、数字和符号组合。密钥一旦泄露,攻击者可能读取代理状态、切换节点、关闭连接,部分面板还可能调用更高权限的配置接口。不要把 Secret 截图发到群聊,也不要把包含 Secret 的完整配置文件上传到公开位置。

第三步:保存并重启内核

保存后观察 Mihomo Party 的内核状态。设置修改成功通常会伴随内核重载、短暂断开后恢复,或者要求手动点击“重启内核”。重启完成后,先不要急着打开 Web 面板,可以在 PowerShell 中测试本机端口是否处于监听状态:

Test-NetConnection 127.0.0.1 -Port 9090

如果结果中的 TcpTestSucceededTrue,说明 Windows 至少能够连接到这个端口;如果为 False,重点检查三项:当前配置是否真的生效、mihomo 内核是否正在运行、端口是否被其他程序占用。端口能连接并不代表鉴权正确,密钥还需要在 Web 面板中单独填写。

连接 Web 面板:API 地址与 Secret 要对应

Web 面板通常需要两项信息:Mihomo API 地址和访问密钥。因为文章示例的控制器监听在本机 9090 端口,所以 API 地址应填写 http://127.0.0.1:9090。如果面板输入框已经自动补全协议,就只填写 127.0.0.1:9090,不要重复输入两次 http://

  1. 打开已安装的 Web 面板或 Mihomo Party 内置面板入口。
  2. 在连接设置中选择 mihomo、Clash Meta 或兼容的 Clash API 类型。
  3. 将 API 地址填写为 http://127.0.0.1:9090
  4. 把 Mihomo Party 中的 Secret 原样复制到面板的 Secret、密钥或 Token 字段。
  5. 点击连接,确认面板能够显示运行模式、当前代理组、节点延迟和活动连接。

控制接口的鉴权通常通过 Bearer Token 完成。若使用命令行测试,可以把密钥放入请求头中,例如:

curl.exe -H "Authorization: Bearer Mihomo-Local-2026-Change-This-Key" http://127.0.0.1:9090/version

返回版本信息,说明地址、端口和 Secret 基本匹配;如果返回 401 Unauthorized 或类似未授权提示,说明端口可以访问,但密钥错误、存在多余空格,或者面板没有按 Bearer Token 方式提交。若浏览器提示无法连接,则优先检查地址、端口和内核状态,而不是先关闭 Windows 防火墙。

现象 更可能的原因 处理方法
无法建立连接 内核未运行、端口写错或端口未监听 查看内核日志并使用 Test-NetConnection 检查
返回 401 Secret 错误、复制了空格或面板鉴权格式不对 重新复制密钥,确认使用 Bearer Token
面板打开但没有节点 配置未载入或面板连接到另一实例 确认当前配置名称和 API 端口一致
能看状态但无法切换策略组 面板兼容性、接口版本或请求权限存在差异 更新面板与 mihomo,查看浏览器控制台错误
Windows 弹出防火墙提示 监听地址使用了局域网或全网地址 本机使用改回 127.0.0.1,并撤销不必要的放行规则

安全检查:避免控制接口被暴露

外部控制器最常见的安全问题不是 API 本身,而是监听地址、局域网开关和防火墙规则配置过宽。完成连接后,建议按下面的顺序做一次检查,确认“本机能用”和“外部无法随意访问”同时成立。

  • 检查监听地址。再次确认配置中是 127.0.0.1:9090,而不是 0.0.0.0:9090。前者只接受本机连接,后者会在多个网络接口上监听。
  • 检查局域网开关。不需要手机或其他电脑连接时,保持 allow-lan: false。这个开关即使不直接改变控制器绑定地址,也会影响客户端的局域网服务暴露范围。
  • 检查密钥强度。确认没有继续使用示例密钥、短数字串或容易从设备名称推断出的字符串。密钥应当单独保存,不要和订阅链接放在同一张公开截图中。
  • 检查 Windows 防火墙。在“Windows 安全中心 › 防火墙和网络保护 › 高级设置 › 入站规则”中查看是否存在允许 9090 端口从任意地址访问的规则。本机回环访问一般不需要为外部网络创建放行规则。
  • 检查实际监听状态。执行 Get-NetTCPConnection -LocalPort 9090,确认监听地址是 127.0.0.1。如果显示 0.0.0.0 或局域网 IP,需要回到配置中修正。
  • 检查日志内容。如果日志持续出现陌生来源地址访问控制接口,立即更换 Secret,并将监听地址收紧到回环地址。

不要把控制端口直接做端口映射,也不要通过路由器端口转发把 9090 暴露到互联网。即使设置了 Secret,公网控制接口仍会持续面对扫描、爆破和接口兼容性风险。需要远程管理时,应先使用受控的加密远程网络,再让面板通过内网地址访问,不能把“能远程打开”当成“配置正确”。

发现端口暴露时立即处理

如果 API 地址已经监听在公网或不受信任的局域网接口,先停止 Mihomo Party 或关闭外部控制器,再修改监听地址和 Secret。仅仅更换 Web 面板地址不能关闭 API,真正需要修改的是 mihomo 的监听配置与 Windows 入站防火墙规则。

常见问题与排查方法

为什么外部控制器设置保存后没有效果?

常见原因是修改了未生效的配置文件,或者客户端只保存了编辑内容但没有重启 mihomo 内核。保存后先确认当前配置名称,再执行“重载配置”或“重启内核”。随后使用 Get-NetTCPConnection -LocalPort 9090 检查端口是否真正开始监听。

API 地址应该写 127.0.0.1 还是 localhost?

两者通常都指向当前电脑,但优先使用 127.0.0.1 更容易排除 Windows 主机名解析、IPv6 优先级和代理环境变量造成的干扰。面板地址可填写 http://127.0.0.1:9090,端口必须与 Mihomo Party 的外部控制器设置完全一致。

没有填写 Secret,Web 面板也能连接,是否可以继续使用?

不建议。没有 Secret 的控制接口相当于缺少最基本的鉴权,只要其他程序能够访问该端口,就可能读取状态或发送管理请求。即使当前监听地址是 127.0.0.1,也建议设置足够长的 Secret,避免本机恶意软件或误配置的转发服务直接调用 API。

想让手机连接电脑上的 Web 面板,需要怎么改?

这属于局域网共享场景,不应直接照搬本机配置。需要确认电脑与手机处于同一可信网络,把监听地址改为电脑的局域网 IP 或由客户端提供的局域网监听方式,同时设置强 Secret,并在 Windows 防火墙中只允许可信局域网网段访问。使用完成后应恢复 127.0.0.1,关闭不必要的入站规则。

完成配置后的下一步

外部控制器只负责管理 mihomo 内核,不会自动生成订阅、节点或分流规则。确认 Web 面板可以连接后,还应检查当前模式是否为 Rule、策略组是否选中了可用节点,以及 Windows 系统代理端口是否与配置中的 mixed-port 一致。需要重新安装客户端或查看完整上手流程时,可以从下载中心和教程页继续操作。

下载Clash