将 Oect 设备刷入 iStoreOS 并配置为旁路由

发布于 2026年05月21日

该教程只适用于Oect设备二次刷机,首次刷机不适用。windows电脑操作

第一步:下载安装刷机所需驱动,刷机工具。以及下载iStoreOS固件

下载地址

s://my.feishu.cn/drive/folder/DyHDfzPlTlC9w6dwaPdckec0n8e?from=from_copylink

1、首先解压RkDevTool_v2.84__DriverAssitant_v5.12.tar 。进入DriverAssitant_v5.12下点击DriverInstall安装驱动

2、打开RkDevTool_v2.84的RKDevTool刷机工具

第二步:开始刷机(OECT设备不用接电源)

1、先按(用针捅)住OECT设备的reset按钮不要松开,然后使用数据线连接电脑和OECT设备的Type-C口,当RKDevTool工具上出现,发现一个Loader设备时松开Reset按钮。

2、点击RKDevTool工具上的执行开始正式刷机。当出现下载完成时,代表刷机完成。

第三步:路由配置

旁路由器初始设置

1、给OECT设备插上电源。将OECT通过网线接入路由器,找路由器上找到设备的IP地址。在浏览器中访问打开。账号root.密码password

点击网络向导,选择配置为旁路由,然后选择手动配置。

按住上图配置完成后点击保存配置。

磁盘分区配置
1、扩容/分区(有风险,但推荐)

#第一步:删除 p3 和 p4(仅改分区表,不碰数据区)
umount /dev/mmcblk0p3
umount /dev/mmcblk0p4
parted /dev/mmcblk0 rm 4
parted /dev/mmcblk0 rm 3
#提示的话。选择忽略 Ignore
#第二步:扩展 p2 到磁盘末尾
parted /dev/mmcblk0 resizepart 2 100%
#选择yes
#第三步:通知内核刷新分区表
partprobe /dev/mmcblk0
# 验证 p2 新大小(应 ≈ 7 GiB)
lsblk /dev/mmcblk0p2
#第四步:Btrfs 在线扩展到最大
btrfs filesystem resize max / 
# 方法1:使用 partx 强制更新指定分区
partx -u /dev/mmcblk0p2

# 如果 partx 报错或无效,尝试方法2
blockdev --rereadpt /dev/mmcblk0
#第五步:验证结果

df -h /
# 期望输出:Size ≈ 7G
btrfs filesystem show / 
2、扩容/分区(安全无风险,害怕1出问题则使用这个方式)
umount /dev/mmcblk0p3
umount /dev/mmcblk0p4
#将 p3 p4加入 Btrfs 池(⚠️ -f 会清空 p3 数据,但你确认无用)
btrfs device add -f /dev/mmcblk0p3 /
btrfs device add -f /dev/mmcblk0p4 / 
#在线扩展逻辑容量(让 Btrfs 使用新增空间) 
btrfs filesystem resize max / 
# 方法1:使用 partx 强制更新指定分区
partx -u /dev/mmcblk0p2

# 如果 partx 报错或无效,尝试方法2
blockdev --rereadpt /dev/mmcblk0
#验证

df -h /
# 应显示 Size 
btrfs filesystem show /
3、挂载固定路径(不太推荐)

刚刷好机后,有部分分区的路径是自动挂载的,每次重启后挂载的路径可能会动态改变。需要将挂载路径配置成固定的。

如果不确定,可以在系统-挂载点里面找到【已挂载的文件系统】截图保存,重启OECT设备,再次打开已挂载的文件系统 可以和截图对比哪些分区挂载的路径改变了,说明就是不固定的。手动将这些分区配置成挂载到固定路径

新加硬盘

1、硬盘分区。为了方便我只分一个区。配置开机自动挂载

fdisk /dev/sda
输入p查看原有分区
输入d回车删除分区。都执行几次删除所有分区
输出n创建分区,输入P回车,后续的保存默认选项回车。回车到最后输入w 回车保存分区
#格式化分区
 mkfs.ext4 /dev/sda1
#分区挂载。web界面操作

在系统。挂载点。添加挂载点

2、配置docker根目录为/mnt/docker

第四步:安装OpenClash

1、通过命令安装。

如果刷的固件是本文提供的固件。那么运行# [nftables for ipk] 这里的命令进行安装。

