本文探讨在 Windows 环境下利用 PowerShell 命令行部署 Mihomo 内核的技术路径。内容涵盖内核环境构建、外部控制接口(API)配置及系统代理自动化接管方案,旨在为追求轻量化与低资源占用的用户提供一种纯净的运行参考。
前言
自从 Clash for Windows (CFW) 停止更新后,我并未在第一时间更换其他 GUI 客户端。
直到最近,借着对这台使用了三年的 Windows 系统进行重装的契机,我决定停止使用原有的客户端。
在评估了市面上多种替代方案后,我选择尝试直接运行 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 默认编码差异导致的乱码问题。 - 基础参数:此处生成的配置仅用于内核初始化启动。其中
mixed-port设定为32277,mode设定为全局模式(global)。
3. 启动内核与面板
在完成基础配置后,执行以下命令即可启动 Mihomo 内核并挂载 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":设定外部控制服务的监听地址与端口。-ext-ui "WEBUI":指定 WEB 面板的存放路径。若路径不存在,内核将自动创建并尝试从 GitHub 下载面板资源。-secret "passwd1234":设定进入 WEB 管理面板的身份验证密钥。
如需查看更多可选参数,可执行
.\mihomo.exe -h获取帮助信息。
访问管理面板:
内核运行后,通过浏览器访问 http://127.0.0.1:9093/ui 进入管理界面。
在登录页面中,后端地址填写 http://127.0.0.1:9093,密钥填写参数中定义的 passwd1234。
配置系统代理
运行 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 工具对原始数据进行格式化处理。
Q2:更换配置文件后内核无法启动怎么办?
A:这通常是因为内核在初始化时需要下载地理位置数据库(如 geoip.metadb)。如果当前网络环境无法稳定连接至资源托管平台,下载中断将导致内核启动失败。
解决建议:
建议手动下载资源文件并放置在工作目录下(本文示例中即 mihomo.exe 同级目录)。以 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 值,或在启动命令中修改端口参数,随后重新运行即可。
总结
Mihomo 内核配合 Web 管理面板能够提供轻量化的网络代理体验。在实际部署与维护过程中,建议关注以下几点以确保运行稳定性:
- 交互管理:内核默认挂载 MetaCubeXD 面板。用户通过 Web 界面即可完成节点切换、规则管理及实时流量监控等交互操作,无需依赖传统的 GUI 客户端。
- 网络访问权限:首次运行内核时,需根据系统提示授予防火墙权限。若在 NAS 或远程服务器等特定环境下部署,应手动在防火墙规则中开放对应的监听端口(如 9093、32277)。
- 自动化运行方案:对于有长期运行需求的用户,可以通过 Windows 任务计划程序或启动文件夹实现开机自启。若追求更高的系统集成度与稳定性,建议使用 NSSM (Non-Sucking Service Manager) 将其注册为系统服务运行。
- 路径与环境规范:为减少权限冲突或路径解析异常,建议保持内核程序、配置文件及资源数据库的存储路径简洁(如避免路径中出现中文字符或过深的层级)。