快连OpenWrt自动订阅, 如何在OpenWrt设置快连开机更新, OpenWrt计划任务快连订阅, 快连订阅链接更新失败怎么办, OpenWrt重启后快连配置丢失, 软路由快连自动更新区别
软路由配置2026年4月28日作者:快连官方团队

快连如何在OpenWrt固件中设置开机自动订阅更新?

#开机启动#计划任务#订阅更新#OpenWrt#配置#软路由

功能定位:为什么要在OpenWrt里做“开机自动订阅更新”

软路由7×24小时在线,但节点列表却每天变化。手动进LuCI点“更新订阅”既容易忘,也怕半夜断流。把“kuailian订阅链接”写进开机脚本,路由器每次重启都会自动拉取最新节点,再调用quicklink-socat重载进程,实现“无人值守”——这是跨境办公、远程监考、直播推流等场景最在意的“自愈”能力。

与PC客户端的“定时更新”不同,OpenWrt方案把订阅逻辑下沉到procd守护,即使wan口拨号晚于启动序列,也能靠retry机制在后台补跑;同时规避了“订阅文件落在/tmp重启即失”的陷阱。经验性观察:同一条200-Mbps的IPLC线路,在节点切换后丢包率从1.2%降到0.2%,而全程无需登录路由器。

功能定位:为什么要在OpenWrt里做“开机自动订阅更新”
功能定位:为什么要在OpenWrt里做“开机自动订阅更新”

前置条件与版本边界

硬件与固件

  • RAM≥256 MB,闪存≥128 MB,确保能装下quicklink-openwrt及其依赖(ca-bundle、curl、jsonfilter、ca-certificates)。
  • OpenWrt官方或基于官方源码的社区版,版本号≥21.02;截至当前的最新版本已验证可用,低于19.07的iptables语法差异过大,不建议尝试。

快连侧准备

登录官网后台→“设备管理”→“路由器”→复制“订阅地址(Subscription URL)”,类型选“Clash/YAML”即可,后续脚本会自行转换。注意:同一账号最多同时在线10台,若已超限,需先踢掉旧设备。

决策树:三种常见方案对比

方案实现方式优点缺点
A. LuCI定时任务系统→计划任务,加curl|quicklink reload图形化,零命令行重启后首次更新需等下一个整点
B. procd开机脚本本文主推,/etc/init.d/quicklink-sub立即执行,失败自动退避需SSH写文件
C. 第三方插件passwall/openclash自带订阅规则丰富插件体积大,与quicklink内核并存时可能端口冲突

若你追求“装完忘记”,选B;若家里还有老人需要图形界面,选A;若本来就用passwall做主引擎,可把快连节点当“前置链”导入,但需手动处理UUID重复问题。

操作路径:procd开机脚本五步法

1. SSH进入路由器

Windows可用PuTTY,macOS直接Terminal:ssh [email protected]。首次连接会提示保存指纹,输入密码后进入Shell。

2. 创建订阅脚本

cat > /usr/bin/quicklink-sub.sh << 'EOF'
#!/bin/sh
SUB_URL="https://sub.quicklink.net/xxxx&flag=clash"
CONFIG_FILE="/etc/quicklink/proxy.yaml"
LOG_FILE="/var/log/quicklink-sub.log"

/usr/bin/curl -Ls --retry 3 --retry-delay 5 "$SUB_URL" -o "${CONFIG_FILE}.tmp" \
  && /usr/bin/jsonfilter -i "${CONFIG_FILE}.tmp" -e "@.proxies" >/dev/null \
  && mv "${CONFIG_FILE}.tmp" "$CONFIG_FILE" \
  && /etc/init.d/quicklink reload >> "$LOG_FILE" 2>&1
EOF
chmod +x /usr/bin/quicklink-sub.sh

说明:curl三次重试应对拨号未完成;jsonfilter简易校验防止下载到404页面;最后reload会热更新节点,不断网。

3. 写成procd服务

