
快连Linux客户端如何启用全局代理?
功能定位与版本脉络
在快连的 Linux 产品线里,“全局代理”并非独立开关,而是网络栈接管模式的统称。2025 年 Q4 引入 WireGuard-Quic 混合隧道后,官方把原先“系统代理”与“TUN 驱动”两条技术路线合并为“全局转发”统一入口。截至 5.7.2 最新版,Linux 客户端提供 GUI 与 CLI 两种形态:AppImage 包带托盘图标,deb/rpm 包默认纯后台,需手动装 kl-cli 才能呼出命令行。开发机、NAS、无头服务器三类场景,官方分别推荐:桌面环境用 GUI、远程 SSH 用 CLI、Docker/路由器用 --headless 参数。
启用前的两项自检
1. 内核版本与权限
快连 TUN 模块依赖 Linux ≥ 4.14。若仍在 Debian 10 或 CentOS 7,先升级内核并加载 tun 设备:
sudo modprobe tun && lsmod | grep tun
返回非空即可。GUI 模式还需 PolicyKit 授权,首次点击“全局代理”会弹出身份验证;若通过远程 X11 转发,请在 /etc/PolicyKit-1/localauthority/ 给本地用户添加 org.kuailian.tun.manage 规则,否则按钮呈灰色。
2. 已有路由表冲突
经验性观察:同时运行 Docker、qBittorrent 或局域网静态路由时,0.0.0.0/1 与 128.0.0.0/1 两条高优先级路由可能把流量拉回本地,导致“全局”失效。验证办法:
ip rule show | grep 3276
若看到优先级 32765/32766 即代表快连已注入策略路由;再执行
ip route | grep default
若仍出现原网关,说明存在冲突。解决思路:先让快连启动,再追加 Docker 等自定义路由,或直接在“设置-路由模式”里勾选“追加而非覆盖”。
GUI 路径:四步完成全局接管
- 下载 AppImage 后赋予可执行权限:
chmod +x Kuailian-5.7.2-x86_64.AppImage - 双击运行,托盘图标右键→“网络模式”→切换为“全局代理(TUN)”
- 首次切换会弹出授权框,输入 sudo 密码;成功后图标出现绿色锁
- 在“节点”面板任选延迟最低的城市,点击“连接”,日志页显示
[TUN] routing table injected即代表全局生效
示例:在 Ubuntu 24.04 笔记本,开发者 A 需把 snap 流量全部走代理。以往用环境变量只能覆盖 http_proxy,导致部分插件下载失败;切到 TUN 全局后,snap refresh 耗时从 90 s 降至 30 s,再未出现“store unreachable”报错。
CLI 路径:无头服务器也够用
对于没有 X11 的 Debian 服务器,官方仓库提供 kuailian-cli 包。安装后先登录:
kl-cli login --token YOUR_TOKEN
随后一条命令即可全局:
kl-cli set mode global && kl-cli connect --node auto
其中 --node auto 会调用 AI 智能选线 3.0;若脚本里想固定城市,可改成 --node SG-05。要后台常驻,加 --daemon,随后用 kl-cli status 查看实时流量。
提示:CLI 不会自动开启 Kill-Switch。若需要掉线即断网,执行 kl-cli set killswitch on,它会在 /var/lib/kuailian/rules.v4 写入 iptables 策略。卸载客户端前务必 kl-cli disconnect && kl-cli set killswitch off,否则可能把 SSH 也封死。
例外与分流:如何不把局域网封死
全局代理默认劫持所有出口,但远程桌面、Samba、打印机等本地流量也需放行。快连在“设置-分流地址”里预置 192.168.0.0/16 与 10.0.0.0/8 两条白名单,GUI 用户直接勾选即可;CLI 用户需编辑 /etc/kuailian/exclude.conf,每行写 CIDR,保存后执行 kl-cli reload 热更新。经验性观察:若在 KVM 虚拟机里跑快连,记得把宿主机 virbr0 网段(通常 192.168.122.0/24)也加进去,否则 apt 更新会超时。
版本差异:5.6→5.7 迁移注意
5.6 及更早版本把“全局”拆成“TUN 模式”与“SOCKS5 全局”两个开关,导致不少用户误选后者,结果 DNS 仍走系统,出现 Netflix 地域未切换的假象。5.7 起官方合并为“全局代理”单按钮,并在后台自动把 53 端口重定向到 WireGuard 内嵌 DNSPod,防止泄漏。若从 5.6 升级,首次启动会弹迁移向导,建议保留旧配置但手动关闭“SOCKS5 全局”,否则两条路径并存会拖慢 30 % 吞吐。CLI 用户可用 kl-cli migrate --from-56 一键清理冗余路由。
验证与观测:确认真的“全局”
- DNS 测试:
dig whoami.akamai.net +short返回的 IP 应与所选节点同城 - IPv6 泄露:
curl -6 https://ifconfig.co若仍显示本地地址,说明 AAAA 记录没走隧道,需在“设置-IPv6”里选“强制转发” - 路由表:
ip route show table 51888,51888 是快连自定义表,若能看到default dev kl-tun即注入成功 - 进程级验证:开新终端执行
curl --interface kl-tun https://ipinfo.io与不加--interface对比,出口应一致
故障排查:三现象对照表
| 现象 | 可能原因 | 验证步骤 | 处置 |
|---|---|---|---|
| 启动后无法上网 | 原路由被覆盖但节点未握手 | kl-cli status 看 last error | 断开,换节点,再勾“追加而非覆盖” |
| SSH 卡顿/断 | Kill-Switch 把 22 端口也封 | tail /var/log/kl-cli.log | 把本机 SSH 端口加入 exclude.conf |
| Docker pull 超时 | 容器走默认网关,未继承策略路由 | docker exec alpine ip r | 给 daemon.json 加 "iptables":false |
适用/不适用场景清单
- 适合:需要把整台 Linux 托管到海外出口的场景,如外贸爬虫、海外 CI 节点、远程浏览器池
- 不适合:对局域网共享有强需求的家用 NAS,全局会导致 Samba/TimeMachine 找不到入口;此时应改用“分应用代理”或“端口级 SOCKS5”
- 合规边界:若主机位于国内 IDC,需先确认机房是否允许海外隧道,部分云厂商会把 GRE/UDP 443 加入封禁模板
最佳实践速查表
- 服务器先升级内核→加载 tun→再装客户端,避免缺失 /dev/net/tun
- 首次使用 CLI 时,用
--dry-run预览路由变更,确认无致命冲突 - 把
kl-cli status加入 crontab 每 5 分钟检测,断线即短信提醒,防止静默漏网 - 若跑 K8s,给 Pod 加
ipRule: 51888注解,让集群内部流量也继承快连策略路由 - 升级前用
kl-cli export > backup.yml导出节点与分流名单,回滚时一键导入
FAQ(常见问题)
全局代理后,为什么 ping 8.8.8.8 延迟反而更高?
快连默认把 ICMP 也走隧道,而节点在海外,物理距离增加属正常。可在“设置-高级”里把“ICMP 直连”开关打开,让 ping 走本地出口,不影响 TCP/UDP 转发。
CLI 模式如何彻底卸载并清理路由?
先执行 kl-cli disconnect && kl-cli set killswitch off,再用包管理器删除 kuailian-cli,最后手动清理 /var/lib/kuailian/ 与 /etc/kuailian/ 目录即可。
AppImage 无法自启,如何写 systemd?
在 ~/.config/systemd/user/kuailian.service 里写 ExecStart=/opt/Kuailian.AppImage --with-tray,并加 Restart=on-failure。注意 AppImage 需放在可持久路径,避免自动更新后文件名变动导致失效。
收尾:下一步行动
至此,你已能在 Linux 桌面、服务器乃至容器里用 GUI 或 CLI 一键启用快连全局代理,也掌握了回退、分流与 Kill-Switch 的边界。建议先在测试机完整演练卸载与重装,确认生产环境无网络锁死风险;随后把 kl-cli status 监控接入 Prometheus,真正让“全局”跑在可视范围内。未来版本若追加 IPv6 全段转发或 eBPF 级分流,官方公告会在 /usr/share/doc/kuailian/CHANGELOG 第一时间同步,保持关注即可。