Clash Meta 下载站mihomo 客户端下载

mihomo macOS 命令行使用教程

安装教程 2026 年 6 月 20 日 4 分钟阅读
本文目录

mihomo 在 macOS 上是一个不带界面的命令行程序:一个可执行文件、一份 YAML 配置,跑起来就在本地开出代理端口。它适合调试配置、跑脚本、在 Mac mini 上做长期常驻,而不适合日常点来点去地切节点。

如果你只是想上网时切换节点、开个系统代理,装 下载中心的 Clash Verge Rev 更省事——它内置的正是同一个 mihomo 内核,界面和自动化都替你做好了。下面这套 mihomo macOS 命令行流程,写给愿意折腾的人。

先选对架构:Intel 还是 Apple Silicon

本站提供 mihomo v1.19.29 的 macOS amd64 与 arm64 两种 .gz 包,选错了会直接启动失败或被 Rosetta 转译。查看芯片的方法有两个:点左上角苹果菜单 →「关于本机」,看「芯片」一栏是 Apple M 系列还是 Intel 处理器;或者直接在终端里执行:

uname -m

输出 arm64 选 arm64 包,输出 x86_64 选 amd64 包。两代芯片的差别与其他软件的选择建议,见 Mac 怎么选安装包

解压、授权与去除隔离属性

下载到的是 gzip 压缩的单文件程序,没有安装包,也不会出现在「应用程序」里。打开「终端」,进入下载目录依次执行:

cd ~/Downloads
gunzip mihomo-darwin-arm64-*.gz
chmod +x mihomo-darwin-arm64-*
xattr -d com.apple.quarantine mihomo-darwin-arm64-*

三条命令分别做三件事:解压出可执行文件、赋予执行权限、清除 Gatekeeper 打上的隔离属性。第三条尤其关键——从浏览器下载的文件都会被标记 quarantine,不处理的话运行时会弹出「无法验证开发者」并被拦下。如果你已经点掉了弹窗,也可以到 系统设置 → 隐私与安全性 里选择「仍要打开」。

说明:文件名以你实际下载到的为准,Intel 机型把命令中的 arm64 换成 amd64 即可。

放置程序与准备配置目录

把可执行文件移到 /usr/local/bin 并统一改名,之后在任意目录都能直接敲 mihomo;配置则单独放一个数据目录,用 -d 参数指向它:

sudo mv mihomo-darwin-arm64-* /usr/local/bin/mihomo
mkdir -p ~/.config/mihomo
nano ~/.config/mihomo/config.yaml

配置内容可以直接粘贴订阅链接返回的 YAML(订阅本身就是一份完整配置),也可以自己写。字段结构与最小可用示例见 mihomo 配置文件入门。写完先校验再启动:

mihomo -t -f ~/.config/mihomo/config.yaml
mihomo -d ~/.config/mihomo

-t 只校验不启动,出错会给出行号和原因;正式启动后日志直接打印在终端窗口里,按 Control + C 或关掉窗口就停止内核。

验证代理是否生效

内核启动后会在本地监听混合端口(以配置中的 mixed-port 为准,常见为 7890 或 7897)。另开一个终端标签页测试:

curl -x http://127.0.0.1:7890 -I https://www.example.com
lsof -nP -iTCP:7890 -sTCP:LISTEN

第一条能返回响应头,说明代理链路已经通了;第二条用于确认端口确实处于监听状态。注意命令行运行内核不会自动改系统代理设置,浏览器等应用要么手动填 127.0.0.1 加端口,要么在终端里导出环境变量:

export http_proxy=http://127.0.0.1:7890
export https_proxy=http://127.0.0.1:7890

用 launchd 让 mihomo 常驻后台

macOS 的常驻服务由 launchd 管理,用户级任务放在 ~/Library/LaunchAgents 下。新建 com.local.mihomo.plist,写入类似内容(把用户名换成你自己的):

<?xml version="1.0" encoding="UTF-8"?>
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>com.local.mihomo</string>
  <key>ProgramArguments</key>
  <array>
    <string>/usr/local/bin/mihomo</string>
    <string>-d</string>
    <string>/Users/yourname/.config/mihomo</string>
  </array>
  <key>RunAtLoad</key>
  <true/>
  <key>KeepAlive</key>
  <true/>
</dict>
</plist>

然后加载它,让内核随登录自动启动、退出后自动拉起:

launchctl load ~/Library/LaunchAgents/com.local.mihomo.plist
launchctl unload ~/Library/LaunchAgents/com.local.mihomo.plist

第二条是卸载命令,改完 plist 后先 unload 再 load 才会生效。用户级 LaunchAgent 不带 root 权限,因此这种方式只跑本地端口代理,TUN 那类需要建虚拟网卡的功能不在此列。

什么时候该退回图形客户端

命令行内核的价值在于可控与可脚本化:改一行配置、校验、重启,几秒钟一个循环,日志全在眼前。但它不管系统代理开关、不管订阅自动更新、不管节点延迟测试,这些都得你自己解决。日常使用仍然推荐 Clash Verge Rev,把命令行内核留给调试和服务器场景。想把同一套思路搬到 Linux 上做长期服务,接着读 mihomo Linux 服务器部署教程