快连OpenWrt如何升级保留节点, OpenWrt固件升级配置丢失怎么办, 快连升级教程, OpenWrt sysupgrade 保留配置, 节点配置备份与恢复, CLI升级OpenWrt步骤, 快连固件升级最佳实践, OpenWrt升级后节点失效排查
固件升级2026年5月16日作者:快连技术团队

快连OpenWrt固件如何无损升级并保留节点配置?

#升级#备份#配置还原#CLI#节点管理

问题定义:为什么要“无损”升级

OpenWrt 的迭代节奏快,安全补丁与驱动优化几乎每月都有。对把kuailian(QuickLink)封装进固件、靠路由器 7×24 提供代理服务的用户来说,重新刷机意味着节点、分流规则、DNS 策略全部归零,手动补回至少半小时。无损升级的核心诉求只有一句话:刷完新固件,旧配置原样复活,且重启后业务 IP 不断流。

经验性观察:家用场景下,完整备份-升级-还原三步走,可把断网时间压到 90 秒内;若跳过备份验证,升级失败回滚时,需额外 15 分钟重配节点,得不偿失。

问题定义:为什么要“无损”升级
问题定义:为什么要“无损”升级

前置条件与兼容性清单

硬件

  • 已刷入快连OpenWrt固件(截至当前的最新版本)且剩余 ROM ≥ 30 %;
  • RAM ≥ 256 MB,确保升级时可同时挂载 overlay-backup 临时目录;
  • USB 口或剩余空间 ≥ 100 MB,用于存放备份 tar。

软件

  • kuailian 核心组件 ≥ v7.3.0,确保节点列表采用 JSON 单文件格式,便于整体迁移;
  • 已安装官方仓库的 sysupgradeluci-app-attendedsysupgrade
  • SSH 可登录,或本地串口可用,作为“最后一道门”。

升级思路:双保险策略

OpenWrt 官方提供 sysupgrade -F -b /tmp/backup-$(date +%F).tar 指令,可打包整个 overlay 分区(含快连节点配置、分流脚本、自定义防火墙规则)。但 overlay 里混杂了内核模块与临时日志,直接回刷可能把旧驱动写回新系统,出现“版本漂移”。因此采用A/B 双保险

  1. 保险 A:用 sysupgrade -b 做全量 tar,兜底用;
  2. 保险 B:单独导出kuailian 配置目录(/etc/quicklink/)与防火墙自定义片段,升级后优先还原 B,若系统异常再退回到 A。

操作路径:CLI 极简五步

以下命令均在路由器本地 SSH 执行,桌面端仅需一个 SCP 工具(Windows 可用 WinSCP,macOS 直接终端 scp)。

Step 1 创建快照点

opkg update && opkg install zstd cd /overlay/upper && tar -I zstd -cf /mnt/sda1/overlay-$(date +%F).tar.zst .

说明:zstd 压缩率比 gzip 高 15 % 左右,百兆配置可压到 20 MB 内;外接 U 盘挂载在 /mnt/sda1,路径因设备而异。

Step 2 单独备份快连配置

tar -C /etc -cf /mnt/sda1/quicklink-cfg.tar quicklink/ ipset list > /mnt/sda1/ipset-backup.txt

节点列表、分流策略、Kill-Switch 白名单均位于 /etc/quicklink/;ipset 用于流媒体解锁,还原后需重新注入。

Step 3 拉取新固件

wget https://fw.quicklink.pro/openwrt/x86_64/snapshot/openwrt-x86-64-generic-squashfs-sysupgrade.bin -O /tmp/firmware.bin

若使用 LuCI 在线编译,可直接在“固件定制”页面勾选“保留配置”并下载,但经验性观察:在线编译偶尔缺驱动,本地 CLI 更稳。

Step 4 执行无损升级

sysupgrade -F -c /tmp/firmware.bin

-F 强制跳过版本校验,-c 自动把当前 /etc 目录以 tar 形式写进新固件的 overlay。官方文档提示:若空间不足,-c 会失败,因此先确认 df -h / 可用 ≥ 50 MB。

Step 5 验证节点是否复活

路由器重启后 30 秒,SSH 登录:

quicklink-cli node list | head

若能看到“香港 01|Tokyo 03”等别名,说明配置已还原;若列表为空,则手动还原 Step 2 的 tar:

tar -C / -xf /mnt/sda1/quicklink-cfg.tar /etc/init.d/quicklink restart

LuCI 图形界面分支路径

部分用户更习惯 Web 操作,可在浏览器进入:

  1. 系统 → 备份/升级 → 生成备份(下载 tar 到本地);
  2. “刷写新固件”栏上传 bin,取消“保留配置”复选框(因我们要手动还原,避免冲突);
  3. 刷完后重新上传第 1 步的 tar,在“上传备份档案”区域执行还原;
  4. 重启快连插件:服务 → QuickLink → 重载配置。

