OpenWrt 正确编译安装 OpenClash 的方法

前面说到过 OpenWrt 安装 OpenClash 插件并配置节点的教程,那个安装的前提是已经拥有了 OpenClash 的依赖才可以直接安装插件,安装方法说的比较笼统,下面彧繎就分享个如何在 OpenWrt 上正确编译 OpenClash 的方法,其中包括了依赖安装和内核安装的步骤。

更换发行源

安装之前我们需要先确认设备架构,本次使用的设备为 NanoPi R2S,设备架构为 aarch64,如何确认架构可使用以下命令查看,命令如下:

# 查看CPU架构
uname -m

# 查看可接受架构
opkg print-architecture

其他设备架构请自行修改软件源架构地址,比如:R2S 为 CPU 是 RK3328 ARMv8 64位 4核 A53,那么 openwrt_core 就是/armvirt/64/,其他为 /aarch64_cortex-a53/,不清楚或者不了解设备架构的的可以自行谷歌查找,以下为 aarch64 架构使用的发行源地址:

src/gz openwrt_core https://downloads.openwrt.org/snapshots/targets/armvirt/64/packages/
src/gz openwrt_base https://downloads.openwrt.org/snapshots/packages/aarch64_cortex-a53/base/
src/gz openwrt_luci https://downloads.openwrt.org/snapshots/packages/aarch64_cortex-a53/luci/
src/gz openwrt_packages https://downloads.openwrt.org/snapshots/packages/aarch64_cortex-a53/packages
src/gz openwrt_routing https://downloads.openwrt.org/snapshots/packages/aarch64_cortex-a53/routing
src/gz openwrt_telephony https://downloads.openwrt.org/snapshots/packages/aarch64_cortex-a53/telephony

更新发行源

此处为更新发行源地址,并移除旧版本残留的的 OpenClash 插件内容,更新提示 Signature check passed. 那么说明更新成功,如果更新错误,请检查“系统”>“软件包”>“配置” 内地址是否填写正确,并手动尝试打开地址查看。

如地址确认无误还是无法更新,可尝试在上级路由开启代理节点,确保发行源可正常更新!!!

# 更新发行源
opkg update

# 移除陈旧不可用的 luci-app-openclash
opkg remove luci-app-openclash

确认缺少依赖

使用命令罗列出所有已安装的依赖,对照以下所需依赖,找出未安装的所需依赖,如安装的 openclash 版本高于 V0.44.00-Beta,那么可以忽略 jsonfilter 依赖,命令如下:

opkg list-installed

所需依赖:

coreutils-nohup,bash,iptables,dnsmasq-full,curl,ca-certificates,ipset,ip-full,iptables-mod-tproxy,iptables-mod-extra,libcap,libcap-bin,ruby,ruby-yaml,kmod-tun

安装所需依赖

对照已找出的所需依赖,依次执行所需安装的依赖命令,为了让小白不出错,以下命令全部使用了强制安装,如果不想强制安装可删除 –force-overwrite 即可,依赖安装成功都会提示:Configuring [依赖名称] ,命令如下:

opkg install coreutils-nohup --force-overwrite
opkg install bash --force-overwrite
opkg install iptables --force-overwrite
opkg install dnsmasq-full --force-overwrite
opkg install curl --force-overwrite
opkg install ca-certificates --force-overwrite
opkg install ipset --force-overwrite
opkg install ip-full --force-overwrite
opkg install iptables-mod-tproxy --force-overwrite
opkg install iptables-mod-extra --force-overwrite
opkg install libcap --force-overwrite
opkg install libcap-bin --force-overwrite
opkg install ruby --force-overwrite
opkg install ruby-yaml --force-overwrite
opkg install kmod-tun --force-overwrite

出现报错提示:op­kg_­con­f_load: Could not lock /var/lock/opkg.lock: Re­source tem­porar­ily un­avail­able,那么请执行以下命令后继续操作即可,命令如下:

rm -f /var/lock/opkg.lock

安装插件

安装前请前往 OpenClash 的 Github 发布页确认版本,演示版本为:V0.44.34-beta,确认后修改以下命令内的版本号,然后依次运行以下命令即可,命令如下:

插件发布页:https://github.com/vernesong/OpenClash/releases

# 下载 luci-app-openclash
wget https://github.com/vernesong/OpenClash/releases/download/v0.44.34-beta/luci-app-openclash_0.44.34-beta_all.ipk
# 安装 luci-app-openclash
opkg install luci-app-openclash_0.44.34-beta_all.ipk

# 以下为安装 luci-app-openclash 成功提示,并非命令
Installing luci-app-openclash (0.44.34-beta) to root...
Configuring luci-app-openclash.
cfg1d7882

安装内核

如果你在“openclash”>“全局设置”>“版本更新”内无法更新 Dev 内核,那么可以使用以下方法进行更新,安装内核前先去内核发布页确认架构安装包,比如:R2S 使用 clash-linux-armv8.tar.gz,将安装包名替换到命令内即可,命令如下:

内核发布页:https://github.com/vernesong/OpenClash/releases/tag/Clash

# 进入内核安装目录
cd /etc/openclash/core/ 

# 下载内核安装包
wget https://github.com/vernesong/OpenClash/releases/download/Clash/clash-linux-armv8.tar.gz

# 解压内核安装包
tar -zxvf clash-linux-armv8.tar.gz

# 给予最高权限
chmod 777 clash

最后说明

完成安装后重启设备,进入 OpenClash 后在 “全局设置”>“版本更新”内将 Dev, TUN, Game 进行更新,模式设置推荐使用 Fake-IP (TUN – 混合) 模式,启用本地DNS,如何配置节点可查看《OpenWrt 安装 OpenClash 插件并配置节点》。