mihomo Windows 命令行部署教程
这篇教程写给想直接与内核打交道的用户:不装图形客户端,在 Windows 上用命令行运行 mihomo,自己管理配置文件。适合折腾配置、做本地调试,或在无人值守的机器上跑代理的场景。如果你只是想日常上网,装 Clash Verge Rev 更省事——它内置的正是同一个内核,关系可参考 mihomo 是什么。
环境与版本:Windows 10/11,本站提供 mihomo v1.19.29 的 amd64 与 arm64 两种 zip 包。
下载与解压 mihomo 内核
- 确认架构:设置 → 系统 → 关于,“基于 x64 的处理器”选 amd64(绝大多数电脑),ARM 设备选 arm64。
- 从下载中心 Windows 分区下载 mihomo 内核 zip 包。
- 解压到一个固定目录,例如
C:\mihomo;解压出的 exe 文件名较长,建议重命名为mihomo.exe,方便后续输入命令。
解压用资源管理器右键“全部提取”即可,也可以在 PowerShell 里执行 Expand-Archive。选目录有两个经验:别放在 C:\Program Files 下,那里默认需要管理员权限才能写入,而内核要在数据目录写缓存与规则数据;路径尽量用纯英文、不带空格,省去敲命令反复加引号的麻烦。
准备配置文件
mihomo 通过 -d 参数指定数据目录,-f 指定配置文件。两者的关系是:只写 -d 时,内核会去该目录里找默认的 config.yaml;-f 则显式指定某个配置文件的路径,便于在同一目录里放多份配置来回切换。数据目录除了配置本身,还会存放 GeoIP/GeoSite 一类的规则数据与运行时缓存,所以它需要是可写的。
把 config.yaml 放进 C:\mihomo:内容可以直接使用订阅链接返回的 YAML——订阅本身就是一份完整配置,用浏览器打开订阅链接把返回的内容另存为 config.yaml 即可;也可以从零自己编写。保存时编码选 UTF-8:记事本另存为容易存成 GBK 或带上 BOM,这是命令行下最常见的“配置看着没错却解析失败”的原因。字段结构与最小可用示例见mihomo 配置文件入门。
启动、校验与日志
打开终端(PowerShell 或命令提示符),先校验配置再启动:
cd C:\mihomo
.\mihomo.exe -t -f .\config.yaml
.\mihomo.exe -d .
PowerShell 里执行当前目录的程序必须写 .\ 前缀,这是它的安全策略,不加会提示找不到命令。-t 只校验配置不启动,写错了会给出行号与原因,改完再校验一次直到通过,能省掉大量反复启动的时间。
| 参数 | 作用 | 典型用法 |
|---|---|---|
-d | 指定数据目录,配置与规则数据都从这里读写 | mihomo.exe -d C:\mihomo |
-f | 指定配置文件路径,用于一个目录放多份配置 | mihomo.exe -d . -f .\hk.yaml |
-t | 只校验配置、不启动内核 | mihomo.exe -t -f .\config.yaml |
正式启动后,日志直接打印在当前窗口:按 Ctrl+C 或关闭窗口即停止内核。排错时把日志从头读一遍,多数问题都有明确提示——启动阶段会依次输出监听的端口、加载的配置和 DNS 初始化情况,这几行就是判断内核是否真正就绪的依据。想看每条连接命中了哪条规则,把配置里的 log-level 临时调成 debug,排完再调回去,否则日志刷屏很快。
验证代理是否生效
启动后,内核会在本地监听混合端口(以配置中的 mixed-port 为准,常见为 7890 或 7897)。两种验证方式:给浏览器或系统代理手动指定 127.0.0.1:端口 后访问网页;或直接用命令测试(以 7890 为例):
curl.exe -x http://127.0.0.1:7890 -I https://www.example.com
netstat -ano | findstr 7890
第一条命令能返回响应头,说明代理链路可用;第二条用于确认端口确实处于监听状态。两条命令的结果可以这样对照判断:
- netstat 有监听、curl 也通:内核和节点都没问题,接下来只是让应用去用这个端口。
- netstat 有监听、curl 超时:本地服务起来了但出口不通,多半是节点故障、订阅过期或规则把它判成了拒绝,换个节点再试。
- netstat 什么都没有:内核没起来或端口写错了,回到启动窗口看日志;若提示端口被占用,改配置里的
mixed-port换一个。
命令行模式下内核不会自动设置系统代理,需要你手动在 Windows 设置的代理项里填 127.0.0.1 与对应端口,或者在浏览器插件里指定——这一点和图形客户端“一个开关搞定”的体验差别最大,很多人以为内核没跑起来,其实只是没人告诉系统去用它。第一次启动时若弹出 Windows 防火墙提示,勾选允许专用网络访问即可。
常驻运行与升级
常驻思路:用 Windows 自带的任务计划程序创建一个“用户登录时”触发的任务,操作指向 C:\mihomo\mihomo.exe,参数填 -d C:\mihomo,起始位置填同一个目录(这一项不填,内核可能在错误的工作目录下找不到数据文件)。这样开机登录后它就会自动在后台运行。具体界面各系统版本略有差异,这里给的是通用思路。
升级:先结束 mihomo 进程(在启动窗口按 Ctrl+C,或在任务管理器里结束进程),再用新版 exe 覆盖旧文件即可,配置与数据目录原样保留。文件被占用时会提示无法覆盖,说明进程还在跑。建议保留一份上一版的 exe,新版本若有异常可以直接换回来验证是不是版本问题。想在 Linux 服务器上做同样的部署并用 systemd 托管,参考 mihomo Linux 服务器部署教程。