AppGoBox

教程

OpenClash 安装教程:官方 OpenWrt 25.12 选 apk 还是 ipk、依赖与手动放置 Mihomo 内核

在官方 OpenWrt 上安装 OpenClash 0.48.002:按版本选 .apk 或 .ipk,装好 dnsmasq-full 等依赖,内核下载失败时按 CPU 架构手动放置 Mihomo 内核。约 15 分钟。

官方 OpenWrt 25.12 用 apk,装本站的 luci-app-openclash-0.48.002.apk;24.10 及更早用 opkg,装 luci-app-openclash_0.48.002_all.ipk。先用命令装好依赖(官方 OpenWrt 要把 dnsmasq 换成 dnsmasq-full),再装插件;25.12 装本地 .apk 要加 --allow-untrusted,这个参数会跳过 apk 的签名检查,所以装之前必须先核对文件的 SHA-256。插件第一次启动要下载 Mihomo 内核,下载失败时把本站对应架构的内核解压到 /etc/openclash/core/clash_meta 即可。

本文只讲安装、内核和启动排错,不涉及订阅、节点或规则内容。

先判断你是哪种情况

你的情况看哪一节
不知道自己是 apk 还是 opkg第 1 步:确认版本和架构
OpenWrt 25.12(apk)第 2 步 A
OpenWrt 24.10 或更早(opkg)第 2 步 B
装好了,日志提示内核下载失败第 4 步:手动放置 Mihomo 内核
25.12 上装 .ipk 报错、网页上传 .apk 报 UNTRUSTED signature常见问题

第 1 步:确认版本、包管理器和 CPU 架构

用 SSH 登录路由器(Windows 可直接用自带的 ssh root@192.168.1.1),运行:

cat /etc/openwrt_release
which apk opkg

应看到:DISTRIB_RELEASE 是版本号,DISTRIB_ARCH 是 CPU 架构;which 只会显示 /usr/bin/apk 或 /bin/opkg 其中一个。

结果下载哪个插件包
25.12,有 /usr/bin/apkOpenClash 页 的 luci-app-openclash-0.48.002.apk
24.10 及更早,有 opkgOpenClash 页 的 luci-app-openclash_0.48.002_all.ipk

还没刷官方 OpenWrt 的,先按型号教程刷好,例如 GL-MT3000、小米 AX3000T、NanoPi R4S、x86 小主机。

两个文件都是架构无关的插件包,任何 CPU 都用同一个;真正要按 CPU 选的是第 4 步的内核。下载后核对页面上的 SHA-256,方法见 如何核对下载文件的 SHA-256。

注意OpenClash 官方推荐在 OpenWrt 官方固件或 ImmortalWrt 上使用。插件加内核要占几十 MB 空间,先用 df -h / 看剩余空间;16 MB 闪存的老路由器基本放不下。

第 2 步 A:OpenWrt 25.12(apk)

  1. 把插件包传到路由器的 /tmp。在电脑上运行(较新的 Windows/macOS 自带 scp,报错时加 -O,这是 OpenWrt 官方 Wiki 的写法):
scp -O luci-app-openclash-0.48.002.apk root@192.168.1.1:/tmp/
  1. 在路由器上安装依赖。这是 OpenClash 官方说明里 nftables(Firewall4)的依赖清单,25.12 默认就是 Firewall4:
apk update
apk add bash dnsmasq-full curl ca-bundle ip-full ruby ruby-yaml kmod-tun kmod-inet-diag unzip kmod-nft-tproxy luci-compat luci luci-base

应看到:过程中有 Purging dnsmasq、Installing dnsmasq-full,最后一行以 OK: 开头。apk 会自动用 dnsmasq-full 替换原来的 dnsmasq。

  1. 先在路由器上核对插件包的 SHA-256:
sha256sum /tmp/luci-app-openclash-0.48.002.apk

应看到:输出的一长串字符和 OpenClash 页 上这个文件的 SHA-256 完全一致。不一致就删掉文件重新下载,不要继续安装。

注意下一步的 --allow-untrusted 会让 apk 跳过签名检查:不再确认这个包是不是 OpenWrt 官方密钥签名的,没有签名或签名不受信任也照样安装。这时能证明文件没被替换或损坏的只有你刚才核对的 SHA-256。来历不明的 .apk 不要用这个参数安装。

  1. 安装插件(参数与 OpenClash 官方安装命令一致):
