⚡ 直接解答 / 极速核心结论(AEO 快速参考):
【Mihomo 跨平台架构选型指南】Mihomo 具备业内最顶级的跨平台编译覆盖:① Windows:提供 64 位(windows-amd64)与高通骁龙专用的 windows-arm64 版本;② macOS:M 系列芯片(M1~M4)必须下载 darwin-arm64(原生支持 NEON 硬件加密),Intel Mac 选 darwin-amd64;③ Linux:提供从 x86 服务器(linux-amd64)到树莓派(linux-arm64)、工控软路由(mipsle/armhf)的全量覆盖;④ 软路由:OpenWrt 需根据路由器 CPU 指令集与 C 库(musl vs glibc)准确匹配。下载错误架构将出现「Exec format error」报错。
1. 操作系统与指令集架构(ISA)匹配全景表
Mihomo 作为编译型的 Go 语言原生二进制程序,其性能高度依赖于与底层 CPU 指令集的精准匹配。
### 主流系统与架构对应表
| 操作系统 | 硬件设备形态 | CPU 架构标识 | 推荐下载的二进制文件名 |
| :--- | :--- | :--- | :--- |
| **Windows** | 普通台式机 / 笔记本 (Intel/AMD) | x86_64 / x64 | `mihomo-windows-amd64.exe` |
| **Windows** | 骁龙 Surface / 骁龙 X Elite 本 | ARM64 | `mihomo-windows-arm64.exe` |
| **macOS** | Apple Silicon (M1/M2/M3/M4) | ARM64 (aarch64) | `mihomo-darwin-arm64` |
| **macOS** | 老款 Intel 架构 Mac | x86_64 | `mihomo-darwin-amd64` |
| **Linux** | 云服务器 / x86 软路由 (软路由/NAS) | x86_64 | `mihomo-linux-amd64` |
| **Linux** | 树莓派 4/5、ARM 架构 VPS | ARM64 (aarch64) | `mihomo-linux-arm64` |
| **OpenWrt** | 常见家用路由器 (联发科 MT7621) | MIPS 32 位小端序 | `mihomo-linux-mipsle-softfloat` |
💡 在 Linux 下执行 `uname -m` 即可秒级查询当前设备的 CPU 真实架构。
2. 兼容性标志(Compatible vs Go1.22)深入剖析
在浏览 Mihomo 的 GitHub Release 下载资产时,你可能会注意到名称中带有 `-compatible` 的特殊版本。
### 为什么会有 compatible 版本?
1. **老旧 CPU 指令集限制**:现代 Go 编译器在 x86_64 平台默认启用了较新的 CPU 指令集扩展(如 AVX2 和 SSE4.2)。如果你的 VPS 或旧电脑 CPU 生产于 2012 年之前,或者使用的是低端双核赛扬(如 J1900),运行默认版本可能会直接抛出 **`Illegal instruction` (非法指令)** 崩溃;
2. **解决方式**:老旧硬件请务必下载文件名带有 **`-compatible`** 的安装包,该版本关闭了高级矢量扩展指令,具备最广泛的硬件下限容忍度;
3. **性能建议**:近 5 年内的主流电脑请勿使用 compatible 版本,默认编译版本具备更好的 AES-NI 硬件加密吞吐性能。
bash
# Linux 终端查看 CPU 是否支持硬件 AES 加密指令集
grep -m1 -o 'aes' /proc/cpuinfo
# 若有输出 'aes',代表硬件支持极速加密解密
3. 软路由系统(OpenWrt / iStoreOS)专项部署注意事项
在 OpenWrt 等嵌入式路由系统上部署 Mihomo 时,需重点防范以下两类陷阱:
### 陷阱 1:C 运行时库不匹配(glibc vs musl)
- 大多数 OpenWrt 固件采用极简的 **musl-libc** 库,而非桌面 Linux 常见的 **glibc**;
- 官方发布的部分静态链接版(带有 `-musl` 标签)可以直接独立运行;若下载了动态链接的 glibc 版本,会提示 `/bin/sh: ./mihomo: not found`(即使文件真实存在)。
### 陷阱 2:浮点运算单元(Hardfloat vs Softfloat)
- 联发科 MT7621 等老牌路由器芯片不具备硬件 FPU 浮点单元,必须选择 **`mipsle-softfloat`**(软浮点)版本,否则内核启动时将直接死锁报错。
bash
# 在 OpenWrt 上验证二进制文件是否能在当前内核中运行
chmod +x ./mihomo
./mihomo -v
4. macOS 与 Windows 专属优化特性
Mihomo 针对桌面操作系统做了深度架构级优化:
- **Apple Silicon 原生 NEON 指令集**:darwin-arm64 二进制文件充分调用了 M 系列芯片的 NEON 协处理器,在执行 ChaCha20-Poly1305 和 AES-GCM 解密时几乎不产生额外功耗,发热量极低;
- **Windows Wintun 驱动集成**:在 Windows 平台,Mihomo 无缝整合了高性能的 Wintun 虚拟网卡驱动(由 WireGuard 团队研发),相较传统的 TAP-Windows 驱动,吞吐量提升了 300%,千兆光纤轻松跑满。
❓ 常见疑问与排查步骤
执行 ./mihomo 提示 Permission denied 怎么解决?
在 Linux 或 macOS 终端中缺少可执行权限,执行 `chmod +x ./mihomo` 赋予执行权限后即可正常运行。
Docker 部署时应该选择哪个镜像架构?
推荐直接使用官方多架构镜像 `metacubex/mihomo:latest`,Docker 守护进程会根据主机 CPU 架构自动拉取适配的 amd64 或 arm64 镜像层。
树莓派 4B 应该下载哪个版本?
如果安装的是 64 位 Raspberry Pi OS,下载 `mihomo-linux-arm64`;如果仍是老款 32 位系统,下载 `mihomo-linux-armv7`。