把代理放到路由器上,意思是 Clash 内核直接跑在 OpenWrt 里,家里所有连这台路由器的设备都按同一套规则分流。电视盒子、游戏机这些装不了客户端的设备也能直接打开平时打不开的服务,手机和电脑不用再装软件,家里人也不用学开关代理。

代价也很实在。你得先有一台刷了 OpenWrt 的路由器或软路由,得花一两个小时把依赖、内核和订阅弄顺。路由器成了全家的网络入口,OpenClash 一出问题,常见表现是全家的 DNS 一起失灵,家里人会第一时间来找你。我的看法是,家里有两台以上装不了客户端的设备,或者你不想一台一台去教家人,路由器级代理就值得折腾;只有一台电脑要用,装个桌面客户端更省心。

开始前要凑齐几样东西。一台已经刷好 OpenWrt 并能打开 LuCI 网页后台的路由器,一条机场给的 Clash 格式订阅链接,以及一台连在这台路由器局域网里的电脑。本文截图来自 OpenClash v0.46 的界面,我核对时 GitHub 上的最新版本是 v0.47.156(2026 年 8 月发布),按钮位置和文字可能略有出入,以你看到的界面为准。

准备工作

OpenClash 不挑路由器品牌,挑的是固件和资源。官方 OpenWrt 和 ImmortalWrt、iStoreOS 这类衍生固件都能装,不少第三方编译固件自带 OpenClash,刷完在「服务」菜单里直接能看到,这种情况跳过第一步的安装部分。资源方面,内核加 GeoIP、GeoSite 数据库要占几十 MB 空间,16MB 闪存的老路由器基本装不下;内存我建议至少 256MB,截图里空载时内核占了 23MB 出头,连接多了还会涨。

LuCI 就是 OpenWrt 的网页后台,浏览器输入路由器地址(常见是 192.168.1.1),用 root 密码登录,装好后 OpenClash 出现在左侧「服务」菜单下。另外要弄清固件的防火墙是 fw4(nftables)还是 fw3(iptables),OpenWrt 22.03 之后默认是 fw4,两种防火墙要装的依赖不一样。包管理器也分两种,传统固件用 opkg 装 ipk,较新的主线固件换成了 apk,OpenClash 的发布页两种包都提供。

插件本身是通用的,安装包名里的 all 就是这个意思,真正干活的 Mihomo 内核按 CPU 架构编译,x86 软路由对应 amd64,多数新款 ARM 路由器对应 arm64,老的 MT7621 机型对应 mipsle 系列。装错架构,内核根本起不来。路由器的架构在 LuCI「状态」「概览」的系统一栏能看到,OpenClash 的「插件设置」「版本更新」选内核编译版本时要和它对上,第一步末尾会用到。

第一步:安装 OpenClash 插件

先看固件有没有自带。登录 LuCI,展开左侧「服务」,里面已经有 OpenClash 就直接跳到下面的内核部分。

没有的话,去 GitHub 的 vernesong/OpenClash 仓库 Releases 页下载,ipk 系统拿 luci-app-openclash_版本号_all.ipk,apk 系统拿同版本的 .apk。这个仓库有两万七千多个 star,2026 年 9 月仍在持续提交,不要从网盘或论坛附件拿包。

先装依赖,再装插件。依赖里最关键的是 dnsmasq-full,它会替换固件自带的精简版 dnsmasq,OpenClash 靠它做 DNS 劫持和 ipset/nftset 分流,没有它整个插件跑不起来。两个 dnsmasq 装不到一起,顺序是先用 opkg download 把 dnsmasq-full 的安装包下到 /tmp,备份 /etc/config/dhcp,再卸掉 dnsmasq,最后用 –cache /tmp 从本地装 dnsmasq-full,顺序反了路由器会连域名都解析不了。其余的 bash、curl、ruby 那一组按 README 的清单装,README 按 fw3 和 fw4 分列了,想用 TUN 模式还要 kmod-tun。整段命令我不抄,版本更新后依赖偶尔会变,以 README 当天的清单为准。

