自启配置2026年4月28日阅读时间: 4 分钟

快连Linux客户端如何命令行自启并指定配置文件路径?

快连官方团队
快连VPN 作者
快连Linux客户端如何命令行自启, 快连开机自启指定配置文件路径, systemd配置快连自启动步骤, init.d脚本设置快连自启, 快连CLI参数自定义配置文件, Linux快连自启失败排查, 多用户快连配置文件隔离, 快连Linux后台常驻运行
#自启#systemd#init.d#配置文件#CLI#运维

功能定位:为什么需要命令行自启

在服务器、NAS、树莓派等无人值守场景,快连Linux客户端必须随系统启动并立即读入指定配置,否则重启后流量走裸网,轻则爬虫任务失败,重则账号被风控。图形界面“开机自启”开关仅对桌面会话生效,SSH 重启后依旧掉线;而 systemd 能在多用户.target阶段就拉起进程,比传统 init.d 更稳、日志更集中,也方便配合 Ansible 批量下发。

功能定位:为什么需要命令行自启
功能定位:为什么需要命令行自启

版本演进:CLI 接口的变迁

截至当前的最新版本(2026-03 发布的 8.4.2),快连把 CLI 独立成 kuailian-cli,不再依赖 Electron 壳;配置文件也改为纯 JSON,路径可自定义。早期 7.x 版需要把 .conf 硬塞到 /opt/kuailian/config/,升级时会被覆盖;8.x 支持 --config 参数后,才彻底解耦,适合容器与多实例。

决策树:init.d 还是 systemd?

经验性观察:Ubuntu 20.04 之后,systemd 已成默认;若系统仍是 CentOS 6 或 Debian 7,则只能退回到 init.d。以下三条即可判断:

  1. ls /run/systemd/system 存在 → 用 systemd;
  2. 需要 cgroups 限流 → systemd 更原生;
  3. 打包给未知客户 → 写两套,优先 systemd。

前置准备:拿到 CLI 与配置文件

1. 安装:在官网下载 kuailian-cli_8.4.2_linux_amd64.debdpkg -i 即可;或解压缩包到 /usr/local/bin
2. 登录一次图形界面,把节点、协议、分流规则调好,点“导出 JSON”存为 /etc/kuailian/prod.json——此文件含加密 token,后续 CLI 直接复用,无需再次扫码。

提示:JSON 里 "auto_connect": true 决定启动后是否立即连节点;若机器重启频繁,可设为 false,配合 systemd 的 ExecStartPost 自行决定时机。

systemd 方案:最小可用单元

创建 /etc/systemd/system/kuailian.service

[Unit]
Description=Kuailian CLI with custom config
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
ExecStart=/usr/local/bin/kuailian-cli --config /etc/kuailian/prod.json
Restart=on-failure
RestartSec=10
StandardOutput=journal
StandardError=journal
# 非 root 用户可单独建 kuailian 账号
User=kuailian
Group=kuailian

[Install]
WantedBy=multi-user.target

加载与验证

  1. systemctl daemon-reload
  2. systemctl enable --now kuailian
  3. systemctl status kuailian 看 Active: active
  4. journalctl -u kuailian -f 若出现 Connected to HK-S01 即成功。

init.d 回退方案:老系统兼容

对于 SysV 系统,把下列脚本存为 /etc/init.d/kuailian,给予 755 权限:

#!/bin/sh
### BEGIN INIT INFO
# Provides:          kuailian
# Required-Start:    $network $remote_fs
# Required-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Kuailian CLI
### END INIT INFO

case "$1" in
  start)
    /usr/local/bin/kuailian-cli --config /etc/kuailian/prod.json &
    ;;
  stop)
    pkill -f kuailian-cli
    ;;
  *)
    echo "Usage: $0 {start|stop}"
    exit 1
esac

随后 chkconfig kuailian on(CentOS)或 update-rc.d kuailian defaults(Debian)。

多实例与端口隔离

