快连kuilian Linux如何开机自启, 快连kuilian systemd服务配置, 快连kuilian自动连接失败怎么办, Linux快连kuilian静默启动脚本, 快连kuilian是否支持无人值守自启, 快连kuilian自启与手动连接区别, 快连kuilian linux自启参数设置, 快连kuilian 开机未自动连接排查步骤
自启配置2026年4月17日作者:快连官方团队

如何在Linux中设置快连kuilian开机自动连接?

开机自启systemd自动连接Linux配置守护进程

功能定位:为什么需要开机自动连接

快连 kuilian 在 Linux 上默认只提供图形面板与 CLI 两种入口,重启后若无人值守,隧道不会自动恢复,远程 SSH、定时同步、Docker 代理等任务随之掉线。把 kuilian 做成 systemd 守护进程,可在系统初始化阶段完成登录、选路、建链,后续断网也能秒级重连,省去人工值守。

与 Windows 的「随系统启动」复选框不同,Linux 发行版启动流程差异大:Debian 系走 systemd,Arch 也走 systemd,老版本 Ubuntu 14 仍用 Upstart。本文以 systemd 为主(占比 >95% 的现用发行版),兼顾 Upstart/OpenRC 的降级思路,并给出「回退到 rc.local」的兜底方案,确保你在云服务器、树莓派、NAS 上都能复用。

功能定位:为什么需要开机自动连接
功能定位:为什么需要开机自动连接

前置条件与边界

1. 软件版本与安装方式

截至当前的最新版本 kuilian 6.3 提供三种 Linux 包:deb、rpm、AppImage。deb/rpm 会在 /usr/bin 下释放 kuilian-cli,AppImage 需自行解包或写 wrapper。以下示例均以 deb 安装路径为准;若你下载 AppImage,把 ExecStart 中的命令换成绝对路径即可。

2. 首次登录必须人工完成

kuilian 的登录态默认加密保存在 ~/.config/kuilian/credential.json,且与设备码绑定。首次启动必须手动输入账号密码,否则守护进程拿不到令牌。建议先在桌面环境或 ssh 会话里运行一次 kuilian-cli login,确认能正常出网,再继续配置自启。

3. 单用户 vs 系统级

systemd 支持 --user 模式,无需 root 即可把 kuilian 注册到用户级 systemd。若你租的是共享云主机,没有 sudo 权限,走用户级即可;若要给全屋设备提供透明代理,建议系统级,这样隧道在切换用户时仍存活。

系统级自启:写一份最小 systemd unit

步骤 1:确认 kuilian-cli 真实路径

which kuilian-cli
# 输出示例:/usr/bin/kuilian-cli

步骤 2:创建 systemd unit 文件

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

填入以下内容(不含注释符号):

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

[Service]
Type=simple
ExecStart=/usr/bin/kuilian-cli daemon --config /etc/kuilian/daemon.json
Restart=on-failure
RestartSec=5
# 以 nobody 用户运行,降低权限
User=nobody
Group=nogroup
# 确保能读写配置目录
ReadWritePaths=/etc/kuilian /var/log/kuilian
# 防止意外访问
ProtectSystem=strict
NoNewPrivileges=true

[Install]
WantedBy=multi-user.target

步骤 3:准备全局配置

sudo mkdir -p /etc/kuilian /var/log/kuilian
sudo kuilian-cli export-config > /etc/kuilian/daemon.json

若 export-config 子命令不存在,可手动把 ~/.config/kuilian 下 *.json 复制到 /etc/kuilian,并改权限 640。

步骤 4:重载并设为开机启动

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

步骤 5:验证

systemctl status kuilian.service
journalctl -u kuilian -f

看到 "Connected to edge node ..." 即成功。若输出 "Unauthorized",说明 credential.json 未复制,需把登录态文件拷到 /etc/kuilian 并 chown nobody:nogroup。

用户级自启:无 root 也能跑

在共享云主机或高校计算节点,你可能没有 sudo。此时把 unit 放到 ~/.config/systemd/user/ 即可:

mkdir -p ~/.config/systemd/user
nano ~/.config/systemd/user/kuilian.service
# 内容同上,但把 User/Group 两行删掉,默认以当前用户运行
systemctl --user daemon-reload
systemctl --user enable --now kuilian.service

