OpenClash 是运行在 OpenWrt 上的 LuCI 插件,内核是 mihomo(Clash Meta 内核),MIT 许可。装好后,连这台路由器的设备都按同一套分流规则走,电视、游戏机这类装不了客户端的也包括在内。
适用平台:OpenWrt 官方固件或 ImmortalWrt。项目文档不建议用第三方魔改固件和已停更的旧固件。本篇界面名称按 2026-08-10 发布的 v0.47.156 核对,菜单文字以你手上的版本为准。
前提条件:
- 一个机场的订阅链接,还没有的先看订阅链接是什么,怎么保管
- 能用浏览器和 SSH 登录路由器,路由器能访问软件源
- 装在主路由上。项目文档写明旁路由组网有固有缺陷,建议主路由部署
第一步:换成 dnsmasq-full
OpenClash 安装包声明的依赖是 dnsmasq-full、bash、curl、ca-bundle、ip-full、ruby、ruby-yaml、kmod-tun、unzip,安装插件时由 opkg 或 apk 自动拉取。防火墙模块不在其中,第二步一并手动装。依赖里有 Ruby,装之前留意闪存剩余空间。
要手动处理的是 dnsmasq。OpenWrt 官方固件自带精简版,缺少 OpenClash 需要的 ipset / nftset 支持,项目文档的做法是在「系统 → 软件包」里卸载 dnsmasq,再装 dnsmasq-full。已安装列表里本来就是 dnsmasq-full 的,跳过这一步。
注意
卸载 dnsmasq 到装好 dnsmasq-full 之间,局域网设备拿不到 DNS,路由器自己也可能解析不了软件源。先把 dnsmasq-full 和它依赖的包下载到路由器本地,再卸旧装新。
第二步:从 GitHub 安装插件
安装包只从 OpenClash Releases 下载,每个版本有两种。OpenWrt 和 ImmortalWrt 24.10 及更早的版本用 opkg,更新的版本改用 apk:
| 固件的包管理器 | 文件名 |
|---|---|
| opkg | luci-app-openclash_x.x.x_all.ipk |
| apk | luci-app-openclash-x.x.x.apk |
把文件传到路由器的 /tmp 目录,SSH 执行对应命令,x.x.x 换成实际版本号:
# opkg 固件
opkg update
opkg install kmod-nft-tproxy kmod-inet-diag luci-compat
opkg install /tmp/luci-app-openclash_x.x.x_all.ipk
# apk 固件
apk update
apk add kmod-nft-tproxy kmod-inet-diag luci-compat
apk add -q --force-overwrite --clean-protected --allow-untrusted /tmp/luci-app-openclash-x.x.x.apk
含 kmod-nft-tproxy 的那条命令补装安装包不会自动带上的防火墙模块等依赖,按 fw4(nftables)固件写,OpenWrt 22.03 起默认就是 fw4。还在用 iptables 的旧固件,依赖清单以 Releases 页面里的安装命令为准。
装完刷新后台,入口在「服务 → OpenClash」。群文件、网盘里的安装包来路不明,不要装。
第三步:下载内核
插件和内核分开装。进入「插件设置 → 版本更新」:
- 「编译版本」要和 CPU 架构对上。安装时按架构自动填写,例如 x86_64 填
linux-amd64-v1;为空时内核下载不了 - 「更新分支」保持 master,即稳定版
- 「Smart 内核」保持禁用,用的就是标准 mihomo 内核;启用后换成 OpenClash 作者另行维护的 Smart 版内核
页面会列出几个下载源和延迟,选一个能访问的,点内核版本号即可只装内核。
说明
网上不少旧文章还在讲分别下载 Dev、TUN、Meta 三种内核,这套已经过时,现在插件只用 mihomo 内核。原版 Clash 内核已停更,不推荐。
第四步:导入订阅
进入「配置订阅」,点「添加」,在编辑页填写:
- 「配置文件名」:用于区分,不要重名
- 「订阅地址」:粘贴订阅链接,机场给了 Clash / mihomo 格式就用这个
- 「User-Agent」:保持默认,机场有指定值时再改
- 「在线订阅转换」:不开
保存后回到「配置订阅」,打开「自动更新」。预约模式按指定的星期和钟点更新,循环模式按分钟间隔,默认 60。点「保存配置」,再点「更新配置」,插件开始下载订阅,页面跳回「运行状态」。
注意
开启在线订阅转换,订阅链接会交给第三方服务器处理。勾选后出现的「订阅转换服务地址」下方,OpenClash 自己标注了「注意:在线订阅转换存在隐私泄露风险」。
第五步:选模式并启动
「插件设置 → 模式设置」里先看两项:
| 选项 | 建议 | 说明 |
|---|---|---|
| 运行模式 | Fake-IP(增强)模式 | 默认值,项目文档建议日常用它;个别应用连不上再换 Fake-IP(TUN-混合)模式 |
| 代理模式 | Rule【策略代理】 | 按规则分流,国内直连;全局代理要在控制面板手动指定节点 |
带 TUN 的模式依赖 kmod-tun,装插件时已自动装上,原理见 TUN 模式。再到「流量控制」,把「实验性:绕过指定区域 IP」设为「绕过中国大陆」,国内 IP 的流量不再经过内核,路由器负载更低。
点「保存配置」和「应用配置」,回「运行状态」确认启动开关已打开,没开就手动打开。选节点在控制面板里做,运行状态页有 Zashboard、MetaCubeXD 等入口,默认端口 9090。
第六步:验证
拿一台没装任何代理客户端的手机连上路由器,打开需要代理才能访问的网站,再查出口 IP 地区是否和所选节点一致。顺手查 DNS 泄漏;流媒体和 ChatGPT 看检查解锁,速度看自己动手测速。
全家共用就是共用一份流量。首期在册的 19 家机场里,8 家官方称设备数不限,其余 11 家没写明设备上限,见横评的「设备」一列。选这 11 家的,路由器后面的设备算一台还是多台,买之前问客服。
排查
启动失败,或启动后上不了网。 到「运行日志 → 调试日志」点「生成日志」,看「依赖检查」一节缺哪个包。常见的是 dnsmasq 没换成 full 版、fw4 固件缺 kmod-nft-tproxy、TUN 模式下 kmod-tun 缺失或与固件内核版本不匹配。日志会给部分 IP 和下载地址打码,外发前仍要自己检查一遍。
订阅更新失败,或节点为空。 先在浏览器打开订阅链接,确认没过期、没被重置。链接正常的话,在订阅编辑页把 User-Agent 换成另一个预设值重试。更多情况见候机问答。
内核下载失败。 先核对「编译版本」。下载源都连不上时,可以从 mihomo 官方 Releases 下载对应架构的 .gz 文件,在「配置管理」里作为内核文件上传。
国内网站变慢,或游戏、语音通话异常。 先确认已开「绕过中国大陆」。游戏和通话依赖 UDP,对 NAT 类型敏感,这类问题换 Fake-IP(TUN-混合)模式,原理见 UDP 与 NAT 类型。