机场梦一条订阅,接进全屋路由器

写于 2026 年 10 月 13 日

OpenWrt OpenClash 命令行安装:依赖、上传和首次启动

OpenWrt OpenClash 命令行安装分 4 步:查 CPU 架构与防火墙类型、把 dnsmasq 换成 dnsmasq-full、装依赖、上传 ipk;再下载内核、导入订阅完成首次启动,附 6 种报错的处理。

官方 OpenWrt 固件没有图形化软件商店。OpenClash 不在官方软件源里,要自己从项目仓库拿安装包、自己补依赖、自己处理 dnsmasq 的替换。这些都在 SSH 命令行里完成,整个过程十来条命令。

如果用的是 iStoreOS,可以在 iStore 的手动安装里上传插件包,不用敲命令,直接看 iStoreOS 装 OpenClash。

分清 OpenWrt 上的几种 Clash

搜「openwrt clash」会看到好几种东西,名字容易混:

  • OpenClash:LuCI 图形插件,包名 luci-app-openclash,项目在 GitHub 的 vernesong/OpenClash。内核用 mihomo。
  • ShellCrash:命令行脚本,不依赖 LuCI,在路由器上用菜单式交互配置。
  • mihomo:真正处理代理流量的内核,前两者都可以调用它。也有其他 LuCI 插件直接封装 mihomo。

本篇讲的是 OpenClash 在 OpenWrt 上的安装,也就是「openwrt安装openclash」这件事。

选对固件版本

官方 OpenWrt 有正式版和开发快照两类。第一次装插件,用正式版:

  • 开发快照默认不带 LuCI 网页界面,要先用命令行装上 LuCI 才能看到后台。
  • 内核模块(名字以 kmod- 开头的包)必须和固件内核完全对应。快照版的软件源天天在变,刷机后隔一段时间再装 kmod-tun 这类模块,很可能因为版本对不上而装不进去。
  • 正式版的软件源在整个版本周期内保持稳定,隔几个月再补装依赖也不会出问题。

第三方编译的固件常把 OpenClash 预装好,省事,但软件源、依赖和升级方式都跟着编译者走。这篇按官方正式版写,第三方固件遇到不一致的地方,以编译者的说明为准。

查架构、防火墙和空间

用 SSH 登录路由器(默认地址 192.168.1.1,用户 root),依次执行:

uname -m                 # CPU 架构,例如 x86_64、aarch64
cat /etc/openwrt_release # 固件版本和 DISTRIB_ARCH
ls -l /sbin/fw3 /sbin/fw4   # 看防火墙是哪一套
df -h /overlay           # 剩余可写空间
free -m                  # 内存

几个判断:

  • fw4 存在说明防火墙是 nftables(OpenWrt 22.03 起默认)。这类固件上的 fw3 只是指向 fw4 的链接,不用管它;没有 fw4、只有 fw3 才是 iptables。两套依赖不同。
  • overlay 剩余空间要留出几十 MB。插件本身不大,mihomo 内核和规则数据库占的多。
  • 内存 128MB 的老路由跑起来很吃力,256MB 以上更从容。
  • 命令行里没有 opkg、只有 apk 的话,说明固件换了新的包管理器:opkg update / install / remove 对应 apk update / add / del,插件要下 .apk 格式的安装包,下文的 opkg 命令不能照搬,以项目 README 里 apk 那一组命令为准。

换成 dnsmasq-full

OpenClash 需要完整版的 dnsmasq-full,系统自带的精简版 dnsmasq 要先卸掉。这里有个坑:卸掉 dnsmasq 之后,路由器自己的域名解析可能跟着失效,接下来的 opkg install 会因为解析不了软件源地址而失败。做法是先把安装包下载到 /tmp,再卸旧装新,装的时候不用联网:

opkg update
cd /tmp && opkg download dnsmasq-full
opkg remove dnsmasq
opkg install dnsmasq-full --cache /tmp/
rm -f /tmp/dnsmasq-full*.ipk

已经先卸了 dnsmasq、解析不通的,执行 echo "nameserver 223.5.5.5" > /tmp/resolv.conf 临时指一个公共 DNS,装好 dnsmasq-full 后重启一次路由器,解析配置会重新生成。这一步要用网线连着操作,Wi-Fi 下改 DNS 服务容易断连。

装依赖

依赖名单分两套,以项目 README 当时列出的为准。下面按 README 的写法列出,dnsmasq-full 上一步已经装好,这里不再重复:

# nftables(fw4)固件
opkg install bash curl ca-bundle ip-full ruby ruby-yaml kmod-tun kmod-inet-diag unzip kmod-nft-tproxy luci-compat luci luci-base

# iptables(fw3)固件
opkg install bash iptables curl ca-bundle ipset ip-full iptables-mod-tproxy iptables-mod-extra ruby ruby-yaml kmod-tun kmod-inet-diag unzip luci-compat luci luci-base

某个包提示找不到,先确认软件源和固件版本匹配;第三方编译的固件,软件源可能需要换成编译者提供的地址。

上传 ipk 并安装

到 GitHub 的 vernesong/OpenClash 发布页下载 luci-app-openclash_版本号_all.ipk。这个包与架构无关,所有路由器用同一个文件。传进路由器有两种办法:

  1. 命令行:在电脑上执行 scp -O luci-app-openclash_*.ipk root@192.168.1.1:/tmp/。新版 OpenSSH 默认走 SFTP,OpenWrt 自带的 dropbear 不支持,所以要加 -O。然后在路由器上执行 opkg install /tmp/luci-app-openclash_*.ipk。
  2. 网页:后台「系统 → 软件包」里有上传软件包的按钮,选中 ipk 上传安装。

