自启配置

如何在Ubuntu开机时让快连自动启动并默认连接指定节点?

作者:快连技术团队
自启systemd节点
快连 Ubuntu 开机自启, 如何设置快连默认节点, Ubuntu systemd 快连服务, 快连 指定节点 自动连接, 快连 未自启 排查步骤, Ubuntu 20.04 快连 自启动, 批量配置 快连 开机启动, kuailian 默认节点 设置

功能定位:为什么要在开机时自动连节点

在服务器、下载机或无人值守的 Ubuntu 盒子上,每次手动点开快连再选节点,既打断脚本,也浪费带宽。把「快连 privacy tool 开机自启+默认节点」写成 systemd 服务,可让系统在登录前就完成握手,后续定时任务、Docker 容器、rsync 备份都能直接走代理,无需额外认证窗口。

核心关键词「快连 privacy tool 开机自启」只需一次配置,后续升级客户端也不会被覆盖;但边界在于:快连官方并未提供 CLI 版二进制,所有命令实际驱动的是 GUI 客户端的 --background 模式,因此需要图形会话(X11/Wayland)可用。若你的 Ubuntu 只跑纯终端,需先装轻量桌面或改用官方提供的「企业控制台 API」——后者超出本文范围,将在末段给出跳转提示。

功能定位:为什么要在开机时自动连节点
功能定位:为什么要在开机时自动连节点

前置检查:版本、权限与桌面环境

1. 客户端版本

截至当前的最新版本(v11.4.x)已支持 --auto-connect-node 参数;若你停留在 10.x,请先通过官网 Deb 包升级,避免找不到选项。

2. 系统会话类型

systemd 用户级服务依赖 $XDG_RUNTIME_DIR,因此必须启用自动登录(Settings → Users → Automatic Login)。否则 GDM 停在登录界面,图形会话未就绪,服务会无限重启直至耗尽 systemd 重启次数。

3. 节点别名获取

打开客户端 → 节点列表 → 右键目标节点 → Copy ID,得到形如 jp-tokyo-05.wg 的字符串,下文统称 NODE_ID。若节点日后被官方下线,服务会启动失败,需手动更新。

方案对比:systemd 用户单元 vs 全局单元

维度 --user 级 systemd /etc/systemd/system 全局
权限 无需 root,安全 需 sudo,易误操作
图形变量 自动继承 DISPLAY & WAYLAND_DISPLAY 需手动 export,易空指针
多用户 每用户独立,互不干扰 单例,切换用户冲突
日志查看 journalctl --user -u kuailian journalctl -u kuailian

结论:桌面版 Ubuntu 推荐「用户级 systemd」;只有无图形、纯 API 调用场景才考虑全局单元。

操作路径:五步完成自启配置

Step 1 建立 systemd 用户目录

mkdir -p ~/.config/systemd/user

Step 2 编写 kuailian.service

nano ~/.config/systemd/user/kuailian.service

填入以下内容,把 NODE_ID 替换成刚才复制的节点 ID:

[Unit]
Description=Kuailian privacy tool Auto Connect
After=graphical-session.target

[Service]
Type=simple
ExecStart=/usr/bin/kuailian --background --auto-connect-node=NODE_ID
Restart=on-failure
RestartSec=10

[Install]
WantedBy=default.target

Step 3 重载并设置开机自启

systemctl --user daemon-reload
systemctl --user enable kuailian.service

Step 4 立即验证

systemctl --user start kuailian.service
journalctl --user -f -u kuailian

看到 Connected to NODE_ID 即成功;若提示 Display not found,说明图形会话尚未就绪,请确认已启用自动登录并重启一次。

Step 5 回退与关闭

systemctl --user stop kuailian.service
systemctl --user disable kuailian.service

即可恢复手动模式,无需卸载客户端。

