快连在Linux终端如何配置全局代理并开机生效?

快连官方团队2026/3/24Linux配置
快连 Linux 全局代理 如何配置, Linux 终端 代理 环境变量 设置, 快连 systemd 服务 开机生效 方法, Linux 找不到代理变量 怎么排查, Debian CentOS 快连 代理 区别, 企业内网 Linux 代理 最佳实践, export https_proxy 与 systemd 哪个更适合

为什么要在Linux终端做“全局代理”

在服务器、CI 节点或本地开发机里,kuailian(Kuailian privacy tool)的图形客户端往往装不上,也不方便常驻桌面。把代理能力下沉到终端层,可让curlgitdocker pullaptgo get 等命令默认走海外出口,无需逐一设置 HTTP/SOCKS 变量。核心关键词“kuailian 全局代理”一次到位,后续所有脚本、定时任务、系统服务开箱即用。

2026-02 发布的 7.8.0 客户端虽然主打 AI 智能节点,但官方依旧保留了命令行守护进程qlcli),支持 WireGuard 2.0、V2Ray+TLS、Trojan-Go 等协议。本文基于该版本撰写,步骤在 Ubuntu 22.04/24.04、Debian 12、CentOS Stream 9 上可复现;其他发行版只需替换包管理器命令即可。

为什么要在Linux终端做“全局代理”
为什么要在Linux终端做“全局代理”

前置检查:你的机器真的需要全局代理吗?

适用场景

  • 持续集成服务器需要拉取 GitHub、Docker Hub、npm 海外依赖;
  • 本地 Python/Go 项目每日同步 PyPI、Homebrew、Hugging Face 模型;
  • 游戏私服或直播推流机,要求全机出口 IP 固定为某国机房。

以上场景的共同点是“后台进程无交互”,一旦网络受阻,整条流水线就会卡死。把代理下沉到系统层,可让故障点从 N 个应用收敛到 1 个 TUN 接口,排障也更快。

不适用场景

  • 仅需浏览器翻墙——桌面客户端的“分应用代理”更简单;
  • 多用户共享服务器——全局代理会干扰其他用户路由;
  • 合规要求禁止出境——请先确认跨境数据政策。

安装快连官方 CLI(qlcli)

官方仓库已提供 deb/rpm 源,优先用包管理器,后续可随 apt/yum 自动更新。

Ubuntu / Debian

sudo apt update && sudo apt install -y curl gnupg
curl -fsSL https://repo.kuailian.io/pubkey.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/kuailian.gpg
echo "deb [arch=amd64] https://repo.kuailian.io/stable $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/kuailian.list
sudo apt update && sudo apt install -y qlcli

CentOS / RHEL / Fedora

sudo rpm --import https://repo.kuailian.io/pubkey.gpg
sudo tee /etc/yum.repos.d/kuailian.repo <<'EOF'
[kuailian]
name=Kuailian Stable
baseurl=https://repo.kuailian.io/stable/centos/$releasever/$basearch
enabled=1
gpgcheck=1
EOF
sudo dnf install -y qlcli

提示

若机器在内网,可手动下载 .deb/.rpm 后使用 dpkg -irpm -ivh 安装;依赖仅 glibc ≥ 2.31,无图形库。

首次登录与订阅激活

qlcli 不存储密码,采用订阅 URL(含 JWT)方式激活,与桌面端互通。

qlcli login --subscribe-url="https://api.kuailian.io/sub/xxxx?token=eyJ..."
# 成功会回显剩余天数与家庭账号 ID

登录状态默认写入 /etc/kuailian/subscribe.json,权限 600,root 可读。若需多人共用,可软链到 /usr/local/etc/kuailian/ 并加 kuailian 组。

生成“全局代理”配置模板

qlcli 支持两种全局模式:

  1. TUN 模式(推荐):虚拟网卡接管所有流量,无需改应用设置;
  2. REDIRECT + tproxy:旧内核或容器环境可用,但需手动打 iptables 规则。

以下以 TUN 为例,一条命令生成配置:

sudo qlcli config create \
  --name tun-global \
  --protocol wireguard2 \
  --mode tun \
  --dns-hijack on \
  --route-all on \
  --save /etc/kuailian/tun-global.json

关键字段解释

  • --dns-hijack on:把 53 端口劫持到内置 DNS over QUIC,防止泄漏;
  • --route-all on:生成 0.0.0.0/0, ::/0 路由,等同于“全局”;
  • --protocol wireguard2:若节点被运营商 QoS,可回退到 v2ray-tlstrojan-go

手工微调:排除内网与 SSH 管理口

默认配置会转发所有流量,导致 SSH 端口也被转发,一旦节点抖动即失联。需追加免代理网段

sudo qlcli config edit /etc/kuailian/tun-global.json \
  --bypass-route 192.168.0.0/16,10.0.0.0/8,172.16.0.0/12,127.0.0.0/8

保存后可用 qlcli config test 做语法校验,避免开机因 JSON 错误而失败。