装法有两种。图形界面走「系统」「软件包」,先点「更新列表」,搜索并安装除 dnsmasq-full 之外的依赖,dnsmasq-full 按上一段的顺序在 SSH 里装,再用「上传软件包」把 ipk 传上去;SSH 登录路由器用 opkg 或 apk 装同样的东西。装完刷新页面,「服务」下就有 OpenClash 了。

OpenClash 运行状态页,中间是版本号,下面一行是主程序和守护程序的状态,截图这台已经在运行。
OpenClash 运行状态页,中间是版本号,下面一行是主程序和守护程序的状态,截图这台已经在运行。

顶部一排标签里,本文用到运行状态、插件设置、覆写设置、配置订阅和运行日志五个。页面中间是版本号,下面是主程序和守护程序的状态,内核还没装时主程序不会显示运行中。截图里紫色那行是守护程序在自动修正防火墙规则顺序,看到类似提示不用管。

接着装内核。点「插件设置」,切到「版本更新」,先核对页面显示的处理器架构,在编译版本里选与它匹配的内核,再点更新或下载内核的按钮,等它从 GitHub 拉取完成。官方发布说明专门提醒,启动前要先在这个标签下确认内核编译版本,选错架构是新手启动失败的头号原因。下载成功后内核一栏会显示已安装的版本号。

第二步:添加机场订阅

订阅链接从机场用户面板里拿,常见的面板有两种。第一种在首页的快捷入口里,点「一键订阅」,弹出菜单里选「复制订阅地址」。

机场面板里点一键订阅,再点复制订阅地址。
机场面板里点一键订阅,再点复制订阅地址。

第二种把各客户端的订阅分开列出,选「复制 CFW / ClashX 订阅」这种 Clash 格式的按钮,不要选 V2Ray 或 SSR 的链接,那些格式 OpenClash 要经过在线转换才能用。

另一种面板要点复制 CFW / ClashX 订阅这个 Clash 格式按钮。
另一种面板要点复制 CFW / ClashX 订阅这个 Clash 格式按钮。

这条链接等于你的账号身份,谁拿到都能用你的流量,别发到群里,截图记得打码。

回到 OpenClash,点顶部「配置订阅」。第一次进来列表显示尚无任何配置,点列表下面的「添加」。

配置订阅页第一次打开时列表为空,点添加新建一条订阅。
配置订阅页第一次打开时列表为空,点添加新建一条订阅。

编辑页里真正要填的只有两项,其余保持默认。

  • 「配置文件名」起个好认的名字,页面提示请勿重名,我一般直接写机场名。
  • 「订阅地址」把刚才复制的链接完整粘进去,开头的 https 和结尾的参数都不能少。
  • User-Agent 保持默认的 Clash。
  • 「在线订阅转换」不要勾,它是给 SS、V2Ray 节点链接用的,会把你的链接发到转换服务器处理。
  • 「排除无效节点」后面那几个勾能把机场塞在节点列表里的提示信息剔掉,勾上更清爽。

填完点底部「保存配置」。

填好配置文件名和订阅地址,其余保持默认,点保存配置。
填好配置文件名和订阅地址,其余保持默认,点保存配置。

保存后回到列表,你的配置出现在表格里,「启用」是勾上的。这时路由器上还没有配置文件,要点底部「更新配置」让 OpenClash 下载订阅并生成 yaml。成功后在「运行状态」页往下翻,会看到一行配置信息,带着订阅里的流量和到期日,「语法检查」显示检查通过。表格最右边的「切换」按钮还是亮的,说明它还不是当前配置,点一下切换过去,按钮变灰就对了。

更新失败的两种提示要认一下。Config File Subscribed Failed 多半是链接没粘全,或者路由器连不上机场的订阅服务器,等第三步内核跑起来以后再更新一次;Updated Config Has No Proxy Field 说明下载回来的内容里没有节点,通常是订阅过期或流量用完。

第三步:启动、选模式与节点并验证

回到「运行状态」,翻到底部点「启动 OpenClash」。几秒到十几秒后页面刷新,主程序和守护程序变成绿色的运行中,上传下载速率和活动连接数开始跳动。

