什么是 OpenClash

OpenClash 是一款运行在 OpenWrt 软路由系统上的 Clash 客户端插件(OpenWrt 软件包名:luci-app-openclash)。由 vernesong 维护,基于 MetaCubeX/mihomo 内核(原 Dreamacro/clash),提供完整的 LuCI 图形化管理界面,让软路由器直接变成全局代理网关。

🛡️
多协议支持
兼容 Shadowsocks、Vmess、Trojan、Socks5、HTTP(S)、Snell 等主流代理协议。
🌐
全设备透明代理
路由器级代理,无需客户端配置,家中所有设备(手机/电脑/游戏机)自动走代理。
🔧
灵活的规则分流
基于 Clash 规则配置,支持 GeoIP、Geo-Site、域名、IP-CIDR、进程名等智能分流。
高性能内核
基于 Mihomo 内核(Go 语言),资源占用低,单核即可跑满千兆带宽。
📊
可视化控制面板
内嵌 yacd / zashboard 仪表盘,实时查看连接数、流量、延迟、规则命中情况。
🔄
订阅自动更新
支持订阅自动拉取和定时更新,节点变更后无需手动重新导入。
适用场景
OpenClash 适合已拥有 OpenWrt 软路由的用户,将代理能力直接部署在路由器上,全家设备无需单独配置客户端。不适合普通光猫拨号用户(需刷 OpenWrt)。

一、环境要求

1.1 支持的 OpenWrt 版本

OpenClash 支持以下 OpenWrt 架构与版本:

架构说明
ramips (mt7621/mt7628)红米 AC2100、小米 R3G 等 MTK 方案路由
rockchip (rk33xx)Rock Pi S、NanoPi 等 Rockchip 方案
x86 / x86_64迷你主机、工控机安装 OpenWrt
mediatek/filogic (mt7981/mt7986)红米 AX6000、小米 BE6500 Pro 等新平台
bcm4908 (BCM 有线 2.0G)网件 R8000P 等博通方案
Qualcomm IPQ (ipq40xx/ipq60xx)小米 AX3600、AX5400 等高通方案
lantiq (vrx358/xrx200) FritzBox 等 Lantiq/Intel 方案

1.2 依赖软件包

安装前需确保以下依赖已安装(OpenClash 会自动检查并提示缺失项):

  • luci、luci-base — LuCI 网页管理系统
  • iptables — 防火墙规则
  • dnsmasq-full — 完整版 DNS 转发
  • coreutils、coreutils-nohup — 基础工具链
  • bash、curl — 脚本与网络工具
  • jsonfilter — JSON 解析
  • ca-certificates — 证书校验
  • ipset、ip-full — IP 集合与路由
  • iptables-mod-tproxy — 透明代理支持
  • kmod-tun — TUN/TAP 内核模块(TUN 模式必需)
  • iptables-mod-extra — 额外防火墙模块
  • luci-compat — LuCI ≤ 19.07 兼容层
  • ip6tables-mod-nat — IPv6 NAT的支持
  • kmod-inet-diag — 进程级网络诊断(用于 PROCESS-NAME 规则)
  • kmod-nft-tproxy — Firewall4 透明代理支持

二、安装 OpenClash

方法一:在线安装(推荐)

如果路由器已连接外网且 LuCI 可访问:

1
添加软件源

在路由器终端或 SSH 执行:

  • OpenWrt ≤ 22.03:echo 'src/gz openclash https://dl.openclash.org/v892719/snapshots' >> /etc/opkg/customfeeds.conf
  • OpenWrt ≥ 23.05:echo 'src/gz openclash https://dl.openclash.org/v892719/snapshots_24.10' >> /etc/opkg/customfeeds.conf
  • 同步源:opkg update
2
安装 OpenClash
  • opkg install luci-app-openclash
  • 安装内核:进入 LuCI → 服务 → OpenClash → 版本更新,选择对应内核版本下载
3
访问插件

安装完成后刷新 LuCI 页面,在菜单栏找到 服务 → OpenClash 进入插件管理页面。

方法二:离线安装(IPK 文件)