# [iptables for ipk]
opkg update
opkg install bash iptables dnsmasq-full 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
curl -L --retry 2 https://api.github.com/repos/vernesong/OpenClash/releases/latest -o /tmp/openclash_version
[ -f "/tmp/openclash_version" ] && download_url=$(cat /tmp/openclash_version | jsonfilter -e '@.assets[*].browser_download_url' | grep '\.ipk$') && curl -L --retry 2 "$download_url" -o /tmp/openclash.ipk || echo "OpenClash last version get failed"
[ -f "/tmp/openclash.ipk" ] && opkg install /tmp/openclash.ipk || echo "OpenClash download failed"
# [iptables for apk]
apk update
apk add bash iptables dnsmasq-full 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
curl -L --retry 2 https://api.github.com/repos/vernesong/OpenClash/releases/latest -o /tmp/openclash_version
[ -f "/tmp/openclash_version" ] && download_url=$(cat /tmp/openclash_version | jsonfilter -e '@.assets[*].browser_download_url' | grep '\.apk$') && curl -L --retry 2 "$download_url" -o /tmp/openclash.apk || echo "OpenClash last version get failed"
[ -f "/tmp/openclash.apk" ] && apk add -q --force-overwrite --clean-protected --allow-untrusted /tmp/openclash.apk || echo "OpenClash download failed"
# [nftables for ipk]
opkg update
opkg install bash dnsmasq-full curl ca-bundle ip-full ruby ruby-yaml kmod-tun kmod-inet-diag unzip kmod-nft-tproxy luci-compat luci luci-base
curl -L --retry 2 https://api.github.com/repos/vernesong/OpenClash/releases/latest -o /tmp/openclash_version
[ -f "/tmp/openclash_version" ] && download_url=$(cat /tmp/openclash_version | jsonfilter -e '@.assets[*].browser_download_url' | grep '\.ipk$') && curl -L --retry 2 "$download_url" -o /tmp/openclash.ipk || echo "OpenClash last version get failed"
[ -f "/tmp/openclash.ipk" ] && opkg install /tmp/openclash.ipk || echo "OpenClash download failed"
# [nftables for apk]
apk update
apk add bash dnsmasq-full curl ca-bundle ip-full ruby ruby-yaml kmod-tun kmod-inet-diag unzip kmod-nft-tproxy luci-compat luci luci-base
curl -L --retry 2 https://api.github.com/repos/vernesong/OpenClash/releases/latest -o /tmp/openclash_version
[ -f "/tmp/openclash_version" ] && download_url=$(cat /tmp/openclash_version | jsonfilter -e '@.assets[*].browser_download_url' | grep '\.apk$') && curl -L --retry 2 "$download_url" -o /tmp/openclash.apk || echo "OpenClash last version get failed"
[ -f "/tmp/openclash.apk" ] && apk add -q --force-overwrite --clean-protected --allow-untrusted /tmp/openclash.apk || echo "OpenClash download failed"

2、通过上传ipk包安装。

在系统-软件包-上传软件包(luci-app-openclash_0.47.088_all.ipk)安装。

3、启动openclash

  • 启动前请先在插件设置页面的版本更新标签下确认内核编译版本,您也可以手动下载 Clash内核 后解压到 /etc/openclash/core/文件夹,并将二进制文件命名为clash_meta

root@iStoreOS:/etc/openclash/core# chmod +x clash_meta 

web界面服务里面打开Openclash,启动openclash添加订阅,绕过大陆。启动clash

4、配置命令行走代理。

#1、查看配置文件中的认证用户名和密码
root@iStoreOS:/etc/openclash/custom# cat /etc/config/openclash |grep -A5 authentication
config authentication
	option enabled '1'
	option username 'Clash'
	option password 'BfA4LJx1'

config config_subscribe
root@iStoreOS:/etc/openclash/custom# 
#含义:OpenClash 的本地 HTTP/SOCKS/Mixed 端口现在必须携带此账密才能使用。
#export http_proxy="http://Clash:BfA4LJx1@127.0.0.1:7890"
#export https_proxy="http://Clash:BfA4LJx1@127.0.0.1:7890"
#创建代理环境变量文件
cat > /root/.proxy_env <<'EOF'
# OpenClash 本地代理(推荐,免密)
# export http_proxy="http://127.0.0.1:7890"
# export https_proxy="http://127.0.0.1:7890"
export no_proxy="localhost,127.0.0.1,::1,10.*,172.16.*,192.168.*,*.local"

# 如果确实需要带认证的上游代理(替换为实际值)
export http_proxy="http://Clash:BfA4LJx1@127.0.0.1:7890"
export https_proxy="http://Clash:BfA4LJx1@127.0.0.1:7890"
EOF

chmod 600 /root/.proxy_env   # 仅 root 可读,保护凭证安全
# 启用代理
source /root/.proxy_env

