快连如何在OpenWrt固件中设置开机自启并编写守护脚本?
教你在OpenWrt固件中为kuailian配置开机自启与守护脚本,含init.d模板、看门狗逻辑与回退方案。

功能定位:为什么要在OpenWrt里自启快连
OpenWrt 一旦断电重启,手动再连快连不仅麻烦,还意味着全屋设备瞬间断流。把快连客户端做成系统级服务,可在路由器进入网络栈后秒级拉起隧道,电视、NAS、游戏机无需单独配置就能恢复加速通道。相比桌面端“人走即断”,路由器自启方案让海外赛事直播、跨境店铺后台保持7×24在线,减少因IP跳动触发的风控。
不过,自启不是万能:家用软路由性能有限,加密吞吐可能跑不满千兆;若节点临时维护,隧道重连期间依旧会丢包。因此,守护脚本与看门狗必须一起上,才能在节点抖动、PPPoE 重拨、IPv6 前缀变更等场景下自动回血。
前置检查:确认固件与空间
1. 系统版本与内核
截至当前的最新版本 OpenWrt 22.03 以上均自带 procd 初始化系统,向下兼容 init.d。可在 SSH 执行:cat /etc/openwrt_release 查看。若仍在 19.07,建议先升级,否则缺失 procd_add_restart_trigger 钩子,脚本需改写为 legacy 模式。
2. 剩余空间与依赖
快连官方提供 mips/arm/x86_64 三类 ipk,体积约 3–4 MB,另需 libopenssl、ca-bundle、iptables-mod-tproxy 等公共库。执行 df -h / 确认剩余空间 ≥15 MB,避免写入失败导致路由器变砖。
安装快连客户端:两条主流路径
A. 官方 ipk 安装(推荐)
- SSH 进入路由器,依次执行:
opkg update(文件名以官网下载为准)
opkg install quicklink_8.3.1_x86_64.ipk - 安装结束会提示
QuickLink config folder: /etc/quicklink,记住路径,后续脚本要用。
B. 二进制直拖(应急)
若 opkg 源无法连接,可把 qlclient 二进制通过 SCP 放进 /usr/bin,手动赋权 chmod +x。此方法升级时需要人工替换,适合临时测试,不建议长久使用。
编写 init.d 服务脚本
procd 时代官方推荐统一放在 /etc/init.d/quicklink,下面给出最小可运行模板,已集成守护+指数退避逻辑。
#!/bin/sh /etc/rc.common
# Copyright (C) 2026 QuickLink Tutorial
START=95 # 网络层之后启动
STOP=10
USE_PROCD=1
PROG=/usr/bin/qlclient
CONF=/etc/quicklink/client.conf
LOG=/var/log/quicklink.log
MAX_RETRY=5
retry=0
start_service() {
procd_open_instance
procd_set_param command $PROG -c $CONF
procd_set_param respawn # 崩溃即拉
procd_set_param stdout 1
procd_set_param stderr 1
procd_set_param pidfile /var/run/quicklink.pid
procd_close_instance
echo "$(date '+%F %T') QuickLink started" >> $LOG }
service_triggers() { procd_add_reload_trigger "network" # PPPoE 重拨后重启 procd_add_raw_trigger "interface.*.up" 60 /etc/init.d/quicklink restart }
保存后执行:/etc/init.d/quicklink enable,系统会在下次开机自动调用。
守护脚本:看门狗防止“假死”
procd respawn 只能处理进程崩溃,无法识别“隧道存活但无法上网”的半死不活状态。为此,额外写一份 crontab 脚本,每 2 分钟探测一次远端。
#!/bin/sh
# /usr/bin/ql_watchdog.sh
PING_HOST=8.8.8.8
IFACE=ql0
if ! ping -c 3 -I $IFACE $PING_HOST >/dev/null 2>&1; then
logger -t quicklink "tunnel unreachable, restarting..." /etc/init.d/quicklink restart fi
加入计划任务:echo '*/2 * * * * /usr/bin/ql_watchdog.sh' >> /etc/crontabs/root,再执行 /etc/init.d/cron restart 生效。
开机自启验证:三步确认
- 软重启:
reboot后 SSH 重新登录,执行logread -e quicklink应看到启动日志。 - 进程存在:
ps | grep qlclient出现常驻进程即成功。 - 出口 IP:
curl -s --interface ql0 ipinfo.io返回的地理位置应与所选节点一致。
常见分支与回退方案
1. 启动顺序过早导致 DNS 不可达
症状:日志提示 resolve hostname fail。解决:把 START=95 调到 99,或在脚本里 sleep 10 等待 PPPoE 握手完成。
2. 闪存频繁写日志磨损
经验性观察:部分家用路由器每天重启一次,一年内 /var/log symlink 到 /tmp 即可,重启后日志自动丢弃,对排查瞬时故障足够。
3. 节点维护导致循环重启
若远端持续 503,看门狗会无限重启,消耗 CPU。可在脚本里加计数器,连续 3 次后停 30 分钟再试,或临时 /etc/init.d/quicklink disable 回退到直连。
性能与资源占用评估
以 x86_64 J4125 软路由为例,单核 AES-NI 开启后,WireGuard 2.0 吞吐约 600–700 Mbps,CPU 占用 25 % 左右;若换为 MT7621 双核 MIPS,加密性能降至 160 Mbps,已覆盖 500 兆宽带。守护脚本 ping 检测一次仅增加 0.3 s 负载,可忽略。
不适用场景与合规边界
- 公司出口带宽 >1 Gbps 且需要专线 SLA,硬路由性能瓶颈明显,应改用 x86 服务器跑软路由或 SD-WAN 方案。
- 当地法规要求日志留存,而快连采用 RAM-Only 服务器,无法提供回溯,跨境企业需自行评估合规风险。
- 共享宿舍网络,开启全局隧道可能导致局域网 Steam 缓存、打印机发现失效,需额外写绕行规则。
最佳实践清单(可直接打勾)
| 检查项 | 判定标准 |
|---|---|
| 固件版本 | ≥22.03,内核 ≥5.10 |
| 剩余空间 | 根分区 ≥15 MB |
| 自启验证 | 重启后 60 s 内 qlclient 进程存在 |
| 看门狗 | 连续 3 次 ping 失败触发重启 |
| 日志策略 | /var/log 挂载到 /tmp,防止写穿闪存 |
故障排查速查表
现象:日志出现
RTNETLINK answers: File exists处置:ql0 接口残留,先
ip link del ql0再restart。
现象:重启后服务未自启
处置:检查
/etc/rc.d/S95quicklink软链接是否存在;若否,重新enable。
FAQ(结构化数据)
开启自启后路由器启动变慢是否正常?
正常。快连需等 WAN 拨号完成,若 PPPoE 耗时 15 s,整体启动时间将顺延。可把 START 序号调到 99 或延后触发,视觉体验会改善。
看门狗频繁重启会影响闪存寿命吗?
脚本仅重启进程,不写固件;日志若放到 /tmp,则对闪存几乎零磨损。可放心长期运行。
如何临时停用自启?
SSH 执行 /etc/init.d/quicklink disable && /etc/init.d/quicklink stop 即可;需要恢复时改回 enable。
结语与下一步
给快连配好 OpenWrt 开机自启与守护脚本,相当于为全屋设备上了“无感加速保险”。按本文模板落地后,建议观察一周晚高峰日志,确认无频繁重启,再把看门狗间隔从 2 分钟放宽到 5 分钟,降低探测开销。若后期节点池调整,只需更新 /etc/quicklink/client.conf,无需再动底层服务,升级维护成本接近零。
下一步,你可以把脚本推到 GitHub 私有仓库,用 Git 备份配置;或者接入 Prometheus exporter,把隧道延迟做成面板,真正让网络质量可视化。祝折腾顺利,稳定在线。