运行状态页底部点启动 OpenClash,上方随即出现订阅信息和访问检查结果。
运行状态页底部点启动 OpenClash,上方随即出现订阅信息和访问检查结果。

同一页还有两块帮你判断通没通。「IP 地址」从四个来源查路由器的出口 IP,截图里查到的都是美国的节点 IP;「网站访问检查」依次测百度、GitHub、YouTube 这几个站,全部连接正常并带上毫秒数,路由器这一端就算通了。

状态表里的两行模式先看「运行模式」,截图里是 Redir-Host 加兼容,第一次别动它,跑通再说。Fake-IP 模式解析快、占资源少,是社区里更常见的日常选择,个别应用连不上时改混合模式;带 TUN 的模式都依赖 kmod-tun,切换在「插件设置」「模式设置」里做。

「代理模式」有 Rule、Global 和 Direct 三个按钮,点一下就切换。日常保持 Rule,国内流量直连、国外流量走节点,全家的国内视频和游戏不会因为多绕一圈变慢。Global 把所有流量都塞进节点,只在排查某个网站是规则问题还是节点问题时临时用。Direct 相当于全部直连,是比关掉 OpenClash 更快的临时停用办法。

代理模式一行有 Rule、Global、Direct 三个按钮,日常保持 Rule。
代理模式一行有 Rule、Global、Direct 三个按钮,日常保持 Rule。

选节点要进控制面板。状态表下面并排的 Yacd、Metacubexd 和 Dashboard 都是 OpenClash 打包进来的网页面板,功能重叠,新版本可能换成 zashboard 之类的名字,我习惯用 Yacd,界面轻,路由器上打开快。点它会在新标签页打开面板,端口和密钥自动带上。

运行状态页并排三个控制面板按钮,点 Yacd 控制面板打开节点面板。
运行状态页并排三个控制面板按钮,点 Yacd 控制面板打开节点面板。

面板左侧点「代理」,右边上半部分是策略组,最上面那个组决定国外流量默认走哪个节点,截图里叫国外流量,你的订阅可能叫 Proxy 或节点选择。点组里任意一个节点名就切换过去了,变蓝的是当前选中。下半部分是全部节点,右上角「测速」会对所有节点测一次延迟,同一地区挑数字小的。YouTube、Netflix 这些细分组默认跟随主组。

Yacd 面板左侧点代理,在策略组里点任意节点名即可切换。
Yacd 面板左侧点代理,在策略组里点任意节点名即可切换。

最后拿局域网设备验证,路由器级代理的价值就在这一步。拿一台连着这台路由器 Wi-Fi 的手机,把手机上原来的代理客户端彻底关掉,直接用浏览器打开一个平时打不开的网站,比如 Google 或 YouTube,能开就说明路由器已经替它做了代理;再开一个国内网站,速度和平时一样,分流就没问题。电视、游戏机同理。规则模式下百度能开不代表代理通了,国内网站本来就走直连。手机浏览器开了安全 DNS(DoH)的要先关掉,它会绕过路由器的 DNS 劫持。

日常使用要点

更新订阅

机场调整节点后,去「配置订阅」点「更新配置」,或者勾上页面顶部的「自动更新」,选每天或每周几的几点自动拉一次。更新完内核会自动重载,正在下载的东西可能断一下。

切换节点

晚上某个节点变慢,直接开 Yacd 换一个,不用重启 OpenClash。策略组右上角的「切换时打断包含策略组的连接」勾上,换节点时已建立的连接会立刻改走新节点。

控制面板

三个面板是同一个内核的不同皮肤,在任意一个里改了节点,另外两个看到的一样;自己在浏览器输地址进面板时,要填 9090 端口和登录密钥。

内核更新

「插件设置」「版本更新」里插件和内核各有已安装版本和可选版本,能跑就不必追新,出了问题或需要新功能再更新。

常见问题排查

启动失败,或主程序一直显示未运行

先去「运行日志」看插件日志最后几行报什么,再点「生成调试日志」,日志开头的「依赖检查」一节会列出缺的包。几条典型的错误,Core Start Failed 多半是内核没下载或架构不对,回「版本更新」重新选;TUN Interface Start Failed 是缺 kmod-tun,装上或改回兼容模式;Unable To Parse Config File 是配置文件有语法问题,回「配置订阅」重新更新一次。