# 验证
# 测试本地端口认证(应返回 407 表示需要认证)
curl -x http://127.0.0.1:7890 https://www.google.com -I

# 带认证后应返回 200
curl -x http://Clash:BfA4LJx1@127.0.0.1:7890 https://www.google.com -I
# 退出当前会话或取消代理
cat > /root/.unset_proxy_env <<'EOF'
unset http_proxy https_proxy no_proxy
EOF

chmod 600 /root/.unset_proxy_env
source /root/.unset_proxy_env
#或者直接运行命令
unset http_proxy https_proxy no_proxy

命令行代理永久生效设置

#将下面内容追加写入到 vi /etc/profile文件中
export no_proxy="localhost,127.0.0.1,::1,10.*,172.16.*,192.168.*,*.local"

# 如果确实需要带认证的上游代理(替换为实际值)
export http_proxy="http://Clash:BfA4LJx1@127.0.0.1:7890"
export https_proxy="http://Clash:BfA4LJx1@127.0.0.1:7890"
#使得配置生效(后续开机自动加载 自动生效)
source /etc/profile

第五步:配置终端

按一下2种方式配置的终端就自动具备了科学上网的能力。我使用的是第一种方式。

  • 方式一:指定设备使用(推荐新手)
    在手机或电脑的 WiFi 设置中,找到当前连接的 WiFi,将 IP 设置从“DHCP/自动”改为“静态”,然后将 路由器/网关DNS 手动填写为你刚刚设置的 Oect 旁路由 IP(如 192.168.8.2)。这样只有这台设备会走旁路由,不影响家里其他人正常上网。

  • 方式二:全屋设备强制使用
    登录你家里 主路由 的后台管理页面,在 DHCP 服务器设置中,将默认的网关和 DNS 服务器地址修改为 Oect 旁路由的 IP(192.168.8.2)。保存后,所有连接主路由的设备都会自动经过 Oect 进行网络访问。

附录:docker方式安装启动openclaw

官网指导:Docker - OpenClaw

#下载镜像
docker pull ghcr.io/openclaw/openclaw:2026.6.1-beta.2-browser
#克隆源码
opkg update
opkg install git git-http
mkdir /opt 
chmod -R 777 /opt
cd /opt 
git clone https://github.com/openclaw/openclaw.git
cd openclaw
#在.env文件中可以设置时区,可以找到token
OPENCLAW_TZ=Asia/Shanghai
#启动镜像
# 1. 给现有镜像打一个本地标签
docker tag ghcr.io/openclaw/openclaw:2026.6.1-beta.2-browser openclaw-local:latest

# 2. 指定使用本地标签运行脚本
# 由于 openclaw-local:latest 是纯本地镜像,docker pull 会瞬间完成(或报 not found 后脚本可能继续)
export OPENCLAW_IMAGE="openclaw-local:latest"
#export OPENCLAW_IMAGE="ghcr.io/openclaw/openclaw:2026.6.1-beta.2-browser"
#修改脚本跳过镜像pull.修改脚本中的run_docker_pull()函数如下
vi ./scripts/docker/setup.sh
run_docker_pull() {
 return 0
 # local image="$1"
 # if command -v timeout >/dev/null 2>&1; then
   # if timeout --kill-after=1s 1s true >/dev/null 2>&1; then
    #  timeout --kill-after=30s "$DOCKER_PULL_TIMEOUT" docker pull "$image"
   # else
   #   timeout "$DOCKER_PULL_TIMEOUT" docker pull "$image"
  #  fi
  #  return
 # fi
 # docker pull "$image"
}

#保存后运行脚本
./scripts/docker/setup.sh
#
1、设置脚本会自动运行新手引导。(选择快速配置)它会:

提示输入提供商 API key
生成 Gateway 网关令牌并写入 .env
创建 auth-profile 密钥目录
通过 Docker Compose 启动 Gateway 网关
设置期间,启动前的新手引导和配置写入会直接通过 openclaw-gateway 运行。openclaw-cli 用于在 Gateway 网关容器已经存在后运行的命令。

#2、打开控制 UI
#在浏览器中打开 http://127.0.0.1:18789/,并将配置好的 共享密钥粘贴到设置中。设置脚本默认会向 .env 写入令牌; 如果你将容器配置切换为密码认证,请改用该密码。
docker compose run --rm openclaw-cli dashboard --no-open

#3、配置渠道(可选)
#使用 CLI 容器添加消息渠道:
#飞书
docker compose run --rm openclaw-cli channels login --channel feishu
# WhatsApp (QR)
docker compose run --rm openclaw-cli channels login
 
