系统配置

快连如何在Linux系统中配置开机自启并后台守护?

kuailian在Linux下用systemd实现开机自启与守护,含路径、权限、回退与排障全步骤。

快连官方团队
快连 Linux 开机自启, 快连 systemd 服务配置, 快连 rc.local 设置方法, 快连 后台守护 无法启动 怎么办, 快连 多用户环境 自启权限, Linux 快连 自启 最佳实践, 快连 守护进程 日志排查, 如何设置快连自启并后台运行

问题定义:为什么需要开机自启与守护

在服务器或软路由场景,kuailian(Kuailian privacy tool)一旦掉线,所有依赖流量转发的服务都会中断。手动重连既麻烦又不可控,于是“开机自启+崩溃自恢复”成了刚需。Linux 下最稳妥的载体是 systemd,它自带重启策略、日志集中、依赖顺序,比传统 rc.local 更可控。

问题定义:为什么需要开机自启与守护
问题定义:为什么需要开机自启与守护

前置条件与边界

1. 已安装官方 CLI 版 kuailian-cli(截至当前的最新版本)。
2. 系统为 systemd 发行版(Ubuntu 20.04+、Debian 11+、CentOS 8+、Arch 2026.x)。
3. 拥有 sudo 权限,且已登录账号并保存过凭据(~/.kuailian/creds.json)。
4. 不适用于 OpenWrt、Alpine 等非 systemd 系统,后者请改用 rc.local 或 procd。

最短可达路径:10 行配置完成自启

1. 创建 systemd 单元文件

sudo nano /etc/systemd/system/kuailian.service

粘贴以下内容,注意 ExecStart 路径与用户名替换为你的实际值:

[Unit]
Description=Kuailian privacy tool daemon
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
User=kuailian
Group=kuailian
ExecStart=/usr/local/bin/kuailian-cli connect --config /home/kuailian/.kuailian/creds.json
Restart=on-failure
RestartSec=10
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target

2. 重载并启用

sudo systemctl daemon-reload
sudo systemctl enable --now kuailian.service

3. 验证状态

systemctl status kuailian.service --no-pager -l

若看到 Active: active (running) 且日志无密码错误,即成功。

例外与副作用:何时不该用 systemd

1. 容器镜像(Docker、LXC)内若已用 tini 或 s6,重复 init 会产生僵尸进程;此时应将 kuailian-cli 作为前台主进程直接运行。
2. 多用户共享机器且各自拥有独立订阅,systemd 系统级单元会共用同一隧道,导致冲突;解决方案是改用用户级单元(--user)。
3. 磁盘只读型边缘设备(如树莓派 + overlayroot),systemd 重启可能因无法写日志而失败;可临时把 LogsDirectory 指向 tmpfs。

用户级单元:多账号场景的最佳实践

若你与普通用户共用主机,但各自想走不同出口,把单元放到用户命名空间即可:

mkdir -p ~/.config/systemd/user/
cp /etc/systemd/system/kuailian.service ~/.config/systemd/user/
systemctl --user daemon-reload
systemctl --user enable --now kuailian.service

注意:用户级单元在服务器重启后不会自动启动,需再执行 loginctl enable-linger 用户名 让 systemd 保留会话。

回退方案:rc.local 兜底

当系统为老旧 CentOS 7 或裁剪版 Linux 缺少 systemd 时,可退回到 rc.local:

  1. 给 /etc/rc.d/rc.local 加可执行权限:chmod +x /etc/rc.d/rc.local
  2. 在文件末尾追加:su - kuailian -c 'nohup /usr/local/bin/kuailian-cli connect >/tmp/kuailian.log 2>&1 &'

缺点:无重启策略,崩溃后需人工介入;日志分散;启动顺序不可控。仅作临时过渡。

守护强度调优:Restart 参数详解

策略值含义适用场景
on-failure非零退出码或信号才重启默认,防止手动 stop 被重启
always无论退出码均重启弱网频繁闪断,但需配合 StartLimit
on-abnormal信号或看门狗超时对崩溃敏感,对正常退出不重启