经验性观察:用户级 systemd 在 ssh 退出后可能被 logind 杀掉,需额外执行 loginctl enable-linger $USER 让会话常驻。

用户级自启:无 root 也能跑
用户级自启:无 root 也能跑

断网重连与 Kill-Switch 加固

kuilian-cli 6.3 自带 "--kill-switch" 参数,会在隧道掉线时写 nftables 规则,禁止任何非隧道流量。systemd unit 中只需在 ExecStart 尾部追加即可:

ExecStart=/usr/bin/kuilian-cli daemon --kill-switch --config /etc/kuilian/daemon.json

注意:Kill-Switch 依赖 nftables,若系统仍在用 iptables-legacy,需先执行 update-alternatives --set iptables /usr/sbin/iptables-nft,否则规则不生效。

日志轮转与故障排查

1. 日志目录别放 /tmp

kuilian 默认把日志写进 ~/.cache,systemd 模式下建议重定向到 /var/log/kuilian,并配 logrotate:

echo '/var/log/kuilian/*.log {
    daily
    rotate 7
    compress
    delaycompress
    missingok
    notifempty
}' | sudo tee /etc/logrotate.d/kuilian

2. 常见失败码速查

journalctl 关键词可能原因处置
Unauthorizedcredential.json 缺失或权限过宽chmod 600,chown 与运行用户一致
TUN create failed缺少 /dev/net/tun 或 CAP_NET_ADMINsudo setcap cap_net_admin+ep /usr/bin/kuilian-cli
DNS resolve timeout本地 DNS 被污染或 53 端口被占unit 内追加 After=systemd-resolved.service

例外场景:什么时候不该用 systemd

  • 嵌入式 OpenWrt:固件自带 procd,与 systemd 不兼容,应写 procd 脚本。
  • 容器镜像:Docker 本身提供 restart=always,再包一层 systemd 会重复拉活,导致 CPU 空转。
  • 需要频繁换账号:credential.json 每 24 h 刷新一次,若多人共用一台机,systemd 级单配置反而碍事,可改用 --user 模式或容器隔离。

最佳实践 10 条速查表

  1. 首次登录一定在终端里手动完成,确认 credential 文件落地。
  2. unit 文件里至少写 After=network-online.target,避免启动顺序竞态。
  3. 用 nobody 用户跑系统级服务,降低被入侵后的横向移动风险。
  4. Kill-Switch 默认开启,但要检查 nftables 版本,防止规则失效。
  5. 日志独立目录 + logrotate,防止把 /var 打满。
  6. 升级 kuilian 后,先 systemctl daemon-reload,再 restart,否则 unit 缓存旧路径。
  7. 云主机控制台若带「安全组」,记得放行 UDP 443/51820,否则隧道起不来。
  8. 不要把 credential.json 放进 Git,用 600 权限 + gitignore 双重保险。
  9. 若需 IPv6 优先,在 daemon.json 加 "ipv6": true,并确认服务器侧分配地址。
  10. 每月抽查一次 journalctl,若发现 "reconnecting x50" 高频出现,考虑手动换节点。

FAQ(结构化数据)

Q1: 升级系统后 kuilian 无法启动?

内核更新可能移除 /dev/net/tun,需重启后重新检查设备节点,或手动 modprobe tun

Q2: 用户级 systemd 日志在哪里看?

执行 journalctl --user -u kuilian -f,无需 root。

Q3: 如何临时关闭 Kill-Switch?

systemctl edit kuilian 把 Kill-Switch 参数去掉,systemctl restart kuilian 即可;规则会在停止服务时自动清除。

收尾:下一步行动清单

读完本文,你只需 5 分钟就能让 kuilian 在 Linux 开机时自动连网:先手动登录一次 → 复制配置 → 写 systemd unit → enable 并验证日志。建议立即在测试机重演一遍,确认无报错后再上到生产环境;同时把日志轮转和 Kill-Switch 一并配好,真正做到无人值守也安心。未来 kuilian 若推出原生 systemd 模板,可直接 drop-in 覆盖,但眼下这份最小 unit 已足够覆盖 6.x 全系列。

相关文章