# Telegram
docker compose run --rm openclaw-cli channels add --channel telegram --token "<token>"
 
# Discord
docker compose run --rm openclaw-cli channels add --channel discord --token "<token>"

附录:安装luci-app-openclaw(不推荐,比较复杂,我没有运行成功)

OpenClaw AI 网关的 OpenWrt LuCI 管理插件。

在路由器上运行 OpenClaw,通过 LuCI 管理界面完成安装、配置和服务管理。

系统要求

项目

要求

架构

x86_64 或 aarch64 (ARM64)

C 库

musl(自动检测;离线包仅支持 musl)

依赖

luci-compat, luci-base, curl, openssl-util, tar, script-utils

存储

2GB 以上可用空间

内存

推荐 1GB 及以上

当前适配版本

组件

默认版本

说明

OpenClaw

2026.5.12

npm latest 稳定标签;不默认追 2026.5.14-beta.2

Node.js

22.16.0

安装后会按 OpenClaw engines.node 做强校验,低于要求会直接失败

微信插件

@tencent-weixin/openclaw-weixin@2.4.3

CLI 使用 @tencent-weixin/openclaw-weixin-cli@2.1.4

📦 安装
方式一:.run 自解压包(推荐istoreos使用这个方式)

无需 SDK,适用于已安装好的系统。

# 下载最新版本(自动获取版本号)
VER=$(curl -sI "https://github.com/10000ge10000/luci-app-openclaw/releases/latest" 2>/dev/null | grep -i "location:" | sed 's/.*tag\/v\{0,1\}//' | tr -d '\r\n')
wget "https://github.com/10000ge10000/luci-app-openclaw/releases/download/v${VER}/luci-app-openclaw_${VER}.run"
sh "luci-app-openclaw_${VER}.run"
方式二:.ipk 安装
# 下载最新版本(自动获取版本号)
VER=$(curl -sI "https://github.com/10000ge10000/luci-app-openclaw/releases/latest" 2>/dev/null | grep -i "location:" | sed 's/.*tag\/v\{0,1\}//' | tr -d '\r\n')
wget "https://github.com/10000ge10000/luci-app-openclaw/releases/download/v${VER}/luci-app-openclaw_${VER}-1_all.ipk"
opkg install "luci-app-openclaw_${VER}-1_all.ipk"

下载node安装包不存在了。修改脚本中的node版本号为25.8.1即可下载最新版node

which openclaw-env
/usr/bin/openclaw-env
vim /usr/bin/openclaw-env

修改第17行最后的版本号,例:
NODE_VERSION_V2="25.8.1"
或者
NODE_VERSION_V2="24.14.0" 或者22.22.3
#下载地址是 https://unofficial-builds.nodejs.org/download/release/v22.22.3/node-v22.22.3-linux-x64-musl.tar.xz
🔰 首次使用
  1. 打开 LuCI → 服务 → OpenClaw,点击「安装运行环境」

  2. 安装完成后服务会自动启动,点击「刷新页面」查看状态

  3. 进入「Web 控制台」添加 AI 模型和 API Key

  4. 进入「配置管理」可使用向导配置消息渠道

自定义安装路径

UCI 字段仍然是 openclaw.main.install_path,语义为基础目录。例如:

uci set openclaw.main.install_path='/opt'
uci commit openclaw
openclaw-env setup

实际运行目录会固定展开为 /opt/openclaw。如果误填 /opt/openclaw,插件会自动规范化为 /opt,不会再拼成 /opt/openclaw/openclaw

安装前会执行写入探针;如果 overlay 已满、只读或外置盘未正确挂载,安装会在下载前失败并给出明确日志。

微信插件依赖

微信渠道安装前会检查:

  • openclaw 系统用户是否存在,不存在时自动创建

  • python3 是否已安装

  • npm cache、tmp、OpenClaw 数据目录是否可由 openclaw 用户写入

  • 旧渠道名 weixin 会迁移为 openclaw-weixin

如缺少 Python3:

opkg update
opkg install python3
已知说明
  • OpenClaw 的 diagnostic heartbeat 可能在日志中出现类似周期性探测记录。它不是一次真实用户对话请求;如需降低噪音,优先在 OpenClaw 配置或日志采集侧降低诊断日志级别,不建议直接修改模型调用逻辑。

  • 当前仓库提供源码、OpenWrt feeds 集成方式、本地 .run / .ipk 构建脚本入口;本次维护不自动生成 Release 产物。

附录:其他

还可以安装Docker。以及其他自己需要的一些插件等等。



评论