
快连如何在Linux命令行配置全局代理并开机自启?
功能定位与版本演进
2026-03-27 发布的 v9.8.1「春季加速」版把 Linux 客户端拆成两条官方支线:CLI 版 quicklink-cli 与 WireGuard 纯净配置文件。前者自带 KL-Obfuscator 抗 DPI 插件,后者留给 systemd-networkd 或 NetworkManager 进阶玩家。本文聚焦 CLI 版最常被问的场景:如何让整台服务器(含 Docker、cron、后台服务)在重启后零人工干预走进加速通道,并留好一键逃生按钮。
经验性观察:2026 年 4 月社区镜像站统计,Debian 12 / Ubuntu 24.04 LTS 占快连 Linux 安装量 72%,CentOS Stream 9 仅 11%。下文以 systemd 254+ 为前提,给出「一条命令安装→生成配置→开机自启」最短路径,并单独备注 SysVinit 折中方案。
安装:一条命令拉取官方仓库
Debian/Ubuntu 系
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/quicklink.gpg] https://repo.quicklinkprivacy tool.com/linux stable main" | sudo tee /etc/apt/sources.list.d/quicklink.list
sudo apt update && sudo apt install quicklink-cli
装完执行 quicklink-cli version,应出现「QuickLink CLI v9.8.1」。若提示「unauthorized binary」,说明 GPG 密钥未写入,重跑第一行即可。
RHEL/CentOS/Fedora 系
sudo tee /etc/yum.repos.d/quicklink.repo <
name=QuickLink Linux Repo
baseurl=https://repo.quicklinkprivacy tool.com/linux/rhel\$releasever
enabled=1
gpgcheck=1
EOF
sudo dnf install quicklink-cli
Arch 用户仓库(AUR)
提示:官方仓库比社区 tar 包延迟约 6 小时,若急需体验 QUIC-Turbo,可手动下载.deb后dpkg -i安装,再apt-mark hold quicklink-cli锁定版本。
首次登录与令牌缓存
快连使用订阅令牌(Subscribe-Token)而非账号密码,避免 CI 机器留明文。登录命令:
令牌在 Windows/macOS 客户端「设置→账号→导出 CLI 令牌」获取,有效期 365 天。成功后会写入 ~/.config/quicklink/credential.json;systemd 服务会读此文件,请确保运行用户与登录用户一致(默认 root)。
生成「全局代理」配置文件
CLI 提供两种模板:tun(虚拟网卡接管全部流量)与 tproxy(iptables 透明代理)。tun 对容器、Snap、Flatpak 更友好,下文以 tun 为例。
解释:显式指定 QUIC-Turbo 可在高丢包校园网再降约 20 ms;开启 IPv6 防止纯 IPv6 的 apt 源(如 http://deb.debian.org)被漏掉;DNS 写死 8.8.8.8 与 1.1.1.1 可跳过本地运营商污染,同时让 systemd-resolved 进入独占模式。
手工启动验证
看到「All tunnels up, CTRL-C to stop」即虚拟网卡 ql0 已拉起。另开一屏执行
curl -6 ip.sb
返回的 IPv4/IPv6 应属于快连出口段,且 AS 号与官网公示一致。若仍显示本地地址,八成是策略路由未生效,检查 ip rule 是否多出 fwmark 51820 lookup 51820 这条。
编写 systemd 服务:开机自启核心
官方未自带 unit,但 CLI 支持 --daemon 参数,可前台转后台并写 pidfile。我们只需封装进 systemd:
Description=QuickLink Global Proxy
After=network-online.target
Wants=network-online.target
[Service]
Type=forking
PIDFile=/run/quicklink.pid
ExecStart=/usr/bin/quicklink-cli connect -c /etc/quicklink/global.json --daemon --pidfile /run/quicklink.pid
ExecReload=/bin/kill -USR1 \$MAINPID
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
EOF
加载并启动:
sudo systemctl enable --now quicklink.service
提示:若希望「断网就自杀,网络恢复再重连」,可把Restart=on-failure改成Restart=always,并加StartLimitInterval=300防止高频重启。
逃生按钮:如何无损回退
配置错误导致 SSH 失联只能请朋友进控制台急救。为避免悲剧,预写「停机 unit」:
Description=Emergency QuickLink Kill Switch
After=network-online.target
[Service]
Type=oneshot
ExecStart=/usr/bin/systemctl stop quicklink.service
ExecStart=/usr/bin/ip link delete ql0
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
EOF
默认 disabled,急需时通过云厂商 VNC 登录,执行 systemctl start quicklink-stop.service 即可瞬间断隧,恢复本地网络。
与 Docker 共存:别让容器绕路
Docker 启动时会自建链,容器流量默认直连。要让容器也走 ql0,可在 daemon.json 加一行:
随后手动把 docker0 桥塞进 ql0 下游;图省事可在 unit 里加 ExecStartPost=/usr/bin/docker restart $(docker ps -q),隧洞拉起后自动重启容器,使其获得新路由表。
SysVinit 旧系统折中方案
仍在 CentOS 6 或 Debian 8 的机器,可写 /etc/init.d/quicklink:
### BEGIN INIT INFO
# Provides: quicklink
# Required-Start: $network
# Required-Stop: $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
### END INIT INFO
PIDFILE=/var/run/quicklink.pid
CONFIG=/etc/quicklink/global.json
case "$1" in
start)
/usr/bin/quicklink-cli connect -c $CONFIG --daemon --pidfile $PIDFILE
;;
stop)
kill $(cat $PIDFILE)
ip link delete ql0
;;
*)
echo "Usage: $0 {start|stop}"; exit 1
esac
赋权 chmod +x 后 chkconfig quicklink on 即可。缺点是无法依赖 network-online,若网卡晚于脚本启动,第一次可能重试失败;quicklink-cli 内置 30 秒等待,经验性观察成功率仍在 95% 以上。
性能调优:让 CPU 别再狂飙
QUIC-Turbo 默认线程数 = CPU 核心数。1 vCPU 的小鸡可手动降线程:
若服务器本身提供 Web 服务,建议把 443/80 端口排除在隧洞外,防止回源环路:
警告:bypass 规则写错会导致流量直连,合规审计会出现「境外 IP 未走加密通道」记录。调优前先在测试机验证 ip route get 8.8.8.8 是否仍指向 ql0。
日志与观测:把黑盒变灰
systemd 自带 journal,但 quicklink-cli 默认级别为 notice,看不到节点跳变。可改环境变量:
sudo systemctl restart quicklink.service
随后 journalctl -u quicklink -f 可实时看到「switching to faster node: Frankfurt-IA-01」。若用 Grafana,可把日志经 promtail 推到 Loki,配合 node_exporter 的 ql0 接口流量,绘制「出口延迟 vs 本地 CPU」联动图。
不适用场景清单
- 内核 < 3.10,缺少 TUN 驱动,需自行编译,维护成本高于换机。
- 已运行 strongSwan/Openprivacy tool 的场景,双方都会改写主路由表,需手动调整 metric。
- 需要固定入口 IP 做反向解析的邮件服务器,快连出口为动态 NAT,PTR 记录不可控。
- 金融合规要求「境内/境外流量物理隔离」的机房,ql0 虚拟网卡仍被视为境外链路。
最佳实践 8 条速查表
- 安装前先验证 GPG 密钥指纹,防止 CI 投毒。
- 令牌文件权限 600,属主与 systemd 服务用户一致。
- tun 模式优先,tproxy 留给需要保留本地源地址的反向代理。
- unit 文件必须写
After=network-online.target,否则重启后 30% 概率起不来。 - 逃生脚本预置,云厂商控制台也能一键断隧。
- Docker 想走隧洞,要么关 Docker 的 iptables,要么把容器网段塞进 ql0。
- 出口合规审计,每月跑一次
ipset list bypass确认无漏网之鱼。 - 升级前先在测试机跑
quicklink-cli config test,通过再 prod。
FAQ(使用 FAQPage Schema)
启动后 SSH 延迟变高怎么办?
在配置里把 22 端口加进 bypass-route,或单独写一条 ip rule 让来源端口 22 走主路由表。
journal 提示 "Quantum hybrid handshake fail" 如何消除?
这是实验性 QRWG 开关与浏览器 TLS 1.3 kyber 扩展冲突,关闭 Quantum 实验室开关或升级 Chrome 到 126+ 即可。
能否一台机器多配置,按进程分流?
可以,CLI 支持 --mark 参数配合 cgroup,但需自行写 nftables 规则,官方称将在「后续版本」提供样例 unit。
systemd 状态是 active,但 curl 依然显示本地 IP?
检查是否同时启用 NetworkManager,它可能覆写默认路由;把 ql0 设成最高优先级 ip route add default dev ql0 metric 50。
升级后 unit 启动失败,提示找不到新参数?
新版若弃用旧参数,需重新生成配置:先 quicklink-cli config migrate,再 systemctl daemon-reload。
收尾与下一步
至此,「快连 Linux 全局代理 + systemd 开机自启」最短闭环已跑通:官方仓库安装→令牌登录→tun 配置→unit 封装→逃生脚本。按最佳实践 8 条例行检查,即可在服务器重启、节点故障、版本升级时保持无人值守的加速体验。
下一步,可把 unit 文件推到 GitLab CI,用 Ansible 批量部署;或在测试环境打开 QRWG 量子安全扩展,验证握手延迟与 CPU 占用的平衡点。牢记「先验证再生产」,快连 CLI 会成为你跨境管道里稳定而透明的一段。