内核下载失败

路由器直连 GitHub 经常不通,这是新装时最常见的卡点。去「覆写设置」「常规设置」找「GitHub 地址修改」,换成 jsDelivr 这类 CDN 再下载;仍然不行,在电脑上从 MetaCubeX/mihomo 仓库下载对应架构的内核,解压出来的二进制改名为 clash_meta,放进路由器的 /etc/openclash/core/ 目录,再给它可执行权限,README 里有说明。

DNS 冲突,全家网页都打不开

OpenClash 通过 dnsmasq 劫持全家的 DNS 请求,路由器上同时跑着 PassWall、SSR Plus 或 AdGuardHome 这类插件时会抢同一个 DNS 入口,同一时间只开一个。「插件设置」里的「本地 DNS 劫持」有使用 Dnsmasq 转发、使用防火墙转发和停用三个选项,默认的 Dnsmasq 转发适合多数人。关掉 OpenClash 后上不了网,多半是 dnsmasq 没恢复,重启一次路由器最省事。

某台设备不走代理

先看「插件设置」里的局域网访问控制是不是黑名单或白名单把它排除了;设备自己手动设了 8.8.8.8 之类的 DNS 或开了 DoH,在兼容模式下会绕过路由器的劫持,改回自动获取。路由器开着 IPv6 时,运营商下发的 IPv6 地址会让部分流量绕开代理,新手先关掉,主线跑顺了再研究。

跑通之后,剩下的就是挑一家节点稳、订阅格式规范的机场。我自己在用的是星岛梦,它的订阅我用标准 Clash 工具链跑通过全量节点测试,其他几家在机场推荐里,第一次建议月付测试。家里仍然需要单机客户端的设备,安装包去客户端下载页拿,不确定该用哪个客户端看客户端怎么选。路由器级代理最容易被忽略的是 DNS 泄漏,跑通后花几分钟做一次 DNS 泄漏检测与修复

常见问题

OpenClash 和电脑上装的 Clash 客户端有什么区别?
内核是同一个 Mihomo,区别在装在哪里。OpenClash 装在 OpenWrt 路由器上,连这台路由器的所有设备都按同一套规则分流,设备端不用装软件;桌面客户端只管那一台电脑。两者可以并存,但同一台设备别同时开两个,流量会互相绕。
闪存 16MB、内存 128MB 的老路由器能装 OpenClash 吗?
多数情况下装不下。Mihomo 内核加 GeoIP、GeoSite 数据库要占几十 MB 存储,内核运行起来内存也是几十 MB 起步。这类机型建议换 x86 软路由或者内存更大的 ARM 机型,或者放弃路由器方案,在设备上装单机客户端。
订阅一定要 Clash 格式吗?
优先用 Clash 格式,粘进「订阅地址」就能用。SS、V2Ray 这类节点链接也能导入,但要勾「在线订阅转换」,链接会被发到转换服务器处理,多一层依赖也多一层泄露风险。机场面板一般都提供 Clash 订阅,找不到就问客服。
启动 OpenClash 之后全家都上不了网怎么办?
先在「运行状态」点「关闭 OpenClash」恢复上网,再去「运行日志」生成调试日志,看依赖检查一节和最后的报错。最常见的原因是内核架构选错、dnsmasq-full 没装,或者路由器上还开着 PassWall、SSR Plus 这类插件在抢 DNS。
路由器装了 OpenClash,手机上的 Clash 还要开吗?
连着这台路由器时不用开,路由器已经替手机代理了。出门用流量时路由器帮不上忙,手机客户端照常用。两个同时开不会坏事,但排查问题时先关掉一个,否则分不清是谁在起作用。
OpenClash 支持哪些协议?
插件页面上写的是 Shadowsocks(R)、Vmess、Trojan、Snell 等,实际范围由 Mihomo 内核决定,VLESS、Hysteria2 这些较新的协议也在支持之列,具体以你装的内核版本为准。

发现信息过期或错误?欢迎联系纠错,我会尽快复核更新。

继续阅读