例外与取舍:何时不该用本方案

  • 多用户共享主机:用户级服务只能随单用户会话启动,若频繁切换帐户,另一用户会掉线。
  • 纯 Wayland 且启用 NVIDIA 闭源驱动:经验性观察,WAYLAND_DISPLAY 变量偶尔延迟注入,服务可能启动早于合成器,导致客户端崩溃;缓解办法是把 After= 改为 gnome-session.target 并加 ExecStartPre=/bin/sleep 5
  • 节点每日轮换:若你依赖「AI 选路 2.0」的随机入口,每 10 分钟换 IP,硬编码 NODE_ID 会违背初衷;此时应改用企业控制台 API 的 /connect/best 端点,用 cron 定时调用,而非 systemd。
例外与取舍:何时不该用本方案
例外与取舍:何时不该用本方案

性能观测:如何确认代理已生效

1. 终端执行 curl -4 ip.sb,返回 IP 应与所选节点一致;
2. 持续 ping 1.1.1.1,观察延迟是否稳定在预期区间(经验性观察:日本节点 30–50 ms,美国西岸 150–180 ms);
3. 查看路由表:ip rule show table 51820 若存在 kuailian 添加的 fwmark 即表明分流已生效。

提示

若你运行 Docker,默认不会继承主机路由,需在 daemon.json 加 "iptables": false 或手动把容器流量引入 kuailian 创建的 tun0。

与第三方工具协同:rsync 走代理示例

场景:每天 04:00 把本地视频素材同步到境外存储。无需改动全局环境,只需在 systemd timer 里加 Environment="ALL_PROXY=socks5://127.0.0.1:1080",指向 kuailian 本地 SOCKS5 端口(可在客户端设置 → 本地代理查看,默认 1080)。这样即使 kuailian 后续切换节点,rsync 也无需重启。

故障排查:服务启动但无法联网

  1. 现象:journalctl 显示 Connected,但 curl 仍返回本地 IP。
    原因:DNS 缓存未刷新;处置:sudo systemd-resolve --flush-caches
  2. 现象:启动后 30 秒自动断开。
    原因:客户端检测到「设备数超限」;处置:登录官网控制台踢出旧设备,或升级套餐。
  3. 现象:重启系统后服务未启动。
    原因:自动登录被关闭;处置:重新勾选 Settings → Users → Automatic Login。

适用/不适用场景清单

场景 推荐 不推荐
家用 NAS 24h 下载 ✔ 节点固定、带宽高
多人共用图形工作站 ✘ 切换用户会掉线
CI/CD 容器云 ✘ 无图形会话,应走 API
海外短视频批量上传 ✔ 配合 rsync timer 自动分流

最佳实践 6 条检查表

  1. 节点 ID 每季度复核一次,防止官方下线导致服务失败。
  2. 启用自动登录,并在 BIOS 打开断电自启,保证机房停电后无人值守恢复。
  3. RestartSec 设为 ≥10 s,避免客户端崩溃时高频重试被服务器限流。
  4. 日志持久化:journalctl --user --vacuum-size=100M 防止长期运行把系统盘打满。
  5. 若同时跑 Docker,用 --network=host 或显式代理变量,避免流量绕路。
  6. 每月第一天免费试用 24 h,可用于测试备用节点,再决定是否修改 NODE_ID

FAQ(使用 FAQPage Schema)

快连客户端升级后服务会失效吗?

不会。升级 Deb 包仅替换 /usr/bin/kuailian,systemd 单元路径不变;但升级后请重启一次服务以加载新二进制。

如何临时切换节点但不破坏自启配置?

在 GUI 手动点选新节点即可,systemd 会在下次重启时重新读取默认 NODE_ID;若需永久更换,只需编辑单元文件并 systemctl --user restart kuailian。

无桌面纯终端能否使用本教程?

不能。--background 仍需图形会话。纯终端请改用企业控制台 API 或 WireGuard 原生配置,官方文档有独立章节。

收尾与下一步

完成上述五步后,Ubuntu 每次通电都会静默连上你指定的快连节点,crontab、Docker、rsync 无需再手动翻墙。建议立即验证 curl 出口 IP,确认与节点一致;随后把本文的「检查表」加入个人 Wiki,三个月复查一次节点可用性即可。若后续想实现「多节点故障转移」或「纯命令行无图形部署」,可再深入官方企业控制台 API,届时把 systemd 调用换成自定义脚本即可平滑迁移。