一台机器需要“大陆出口”与“海外出口”双实例时,复制 JSON,把 local_socks_port 改成 1080/1081,再建 [email protected] 模板:

[Service]
ExecStart=/usr/local/bin/kuailian-cli --config /etc/kuailian/%i.json

启用:systemctl enable --now kuailian@海外,日志互不影响。

多实例与端口隔离
多实例与端口隔离

故障排查:启动失败常见三例

现象journalctl 关键词处置
秒级崩溃token expiredJSON 里 refresh_token 失效,回图形端重新导出
权限拒绝Permission deniedkuailian 账号无 /etc/kuailian 读取权,chmod 640 + chown
网络未就绪Name resolution failedsystemd 缺 Wants=network-online.target,补完重载

验证与观测:用 watchdog 保活

经验性观察:凌晨 3-5 点部分 IDC 会触发虚拟网卡重置,进程活着但流量黑洞。可在单元里追加:

WatchdogSec=60
ExecStartPost=/bin/bash -c 'until ip link show tun0; do sleep 5; done'

若 60 s 内未收到 systemd-notify,systemd 自动重启服务。

何时不该用命令行自启

  • 电脑双系统,重启后默认进 Windows → Linux 并未启动,自启形同虚设;
  • 笔记本挂起/唤醒频繁,systemd 无法感知,建议用桌面 autostart;
  • 合规要求“必须人机交互二次确认”的政企内网,CLI 保存凭证可能违规。

最佳实践 5 条检查表

  1. JSON 导出后立即做 cp prod.json prod.json.bak,防止图形端误操作覆盖;
  2. kuailian 账号设 /usr/sbin/nologin,禁止 SSH 登录;
  3. 给单元加 CPUQuota=50%,避免节点测速时打满小核 NAS;
  4. 每月把 /var/log/journal 打包归档,方便回溯闪退;
  5. 升级前先在测试机执行 systemctl stop kuailian,确认新版 CLI 仍支持旧 JSON 字段。

注意:本文路径以 Debian 系为例,RedHat 系把 /usr/local/bin 换成 /opt/kuailian/bin 即可;具体路径因安装方式而异,请以实际为准。

FAQ:命令行自启高频疑问

Q1:能否把 JSON 放在用户家目录?

可以,但 systemd 单元里必须写绝对路径且保证 User= 有读取权限;家目录加密时启动阶段尚未解密,会读失败,建议放 /etc。

Q2:stop 后 tun0 残留怎么办?

在 ExecStop 加 ip link delete tun0;若仍失败,把 KillMode=mixed 让 systemd 发 SIGKILL。

Q3:如何切换节点但不重启服务?

kuailian-cli 支持 SIGUSR1 重载配置;发送 kill -USR1 $(cat /run/kuailian.pid) 即可,JSON 里节点 ID 变更后瞬时生效。

Q4:日志太大能否关闭?

在单元里加 StandardOutput=null 即丢弃,但排障时黑盒;更推荐用 journalctl --vacuum-size=100M 定期裁剪。

Q5:同一账号 10 台上限会算这台吗?

会。CLI 与图形端共用设备计数,若 NAS 长期在线,建议把不常用的手机先退出,避免新设备被踢。

收尾:下一步行动

读完本文,你已知道快连Linux客户端为何、何时以及如何用 systemd 实现命令行自启并指定配置文件路径。现在就把导出的 JSON 放到 /etc,复制上面的单元文件,执行一次 daemon-reload,重启机器——journalctl 出现 Connected 即代表成功。后续升级客户端前,先在测试环境确认 JSON 字段兼容,再推到生产,便可长期享受“重启即联网”的无人值守体验。

关键词

快连Linux客户端如何命令行自启快连开机自启指定配置文件路径systemd配置快连自启动步骤init.d脚本设置快连自启快连CLI参数自定义配置文件Linux快连自启失败排查多用户快连配置文件隔离快连Linux后台常驻运行