如果路由器无法直接连接 GitHub,可在其他设备下载 IPK 后手动上传安装:

  1. 前往 Releases 页面下载对应架构的 luci-app-openclash_xxx.ipk
  2. 将 IPK 文件上传至路由器的 /tmp 目录(通过 SCP / WinSCP / 路由器自带文件管理)。
  3. SSH 执行 opkg install /tmp/luci-app-openclash_*.ipk
  4. 内核需另外下载,解压后上传至 /etc/openclash/core/clash 并赋予执行权限:chmod +x /etc/openclash/core/clash
卸载说明
卸载命令 opkg remove luci-app-openclash 会自动备份配置文件到 /tmp 目录。除非路由器重启,重新安装时会还原你的配置。

三、配置订阅与节点

3.1 添加配置文件订阅

1
进入订阅管理

在 OpenClash 页面,点击菜单栏的 「配置订阅」标签页。

2
添加订阅链接

点击底部的 添加按钮,填写以下信息:

  • 配置名称:输入机场或配置的名称(如「MyAirport」)
  • 订阅地址:粘贴机场提供的订阅链接(通常以 https:// 开头)
  • 自动更新订阅:开启后 OpenClash 会按设定的时间间隔自动拉取最新节点
  • 排除节点/规则(可选):可根据关键词排除不需要的节点

点击 保存,然后点击 更新 按钮拉取最新配置。

3
选择配置文件

在「配置管理」页面,从已下载的配置文件列表中勾选需要使用的配置,点击 启用

3.2 启动代理

  1. 进入 「运行状态」 页面。
  2. 确认配置文件已启用,内核状态显示 运行中
  3. 点击页面底部的 「启动 OpenClash」 按钮。
  4. 等待数秒,状态变为「运行中」即表示代理已生效。
快速验证
代理启动后,打开浏览器无痕窗口访问 google.com,能正常打开即说明配置成功。也可以访问 ip.skk.moe 查看出口 IP 是否已切换。

四、代理模式与策略组

4.1 三种代理模式

OpenClash 支持 Clash 标准的三种运行模式,可在「运行状态」页面一键切换:

  • Rule 模式(推荐):根据规则配置进行智能分流,国内站点直连、国外站点走代理。
  • Global 模式:所有流量直接发往代理服务器,适合需要全局代理的场景。
  • Direct 模式:所有流量直接连接目的地,不使用代理。

4.2 切换节点

在「运行状态」页面打开 Dashboard 控制面板(支持 yacd 和 zashboard 两种风格),在「代理」菜单的策略组中选择需要的节点:

  • 自动选择:根据延迟自动选择最优节点
  • 手动选择:点击策略组名称,从下拉列表选择具体节点
  • 手动测速:在 Dashboard 中对所有节点批量测速,显示延迟和丢包率

五、内核管理

OpenClash 的代理能力由底层 Clash 内核提供,内核版本直接影响功能和稳定性。内核管理入口:服务 → OpenClash → 版本更新

  • Dev:开发分支,最新功能但不稳定
  • Alpha:测试分支,较新但可能有问题
  • Beta:稳定测试分支,推荐大多数用户使用
  • Stable:稳定分支,最保守但最稳定

推荐普通用户选择 BetaStable 分支,仅在需要特定功能时才切换 Dev。

六、TUN 模式

TUN 模式通过在操作系统内核层创建虚拟网卡,实现 全系统透明代理,即使不支持代理配置的 App 也会自动走代理。这是国内用户解决「某些 App 不走代理」问题的关键功能。

  1. 在「运行状态」页面,找到 TUN 模式 开关。
  2. 确保内核版本支持 TUN 模式(需要 kmod-tun 内核模块已加载)。
  3. 开启 TUN 模式后,OpenClash 会自动配置iptables规则接管所有流量。
  4. 在「通用设置」中可配置 TUN 模式的相关参数(如 TUN 设备名称、MTU、DNS 模式等)。
TUN 模式注意事项
开启 TUN 模式后,路由器本身也会走代理。如果路由器管理页面(LuCI)无法访问,可在 OpenClash「规则设置」中添加一条直连规则,将路由器管理 IP(通常是 192.168.1.1)加入 DOMAIN-SUFFIX 或 IP-CIDR 直连规则。

七、高级功能

7.1 规则配置

OpenClash 支持 Clash 完整的规则语法,可在「规则设置」中管理:

  • RULE — 标准规则列表
  • RULE-SET — 引用外部规则集文件
  • RULE-PROVIDER — 远程规则集提供商(自动下载更新)
  • SCRIPT — 基于 JavaScript 的脚本规则
  • PROCESS-NAME — 基于 Linux 进程名的规则匹配(需 kmod-inet-diag

7.2 DNS 配置

DNS 是 OpenClash 的关键设置之一,直接影响域名解析和分流准确性。在「DNS 设置」中可配置:

  • 上游 DNS:支持多个 DNS 服务器,可指定不同国家的服务器
  • DNS 模式:Redir-Host / Fake-IP / TUN 等不同模式
  • 国内 DNS:用于解析国内域名
  • DNS 缓存:减少重复查询

推荐使用 Fake-IP 模式(需要规则库配合),能更好地防止 DNS 污染。

7.3 防火墙模式

根据 OpenWrt 防火墙版本,OpenClash 支持两种模式:

  • iptables:传统 OpenWrt 防火墙,兼容性最好
  • nftables:OpenWrt 22.03+ 新防火墙,性能更好

7.4 控制面板(Dashboard)

OpenClash 内置两款 Clash 控制面板:

  • yacd(Yet Another Clash Dashboard):轻量简洁,加载速度快
  • zashboard:界面更现代,功能更丰富

可在「外网设置」中切换面板类型,或在「运行状态」中直接打开。

7.5 IP 黑白名单

OpenClash 支持 IP 黑白名单功能,在「防火墙设置」中添加需要绕过代理或强制走代理的 IP 段,适合精细化控制特定设备的网络行为。

7.6 版本更新

OpenClash 本身和内核都支持在线更新。在「版本更新」页面可以:

  • 检查 OpenClash 插件版本更新
  • 下载并切换 Clash/Mihomo 内核版本
  • 查看各版本的更新日志

八、与 Mihomo 内核的关系

OpenClash 之前使用 Dreamacro 的 Clash 内核,现在已经迁移到 MetaCubeX/mihomo 内核。Mihomo 是 Clash 的社区维护分支,功能更丰富,协议支持更完整。OpenClash 的内核管理页面会同步 Mihomo 的最新开发分支版本。

九、常见问题(FAQ)

Q:OpenClash 和 OpenWrt 官方源冲突怎么办?
A:OpenClash 使用独立的软件源(dl.openclash.org),不与 OpenWrt 官方源冲突。安装时 opkg 会自动处理依赖关系,不会覆盖官方包。
Q:路由器内存不足无法安装?
A:OpenClash 本身占用约 2-3MB 存储,内核约 10MB。建议路由器至少有 8MB 可用存储空间和 128MB 内存。老设备可考虑精简 OpenWrt 系统再安装。
Q:TUN 模式开启后无法访问路由器管理页面?
A:在「规则设置」中添加一条规则:DOMAIN-SUFFIX,lan,DIRECT 或将路由器 IP(如 192.168.1.1/24)加入 IP-CIDR 直连规则。
Q:订阅更新失败?
A:检查路由器是否能正常访问订阅地址(可尝试 curl 测试)。部分机场订阅链接有 IP 白名单限制,需在机场后台添加路由器出口 IP。
Q:内核下载失败或速度慢?
A:OpenClash 内核托管在 GitHub Releases,如下载慢可在其他设备下载内核二进制文件后手动上传至 /etc/openclash/core/clash。可自行编译内核或使用第三方编译的内核二进制。
Q:支持哪些代理协议?
A:Mihomo 内核支持 Shadowsocks、Vmess、Trojan、Socks5、HTTP(S)、Snell、Vless 等。具体还取决于你使用的订阅配置文件包含的节点类型。
Q:如何降级内核?
A:在「版本更新」页面选择旧版本内核下载安装即可。如果在线降级失败,可手动删除 /etc/openclash/core/clash 后上传旧版本内核文件并赋予执行权限。