注意:LuCI 还原会把整个 tar 覆盖回 overlay,若新旧内核模块不一致,可能触发 kmod 版本警告;CLI 的“保险 B”方式更轻量。

LuCI 图形界面分支路径
LuCI 图形界面分支路径

例外与副作用:何时不该用保留配置

大版本跳变

OpenWrt 22 → 24 这类主版本升级,防火墙语法、swconfig → DSA 接口模型均发生断裂,保留配置极易导致 LAN 失联。此时应:

  • 仅备份kuailian 与自定义脚本;
  • 刷机时不保留配置,让新固件生成干净结构;
  • 事后用 sdiff 逐行对比还原。

overlay 膨胀 > 80 %

经验性观察:当 overlay 占用超过 80 %,sysupgrade -c 会在压缩阶段失败,路由器直接重启却未刷入新固件,陷入“半砖”。此时应先清理:

opkg clean && rm -rf /tmp/opkg-* && find /overlay -name "*.log" -delete

验证与回退:可复现的检查表

检查项通过阈值CLI 命令
节点列表长度≥ 升级前 95 %quicklink-cli node list | wc -l
DNS over HTTPS3 解析< 200 mskdig -d @127.0.0.1 +https google.com
Kill-Switch 生效掉线后 3 s 内断网ip link set wan down && ping -c 10 1.1.1.1
家庭组在线设备= 升级前数量cat /tmp/quicklink/family.json | jq '.clients|length'

若任一项低于阈值,执行回退:重新刷回旧固件,再用保险 A 的 overlay tar 完整覆盖,即可回到升级前状态。

与第三方 Bot 协同:自动备份到 Telegram

路由器内安装 curl 后,可把 Step 2 的 quicklink-cfg.tar 每日推送到频道,作为异地备份。示例脚本(token 与 chat_id 请替换为真实值):

#!/bin/sh BACKUP=/mnt/sda1/quicklink-cfg.tar curl -F document=@$BACKUP "https://api.telegram.org/bot<TOKEN>/sendDocument?chat_id=<CHAT_ID>"

提示:为最小化权限,可新建频道并设置为“仅管理员”,避免配置外泄。

适用/不适用场景清单

  • 适用:家庭 NAS、工作室旁路由、高校宿舍单线路,配置变更频率低,升级周期 ≥ 3 个月;
  • 不适用:数据中心多租户网关、合规要求“刷机必清零”场景、overlay 已报警“只读”的 NAND 老化设备。

最佳实践 7 条(速查表)

  1. 升级前 24 h 不改动节点列表,确保备份一致性;
  2. 永远准备“保险 A+B”两份备份,U 盘 + Telegram 异地;
  3. 大版本升级先读 Release Notes,确认防火墙语法变更;
  4. overlay 占用 > 70 % 时,先清理再升级,避免 tar 失败;
  5. 升级后 5 分钟内完成四项验证(见上表),发现问题立即回退;
  6. 家庭组账号开启“设备指纹”,防止升级后 MAC 变更导致 429 限速;
  7. 把本文命令写成 upgrade.sh,放在 /root,下次直接跑脚本,减少手敲错误。

FAQ(结构化数据)

升级后节点列表为空,但备份文件存在,如何快速还原?

SSH 登录后执行 tar -C / -xf /mnt/sda1/quicklink-cfg.tar && /etc/init.d/quicklink restart,30 秒内可见节点。

sysupgrade 提示“Image checksum mismatch”怎么办?

加上 -F 强制跳过校验;若仍失败,重下固件,确认型号对应 x86/64 或 armvirt。

能否直接保留 overlay 而跳过手动还原?

小版本(如 r24000 → r24100)可勾选“保留配置”,但大版本或内核号变化时,建议手动还原,防止 kmod 冲突。

家庭组设备上限 6 台,升级后计数归零,会触发 429 吗?

不会。设备指纹文件同时备份,还原后服务器仍识别原设备;若未备份,需重新绑定,可能短暂触发限速。

U 盘断电导致备份 tar 损坏,如何校验完整性?

备份时加 zstd -19 --rm 并生成 .sha256 文件;升级前用 sha256sum -c 验证,失败即重新备份。

收尾:下一步行动

无损升级并非黑科技,而是“备份-验证-回退”三板斧的纪律化。把本文脚本与检查表落地成你的 SOP,下次快连OpenWrt固件更新,就能在喝一杯咖啡的时间里完成升级,节点不掉、设备不断、家人无感。立即打开 SSH,把 upgrade.sh 写进路由器,下一次安全补丁发布时,你会感谢今天提前准备的自己。