把 qlcli 做成 systemd 服务

官方单元文件已在安装包内,只需启用即可。

sudo systemctl enable --now [email protected]
# 服务名中的 @tun-global 对应配置文件前缀

systemd 会在网络就绪后(After=network-online.target)启动 qlcli,失败自动重试 5 次。日志查看:

sudo journalctl -u qlcli@tun-global -f

警告

若主机启用 netplan + NetworkManager-wait-online,首次开机可能延迟 30 秒才拉起 TUN,属经验性观察;如无法接受,可把 qlcli.serviceWants=network-online.target 改为 Wants=network.target 并自测。

验证是否“全局”生效

1. 出口 IP 检测

curl -4 https://api.myip.com
# 应回显 Kuailian 自有段,例如 103.75.**.**

2. DNS 是否泄漏

dig whoami.ds.akahelp.net +short
# 若返回 0.0.0.0 或 127.0.0.1 即表示被劫持到本地,无泄漏

3. 路由表确认

ip route | grep default
# 应指向 kuailian0 接口,而非 eth0

常见分支:只让特定用户走代理

若服务器有多用户,可用 Linux Network Namespace 隔离:

sudo ip netns add privacy toolns
sudo qlcli config create --name ns-privacy tool --mode tun --netns privacy toolns --save /etc/kuailian/ns-privacy tool.json
sudo systemctl enable qlcli@privacy toolns-ns-privacy tool

之后让指定用户进命名空间:

sudo -u ci-runner ip netns exec privacy toolns su - ci-runner

该方案不会污染主路由,适合共享 Jenkins、GitLab Runner。

常见分支:只让特定用户走代理
常见分支:只让特定用户走代理

回退与故障排查

现象:systemd 启动失败,日志提示 "TUN device exists"

原因:上次异常退出未清理 kuailian0。处置:

sudo ip link del kuailian0
sudo systemctl restart qlcli@tun-global

现象:curl 能通,docker pull 依旧超时

原因:Docker 默认绕过主机路由表。解决:

  1. /etc/docker/daemon.json"iptables": false,强制 Docker 继承主机路由;
  2. 或给 Docker 建单独网络命名空间,再挂 kuailian0。

现象:晚高峰丢包 > 3 %

经验性观察:WireGuard 2.0 UDP 被限速。可回退协议:

sudo qlcli config edit /etc/kuailian/tun-global.json --protocol v2ray-tls

切换后需重启服务,延迟可能增加 10–20 ms,但稳定性提升。

性能与资源占用

在 1 vCPU / 1 GB 的 KVM 实例上,TUN 模式空载 CPU 占用约 1–2 %;单线程 iperf3 测速可见 600–800 Mbps(因地区而异)。若开启 5 跳级联,CPU 翻倍,延迟叠加 30–50 ms,仅建议高匿名场景使用。

FAQ(FAQPage Schema)

开机启动顺序太晚,导致定时任务失败怎么办?

qlcli.serviceWantedBy=multi-user.target 改成 network-online.target,并在 cron 里加 @reboot sleep 30 做延迟,或改用 systemd timer 依赖 qlcli.service

如何限制 qlcli 自身升级时不断网?

启用双实例:主实例跑 TUN,升级前临时启动副实例(SOCKS5 1080),把 HTTP_PROXY 指向本地 1080 完成下载,再滚动重启主实例,全程 2–3 秒。

可以只代理 IPv6 吗?

qlcli 7.8.0 已支持 --ipv6-only 标志,但需节点侧开启 NAT64。配置后 curl -6 可通,curl -4 直连,适合 IPv6 免流场景。

最佳实践清单(Checklist)

  1. 安装前先确认内核 ≥ 5.6,已加载 tun 模块;
  2. 登录后把 subscribe.json 备份到 Git 私有仓库,防重装丢失;
  3. 配置阶段就加 --bypass-route,把管理网段、监控 IP 写死;
  4. systemd 启动失败次数设为 Restart=on-failure:5,防止无限重启被封;
  5. 每月手动跑 qlcli config benchmark,让 AI 节点重新排序,避免老配置积灰。

总结与下一步

通过官方 qlcli 工具,把kuailian做成 systemd 级 TUN 全局代理,可在无桌面 Linux 上实现“开机即出海”。核心步骤:装包→登录→生成 TUN 配置→加白名单→systemd 固化→三项验证。若后续需更细粒度分流,可再叠加 Network Namespace 或 Split Tunneling 3.0 规则。

现在就打开终端,按文中顺序复制命令;首次成功后,用 cron+ curl 做每日自动测速,一旦延迟持续异常便触发 qlcli config protocol 切换,即可实现无人值守的自愈代理。

未来版本预期:官方路线图提到 8.0 将支持 eBPF 级分流,可做到进程级颗粒度而无需 Network Namespace,届时 TUN 模式资源占用有望再降 30 %,值得期待。

#配置#开机自启#终端#全局代理#环境变量