apk add -q --force-overwrite --clean-protected --allow-untrusted /tmp/luci-app-openclash-0.48.002.apk

应看到:没有 ERROR 输出。去掉 --allow-untrusted 会报 UNTRUSTED signature,原因见常见问题。

  1. 刷新 LuCI 网页(或重新登录),菜单 Services(服务)下出现 OpenClash。

第 2 步 B:OpenWrt 24.10 及更早(opkg)

  1. 同样把 luci-app-openclash_0.48.002_all.ipk 传到 /tmp。
  2. 先把 dnsmasq 换成 dnsmasq-full。opkg 不会自动替换,两个包同时装会报文件冲突。dnsmasq 同时负责路由器自己的域名解析,先卸载再在线安装会因为解析不了域名而下载失败,家里设备也会暂时拿不到地址。所以要先把安装包和它需要的库下载好,再卸载、再从本地文件安装:
opkg update
cd /tmp && opkg download dnsmasq-full
opkg install libnettle8 libnetfilter-conntrack3
opkg remove dnsmasq && opkg install /tmp/dnsmasq-full_*.ipk

应看到:最后一行输出 Configuring dnsmasq-full,没有 Collected errors。libnettle8、libnetfilter-conntrack3 是 24.10 官方软件源里 dnsmasq-full 依赖的库,已经装过的会直接跳过。

  1. 安装其余依赖(OpenClash 官方说明的 Firewall4 清单;22.03 起官方 OpenWrt 默认用 Firewall4):
opkg install bash dnsmasq-full curl ca-bundle ip-full ruby ruby-yaml kmod-tun kmod-inet-diag unzip kmod-nft-tproxy luci-compat luci luci-base
  1. 核对插件包的 SHA-256(sha256sum /tmp/luci-app-openclash_0.48.002_all.ipk,和 OpenClash 页 对比),一致后安装:
opkg install /tmp/luci-app-openclash_0.48.002_all.ipk

也可以按 OpenClash 官方说明,在 LuCI 的 System → Software 里点 Upload Package… 上传 .ipk 安装。

  1. 刷新 LuCI,进入 Services → OpenClash。

提示还在用 iptables(Firewall3)的很老版本,依赖要换成官方说明里的 iptables 清单(iptables、ipset、iptables-mod-tproxy、iptables-mod-extra 等)。OpenWrt 25.12 的软件源里已经没有这些 iptables 包。

第 3 步:第一次启动

  1. 打开 Services → OpenClash。OpenClash 安装时会按 DISTRIB_ARCH 自动选好内核的“编译版本”,可在 插件设置 → 版本更新(Plugin Settings → Version Update)里看到“处理器架构”和“编译版本”。
  2. 导入你自己的配置文件后启动。没有内核时,OpenClash 会自动下载,日志里先出现 Core Downloading, Please Try to Download and Upload Manually If Fails。
  3. 下载成功会显示 Core Download Successful 和 Core Update Successful;失败就继续第 4 步。

第 4 步:手动放置 Mihomo 内核

OpenClash 只认一个位置:/etc/openclash/core/clash_meta(开启“小闪存模式”时是 /tmp/etc/openclash/core/clash_meta,放在内存里,重启后会清空)。它自己下载时,也是把内核解压、加上执行权限后放到这里。

  1. 按 DISTRIB_ARCH 在 Mihomo 内核页 选文件。下表是 OpenClash 源码里的对应规则:
DISTRIB_ARCH 开头常见设备OpenClash 编译版本本站文件
x86_64x86 小主机、虚拟机linux-amd64-v1mihomo-linux-amd64-v1-v1.19.32.gz
aarch64_MT7981/MT7986 路由器、RK3328/RK3568/RK3588、树莓派 4/5linux-arm64mihomo-linux-arm64-v1.19.32.gz
arm_cortex-a7、arm_cortex-a9 等IPQ40xx 等 32 位 ARMlinux-armv7mihomo-linux-armv7-v1.19.32.gz
mipsel_MT7621(小米 4A 千兆版、AC2100 等)、MT76x8linux-mipsle-softfloatmihomo-linux-mipsle-softfloat-v1.19.32.gz
mips_ath79(高通 AR/QCA 老路由器)linux-mips-softfloatmihomo-linux-mips-softfloat-v1.19.32.gz