装完刷新后台,「服务」菜单下出现 OpenClash 就算装好了。

完成首次启动

插件装好后还缺内核和订阅:

  1. 插件设置里找到版本更新,确认编译版本与 uname -m 的结果对应,下载 Meta 内核。路由器连不上 GitHub 时,在电脑上下载 mihomo 对应架构的文件,改名 clash_meta 后传进 /etc/openclash/core/,并 chmod +x。
  2. 配置订阅页添加订阅地址并更新。订阅需要是 Clash(Mihomo)格式,还没有订阅可以从 推荐号位 里挑,下单前问清链接格式和同时在线设备数。
  3. 运行模式先用 Fake-IP,代理模式选规则,点启动。

各选项的含义、DNS 的处理和验证方法,在 OpenClash 配置教程 里逐项写了。

定下放在主路由还是旁路由

「openclash openwrt」的部署位置有两种,装法一样,接入方式不同:

位置 接法 好处 代价
主路由 OpenWrt 直接拨号或接光猫,全家设备连它 不用改任何设备设置 插件出错时全家断网
旁路由 挂在原主路由下面,设备把网关指向它 原网络不动,随时可以撤回 要改网关,多一跳

主路由方案启动后全家设备自动经过它,不需要再改网关。旁路由方案还要改设备的网关和 DNS,做法和 iStoreOS 那篇 的旁路由一节相同。

第一次配置,推荐先用旁路由方案练手。原来的主路由一直在,插件怎么改都不会让全家断网。

启动后检查四项

  1. 「服务 → OpenClash」的运行状态页里,内核显示在运行。
  2. 打开插件自带的日志页,看有没有报错(日志文件一般在 /tmp/openclash.log,也可以 SSH 里用 tail 查看)。
  3. 局域网电脑执行 nslookup www.google.com,Fake-IP 模式下返回 198.18 开头的地址。
  4. 浏览器能打开海外网站,国内网站速度正常。

备份与升级

  • 配置文件都在 /etc/openclash/ 下,升级插件或重刷固件前,先把这个目录复制到电脑上。
  • 升级插件:上传新版 ipk,再执行一次 opkg install,已有配置一般会保留。
  • 卸载:先在插件里停止运行,让它撤掉对 dnsmasq 和防火墙的改动,再执行 opkg remove luci-app-openclash。之后上网异常就重启一次路由器。

处理六种安装报错

报错或现象 原因 处理
opkg install 提示无法解析地址 卸掉 dnsmasq 后路由器没有 DNS 按上文临时写入公共 DNS
提示与已安装的 dnsmasq 文件冲突 精简版 dnsmasq 没卸干净 opkg remove dnsmasq 后再装 dnsmasq-full
某个依赖找不到 软件源与固件版本不匹配 核对软件源地址,第三方固件找编译者的源
scp 报 sftp 相关错误 新版 OpenSSH 默认用 SFTP 加 -O 参数
安装成功但菜单里没有 OpenClash 浏览器缓存,或 luci-compat 没装 清缓存刷新;补装 luci-compat
启动后内核报错退出 内核架构不对或没有执行权限 重下对应架构的内核,检查 chmod +x

闪存实在不够、又不想换路由器,可以把内核放到家里常开的 NAS 上,用容器跑,见 mihomo Docker 部署。

问与答

OpenWrt 安装 OpenClash 时提示缺依赖怎么办?
先执行 opkg update 刷新软件源,再按 vernesong/OpenClash 项目 README 列出的依赖逐个安装。依赖名单分 iptables 和 nftables 两套,要和固件的防火墙类型对应。
16MB 闪存的路由器能装 OpenClash 吗?
基本装不下。插件加上 mihomo 内核和规则数据库要占几十 MB,闪存小的路由器建议换一台有足够存储的设备,或者改用 NAS 上的 Docker 跑内核。
OpenWrt 上的 Clash 只有 OpenClash 一种吗?
不是。还有命令行脚本 ShellCrash,以及直接封装 mihomo 内核的其他 LuCI 插件。OpenClash 的图形界面选项多、资料多,第一次配置的人更容易找到对应说明。

接着看

文中提到的机场

2

飞猫云

50GB 学生版年付 ¥84,常规四档只卖月付

最少一笔
月付 ¥25150GB
按年折月
¥7/月学生版
最高档流量
1TB宇宙版
优惠码flycat888展开看去逛逛
3

暮光加速

四档都能付到三年,700GB 三年付折月 ¥75

最少一笔
月付 ¥20120GB/月
按年折月
¥9.1/月年付轻量版
最高档流量
1500GB至尊版
优惠码mm88展开看去逛逛
6

闪跃

1TB 不限时包 ¥134,每 GB 约 ¥0.13

最少一笔
月付 ¥24150GB
按年折月
¥8/月闪跃年付版
最高档流量
600GB瞬移 Teleport
优惠码shanyue展开看去逛逛

佣金交代:本站收录的机场与本站之间都有推广合作关系;读者由本站过桥页进入官网并完成付款后,本站会得到一笔佣金。各家价格、流量与优惠码照官网记录,谁排前谁排后的规则见「本站」页。