本文记录了在 Windows 下使用 PowerShell 命令部署 Mihomo (Clash Meta) 内核的操作步骤。文章内容包括内核版本选择、 config.yaml 配置初始化、 WEBUI 管理面板下载安装,以及如何通过命令行快速切换系统代理设置。
前言 (Preface)
自从 Clash for Windows (CFW) 停止更新后,我并未在第一时间更换其他 GUI 客户端。
正好前不久要重装用了三年的 Windows 系统,我也决定趁此机会换掉原有的 GUI 客户端。
在尝试了现在流行的多种 GUI 客户端后,我选择直接运行 Mihomo (Clash Meta) 内核进行代理。
这种裸核运行的方式相对更加纯净,既不占用多余的系统 UI 资源,也没有复杂的后台进程。
作为目前社区活跃度较高的开源内核,Mihomo 配合 WEB 管理面板,能够有效满足我的日常代理需求。
本文中的操作均在 Windows 11 LTSC 中执行,具体系统信息如下:
Name : HYPER-SERVER
Manufacturer : Microsoft Corporation
Model : Virtual Machine
NumberOfProcessors : 1
NumberOfLogicalProcessors : 4
TotalPhysicalMemory : 3.58GB
OsName : Microsoft Windows 11 企业版 LTSC
OsVersion : 10.0.26100
OsArchitecture : 64 位
OsInstallDate : 2025/10/13
重要提示:文中涉及的命令都是在 PowerShell 窗口中执行
安装部署流程
在 Windows 环境下运行 Mihomo 内核的过程比较简单。首次运行建议先照着步骤跑通,确认没问题了再按自己的需求修改配置。
1. 准备内核环境
-
获取内核:从 https://github.com/MetaCubeX/mihomo/releases 下载适用于 Windows 的压缩包。
一般建议选择不带架构级别后缀的标准版本,以获得最佳兼容性,例如
mihomo-windows-amd64-v1.19.16.zip。 -
重命名文件:解压压缩包,将可执行文件命名为
mihomo.exe以便于命令行调用。
内核选择与编译说明:
- 架构版本:不同后缀(V1/V2/V3)对应特定的 CPU 指令集优化。在现代处理器上,三者的日常性能差距极小(通常低于 5%),若追求稳定性可首选兼容性最强的 V1 版本。
- Go 版本:内核基于 Go 语言编写,可以选择高于 Go 1.21 版本的发布包,或许会有更好的内存调度与网络吞吐性能。
| 内核版本 | 硬件要求 / CPU 示例 | 特点描述 |
|---|---|---|
| v1 | 兼容绝大多数 64 位 CPU(如早期奔腾、赛扬系列) | 兼容性最强 |
| v2 | 需支持 SSE4.2 指令集(如 Intel G4560 等) | 中代 CPU 效率更高 |
| v3 | 需支持 AVX2 指令集(如 AMD 6800H 等) | 现代 CPU 性能最优 |
2. 初始化配置文件
在启动内核前,需在 mihomo.exe 同级目录下创建基础配置文件 config.yaml。
执行以下命令可快速生成包含基础端口及运行模式的配置:
"mixed-port: 32277" | Out-File -FilePath 'config.yaml' -Encoding UTF8
"mode: global" | Out-File -FilePath 'config.yaml' -Encoding UTF8 -Append
配置说明:
- 文件编码:此命令特意指定
UTF8编码,防止 PowerShell 生成编码乱码的 Clash 配置文件。 - 基础参数:代理端口
mixed-port设定为32277,代理模式mode设定为全局模式(global)。
此处生成的配置文件仅用于运行内核测试使用,这是检查内核运行效果的最低配置要求。
3. 启动内核与面板
以上步骤执行完成后,运行下面的命令就能启动内核并自动下载 Web 管理面板:
.\mihomo.exe -d "." -f ".\config.yaml" -ext-ctl "0.0.0.0:9093" -ext-ui "WEBUI" -secret "passwd1234"
参数说明:
-d ".":指定当前目录为工作目录(默认路径为~/.config/mihomo)。-f ".\config.yaml":指定启动所需的配置文件路径。-ext-ctl "0.0.0.0:9093":设定 WEBUI 外部控制服务的监听地址与端口。-ext-ui "WEBUI":指定 WEBUI 面板的文件路径。若路径不存在,将自动创建并从 GitHub 下载所需文件。-secret "passwd1234":设定 WEB 管理面板的登录密钥。
如需查看更多可选参数,可以执行
.\mihomo.exe -h命令获取帮助信息。
默认下载的 WEBUI 为 MetaCubeXD 面板,这是 Mihomo 内核所属的 GitHub 账号发布的官方面板。
访问管理面板:
内核运行后,通过浏览器访问 http://127.0.0.1:9093/ui 进入管理界面。
在登录页面中,后端地址填写 http://127.0.0.1:9093,密钥填写参数中定义的 passwd1234。
WEB 面板选择:
Mihomo 官方文档中提供了三个 WEB 面板,可以直接在线尝试使用,觉得哪个好用再下载到本地使用。
Yacd : http://yacd.metacubex.one
Metacubexd : http://d.metacubex.one
zashboard : http://board.zash.run.place
配置系统代理
运行 Mihomo 内核后,需要配置 Windows 系统代理以便流量能够经由内核转发。
以下通过 PowerShell 命令实现代理的快速开启与关闭。
1. 开启系统代理
执行以下命令可启用系统代理,并将代理服务器设置为 127.0.0.1:32277,同时自动配置绕过本地地址的列表:
$P = 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings'; sp $P ProxyEnable 1; sp $P ProxyServer '127.0.0.1:32277'; sp $P ProxyOverride '<local>;localhost;127.*;10.*;172.16.*;172.17.*;172.18.*;172.19.*;172.20.*;172.21.*;172.22.*;172.23.*;172.24.*;172.25.*;172.26.*;172.27.*;172.28.*;172.29.*;172.30.*;172.31.*;192.168.*'
2. 关闭系统代理
若需停止使用代理并清除相关设置,可执行以下命令:
$P = 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings'; sp $P ProxyEnable 0; sp $P ProxyServer ''; sp $P ProxyOverride ''
说明:
- 自动化配置:以上命令实际是修改系统注册表,主要是简化手动设置系统代理的步骤。
- 手动设置参考:如果不想使用命令,也可以进入
系统设置 -> 网络和 Internet -> 代理页面手动填写代理服务器地址与端口。
运行效果展示
完成上述配置步骤后,Mihomo 内核与 WEB 管理面板的运行状态可以参考下图:
状态说明:
- 命令行窗口:显示内核成功启动并开始监听相关端口。
- WEB 管理面板:通过浏览器可正常访问并显示当前的网络连接状态与节点信息。
常见问题 (FAQ)
本节汇总了部署过程中的典型问题及其解决方案。
Q1:如何获取可用的配置文件 (config.yaml)?
A:通常有以下几种途径:
- 脚本下载:使用 PowerShell 命令从订阅链接直接获取:
$L=Read-Host 'Link';(Invoke-WebRequest $L -UserAgent Clash).Content|Out-File -E utf8 config.yaml - 客户端提取:从 Clash for Windows 等现有工具的配置文件夹中直接复制。
- 手动构建:参考官方文档编写 YAML 规则,或利用 AI 工具编写 Clash 配置文件。
Q2:更换配置文件后内核无法启动怎么办?
A:大概是因为内核启动时需要根据配置文件下载数据(例如 geoip.metadb),如果不能从 GitHub 下载数据就会导致内核运行失败。
解决建议:
可以手动下载文件并保存在内核工作目录下,以 geoip.metadb 文件为例,以下任一地址都能下载:
- GitHub (源站):https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest/geoip.metadb
- JsDelivr (CDN):https://cdn.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@release/geoip.metadb
- TestingCF (备用 CDN):https://testingcf.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@release/geoip.metadb
Q3:配置文件为空会影响进入管理面板吗?
A:不会。只要内核启动命令中的 ext-ctl 参数配置正确,即使配置文件为空,也不影响内核的基础启动和 WEB 管理面板的正常访问。
Q4:为什么我的配置文件无法解析?
A:请检查编码格式。 Mihomo 要求配置文件必须为 UTF-8(无 BOM)编码。若使用 PowerShell 生成文件,请确保执行了 -Encoding UTF8 参数。
Q5:启动时报错 “listen tcp 0.0.0.0:32277: bind: address already in use” 怎么办?
A:这说明 32277 端口已被其他程序占用。可以修改 config.yaml 中的 mixed-port 值,或在启动命令中修改端口参数,随后重新运行即可。
总结 (Summary)
使用 Mihomo 裸核运行的方式,省去了 GUI 客户端的资源占用,这种方案用起来确实很轻量。
在日常使用和配置过程中,有一些使用建议可以参考:
- 面板操作:切换节点、查询流量可以在浏览器打开 WEB 面板进行操作,无需其他 GUI 客户端。
- 防火墙权限:需要放行内核代理端口,如果部署在其他服务器,也需要放行 WEBUI 端口(例如:32277、9093)。
- 开机自启:可以使用 Windows 任务计划程序、开机自启文件夹实现开机自启,或使用 NSSM 将内核注册为系统服务。
- 路径规范:内核程序、配置文件和工作目录尽量选择简单的全英文路径,避免出现一些莫名其妙的报错。