mipsel 和 mips 字节序不同,选错就无法运行。其他架构(armv5/armv6、riscv64、mips64、loongarch64 等)本站暂未收录,从文末“官方资料”进入 OpenClash 项目页查找。

  1. 核对 SHA-256 后传到路由器(以 arm64 为例,文件名换成你下载的):
scp -O mihomo-linux-arm64-v1.19.32.gz root@192.168.1.1:/tmp/
  1. 在路由器上解压到 OpenClash 的内核位置并加权限:
mkdir -p /etc/openclash/core
gzip -dc /tmp/mihomo-linux-arm64-v1.19.32.gz > /etc/openclash/core/clash_meta
chmod 4755 /etc/openclash/core/clash_meta
/etc/openclash/core/clash_meta -v
rm /tmp/mihomo-linux-arm64-v1.19.32.gz

应看到:-v 输出以 Mihomo Meta v1.19.32 开头,并显示和你设备一致的系统与架构(例如 linux arm64)。报 not found、Exec format error 或 Illegal instruction,说明架构选错了,删掉换一个。

  1. 回到 OpenClash 重新启动。插件看到 clash_meta 已存在就不会再去下载。

注意解压后的内核较大(x86-64 版约 59 MB),先用 df -h / 确认空间。不要开启 Smart 内核:OpenClash 会检查内核是不是 Smart 版本,不是就重新下载,本站提供的是 Mihomo 官方标准版。

提示OpenClash 自己在线下载的是它用 Mihomo 源码自动构建的版本(Alpha 分支),本站收录的是 Mihomo 官方正式发布版,所以“版本更新”页可能显示有新版本。能联网时可以在那里在线更新,失败了再按本节手动放回。

常见问题

  • 内核一直下载失败:日志里常见 Core Version Check Error, Please Try Again Later...、Core Update Failed 或 Checksum Verification Failed。OpenClash 官方给的排查顺序:确认已装 ca-bundle;在 覆写设置 → 常规 里修改“Github 地址”换用官方列出的 CDN;确认闪存空间和 CPU 架构选择;仍不行就按第 4 步手动放置。
  • `No Compiled Version Selected`:“编译版本”是空的。到 插件设置 → 版本更新 里按上表选好对应架构。手动放置内核不受这个选项影响。
  • `Core is not Detected installed, Ready to Download...`:/etc/openclash/core/clash_meta 不存在。检查路径和文件名是否完全一致,开了小闪存模式的要放在 /tmp/etc/openclash/core/。
  • 25.12 上装 `.ipk` 失败:25.12 已改用 apk,不能再装 .ipk,改用本站的 .apk 文件。反过来 24.10 也装不了 .apk。
  • 网页 System → Software 上传 `.apk` 报 `UNTRUSTED signature`:apk 只信任 OpenWrt 官方签名的包,本地第三方包要加 --allow-untrusted(跳过签名检查)。25.12 网页上传时不会带这个参数,所以很可能报这个错。先核对 SHA-256(网页上传对话框会显示文件的 SHA256,可以拿来和本站页面核对),一致后再按第 2 步 A 的命令安装。
  • LuCI 页面错乱或按钮没反应:缺 luci-compat,补装后刷新。
  • 启动日志提示 `Ruby Works Abnormally`:ruby 或 ruby-yaml 没装好,重新安装依赖。

资料来源

按 OpenClash 官方 README、官方使用手册(依赖清单、报错速查、版本更新页说明)与 v0.48.002 源码(Makefile 依赖、内核下载脚本、启动脚本、架构对应规则、上传页面),OpenWrt 官方 Wiki(opkg 到 apk 对照表、SSH 管理、备份与恢复中的 scp 说明)、OpenWrt 25.12.6 官方软件源与 LuCI 软件包管理源码,以及 Mihomo 官方发布页整理(2026-10-22 查阅)。

提示本页按官方文档和源码整理,本站没有在路由器实机上测试。不同固件的软件源和闪存空间不同,以你的设备为准。

整理:AppGoBox · 依据 · 本站未在实机上逐一验证