经验性观察:若节点凌晨 4 点定时维护,kuailian-cli 会主动 exit 0,此时用 always 会导致高频重启;建议保持 on-failure,并加 StartLimitIntervalSec=300 StartLimitBurst=3 抑制雪崩。

日志观测与告警

1. 实时跟踪

sudo journalctl -fu kuailian.service

2. 失败统计

systemctl show kuailian.service -p NRestarts,RestartUSec

3. 简单邮件告警(可选)

在单元里追加 ExecStopPost=/usr/local/bin/send_alert.sh,脚本内判断退出码非零即发信。send_alert.sh 需自行编写,可用 msmtp 或 curl 调用第三方 API。

3. 简单邮件告警(可选)
3. 简单邮件告警(可选)

故障排查速查表

现象:systemctl start 后秒退,日志报 “permission denied”

原因:kuailian-cli 路径不在 /usr/local/bin,或单元里 User 无读取 creds.json 权限。

验证:执行 namei -l /home/kuailian/.kuailian/creds.json 查看每一层权限。

处置:把 User 改为实际拥有者,或 chmod 600 文件并 chown 对应用户。

现象:重启后隧道未建立,但状态显示 running

原因:network-online.target 在 Wi-Fi 拨号完成前触发,kuailian-cli 找不到路由。

验证:journalctl 里出现 “Network is unreachable”。

处置:单元里加 ExecStartPre=/bin/sleep 10 或使用 systemd-networkd-wait-online。

性能与资源占用

经验性观察:在 1 vCPU/512 MB 的轻量云主机上,kuailian-cli 常驻内存约 18–22 MB;开启 K-UDP 2.0 后,CPU 峰值占 3–5 %(100 Mbit/s 上下行)。若同时开多跳+Tor,内存会涨到 90 MB 左右,需评估 SWAP。

FAQ(使用 FAQPage Schema)

Q1:能否一台机器跑多个 kuailian 实例?

可以,用不同 systemd 实例名及独立 config 目录,并加 --iface kuailian1 指定虚拟网卡即可;注意防火墙需放行对应接口。

Q2:为什么 free -m 显示缓存一直涨?

kuailian-cli 内部 ringbuf 会缓存最近 256 MB 包用于 QoS 重传,属正常行为;内存紧张时内核会自动回收。

Q3:systemd 日志占满 /var/log 怎么办?

SystemMaxUse=200M 到 /etc/systemd/journald.conf,然后重启 systemd-journald 即可限制占用。

适用/不适用场景清单

  • ✅ 软路由、NAS、云主机长期挂机,需要断线自愈。
  • ✅ 个人开发机,每天重启多次,懒得手动连。
  • ❌ 临时调试节点,频繁换区,手动操作反而更快。
  • ❌ 合规要求“隧道必须人工二次认证”的政企内网。

最佳实践 5 条检查表

  1. 单元里永远加 RestartSec≥10,防止高频重连被服务器拉黑。
  2. creds.json 权限 600,避免其他用户扫到订阅令牌。
  3. systemctl cat kuailian.service 确认最终合并项,防止 drop-in 冲突。
  4. 大版本升级前先 systemctl disable kuailian,升级完对比 CLI 参数是否变更,再重新 enable。
  5. 每季度用 journalctl --vacuum-time=30d 清理一次日志,防止 inode 耗尽。

收尾:下一步行动

至此,你已拥有“开机即通、崩溃自起”的 kuailian 守护方案。建议立即在测试机执行一次 sudo systemctl stop kuailian.service && sudo reboot,确认重启后隧道自动恢复;再通过 curl ipinfo.io 校验出口 IP 符合预期。若一切正常,把相同单元推到生产环境,并设置邮件或 Prometheus 告警,真正做到无人值守。

相关标签

自启守护systemdrc.local后台配置

立即下载快连VPN,体验极速安全的网络连接

支持 Windows、Mac、iOS、Android 全平台,一键连接全球50+国家高速节点

免费下载快连VPN