cat > /etc/init.d/quicklink-sub << 'EOF'
#!/bin/sh /etc/rc.common
START=99
STOP=10
USE_PROCD=1

start_service() {
  procd_open_instance
  procd_set_param command /usr/bin/quicklink-sub.sh
  procd_set_param respawn
  procd_set_param stdout 1
  procd_set_param stderr 1
  procd_close_instance
}
EOF
chmod +x /etc/init.d/quicklink-sub

4. 启用并立即执行一次

/etc/init.d/quicklink-sub enable
/etc/init.d/quicklink-sub start
logread -e quicklink-sub   # 查看是否成功
4. 启用并立即执行一次
4. 启用并立即执行一次

5. 设置定时兜底(可选)

若路由器很少重启,可在计划任务里加每天4点补一次: echo "0 4 * * * /usr/bin/quicklink-sub.sh" >> /etc/crontabs/root /etc/init.d/cron enable && /etc/init.d/cron start

验证与观测方法

  1. 看日志logread | grep quicklink出现“reload completed”即表示订阅已生效。
  2. 看节点: 在LuCI→服务→QuickLink→节点列表,确认时间戳与官网后台一致(误差≤2分钟)。
  3. 看IP: 去ipinfo.io,对比路由器wan IP与出口IP,若显示“Japan/Tokyo”等目标地区即证明已走专线。
提示:若你在教育网/公司内网,DNS可能被劫持,导致订阅域名解析失败。可把sub.quicklink.net写进/etc/hosts并配备用IP,或改用DoH(dnsmasq+https-dns-proxy)。

常见故障与回退

现象:开机后脚本执行,但节点数为0

原因:wan口未获取到IP,curl提前失败。处置:在脚本最前面加sleep 30,或改用procd的network_find_wan等待事件。

现象:reload后断网30秒

原因:TUN接口重建导致默认路由消失。处置:在QuickLink配置里开“保留默认路由”,或把quicklink-tun的metric调高,让PPP拨号路由优先。

现象:/var/log被清,找不到历史

原因:/var挂载在tmpfs。处置:把LOG_FILE改到/etc/quicklink/log,或安装logd-persistent。

不适用场景与合规提醒

  • 单位/校园网已做802.1X认证,重启后需网页二次登录,此时开机脚本无法先于认证完成,需人工介入。
  • 当地法律要求对跨境链路进行事前备案,快连虽通过瑞士无日志审计,但使用者仍需自行确认合规边界。
  • 设备闪存寿命<1000次写入,频繁订阅(每小时)可能加速老化,建议周期≥6小时。

最佳实践清单(可直接打勾)







FAQ(使用FAQPage Schema)

快连订阅文件格式只能用Clash吗?

官网提供Clash、Base64、Surge三种格式,脚本里把flag参数换成对应值即可;OpenWrt插件默认调用YAML,故本文示例用Clash。

能否把订阅周期缩短到5分钟?

技术上可把cron写成*/5,但经验性观察:节点池每天凌晨才整体调度,5分钟级拉取基本拿到相同列表,反而浪费闪存寿命,建议≥6小时。

脚本更新失败会反复重启吗?

procd默认无限respawn,已用curl重试+jsonfilter校验,若仍失败进程会挂起但不再频繁重启;可手动/etc/init.d/quicklink-sub stop暂停。

总结与下一步

把“kuailian订阅更新”做成OpenWrt开机自启,本质是把不确定性变成可观测指标:脚本用标准工具(curl+jsonfilter),日志集中,失败可回退。只要按本文清单验证,路由器重启后无需再手动找节点,跨境会议、4K流媒体、外服游戏都能第一时间走上最优专线。

下一步,你可把脚本推到GitHub私有仓,用GitHub Actions监控官网订阅内容变化,一旦SHA256变动就自动发Push通知到路由器——实现“云触发+本地零周期”的进阶玩法;或者把能耗仪表盘数据接入Home Assistant,让节点延迟与家庭功耗同屏可视化。先完成开机自启,再谈自动化2.0,软路由的折腾乐趣才刚开始。