代理配置2026年3月31日

快连如何在Linux终端配置代理链实现分流?

作者:快连官方团队
标签:代理链分流Linux终端配置网络
快连 Linux 代理链配置, Linux 终端代理链分流步骤, 如何设置快连代理链规则, 快连代理链无法生效怎么办, Linux 下快连代理链最佳实践, 代理链与单节点代理区别, 快连是否支持终端代理链, Linux 快连分流入站流量

功能定位:为什么要在Linux终端做代理链分流

在服务器、CI容器或本地WSL里,kuailian的图形界面往往不可用,而quicklink-cli(官方开源工具包)却能把多条出口链成“代理链”,再按目标IP、端口甚至进程名动态分流。相比桌面端的“分应用代理”,终端方案更轻、可脚本化,也更容易嵌入Ansible、GitLab Runner等自动化流程。

经验性观察:把香港量子通道作为前置跳,阿根廷节点作为后置跳,可在CLI环境里同时满足“低延迟+冷门IP”两类需求,晚高峰延迟平均下降约40%,且不会触发部分外贸平台的风控。

功能定位:为什么要在Linux终端做代理链分流
功能定位:为什么要在Linux终端做代理链分流

前置条件与版本说明

截至当前的最新版本,quicklink-cli已合并至快连Linux通用安装包,内核要求≥4.14,推荐Debian 11+/Ubuntu 22+/CentOS 8 Stream。若使用WSL2,请确保子系统内核高于5.10,否则quicklink-tun驱动会回退到用户态,性能下降约30%。

提示:安装包体积约28 MB,首次运行会检查libnftnliptables-nft兼容性;如发行版默认使用legacy iptables,需手动切换:update-alternatives --set iptables /usr/sbin/iptables-nft

安装与初始化:一条命令完成注册

1. 自动安装脚本(推荐)

curl -fsSL https://repo.quicklink.io/install.sh | sudo bash
sudo systemctl enable --now quicklink-daemon

脚本会创建/etc/quicklink/配置目录,并写入匿名Token(文件权限600)。若服务器位于内网,可追加--proxy http://corp-proxy:8080让安装脚本本身走公司代理,避免下载阶段被防火墙拦截。

2. 手动deb/rpm包

对于需要 reproducible build 的镜像,可在Dockerfile里引用官方仓库:

echo "deb [signed-by=/usr/share/keyrings/quicklink.gpg] https://repo.quicklink.io/stable $(lsb_release -cs) main" \n  > /etc/apt/sources.list.d/quicklink.list
apt-get update && apt-get install -y quicklink-cli

核心概念:链、跳、规则

  • 链(Chain):多条节点按顺序拼接,流量逐跳加密,类似Tor但由你完全控制。
  • 跳(Hop):单个节点,可以是WireGuard或QuickUDP协议;支持自订MTU、拥塞算法。
  • 规则(Rule):nftables表达式,决定哪类流量进入哪条链;支持ipset、uid、gid、进程路径匹配。

经验性观察:在CI场景里,用uid分流最稳定——GitLab Runner以git用户运行,只需一条uid 1001规则即可把全部Job流量导入代理链,避免Docker bridge网段变化导致规则失效。

步骤1:生成两条最小可用链

# 登录并拉取节点列表
qlink login --token $(cat /etc/quicklink/token)
qlink node list --region HK --protocol WireGuard --latency-asc | head -n 1 > hk.node
qlink node list --region AR --protocol QuickUDP --latency-asc | head -n 1 > ar.node

# 创建链:Chain-A 单跳香港;Chain-B 香港→阿根廷双跳
qlink chain create Chain-A --hop $(cat hk.node)
qlink chain create Chain-B --hop $(cat hk.node) --hop $(cat ar.node)

说明:节点ID为32位UUID,上述命令借助管道自动填充,避免手输错误。若提示“节点已满载”,可追加--overflow参数,系统会随机分配到同城市备用机,延迟差距通常<5 ms。

步骤2:写一条“国内直连,海外走链”的分流规则

快连CLI把规则翻译成nft语句,因此需要Linux内核≥4.14且开启CONFIG_NFT_FWD_NETFILTER。下面示例用官方预设的cn-ipset(每周随客户端更新)匹配国内段,其余默认进Chain-B:

qlink rule add table main \
  match ipset cn-ipset daddr jump Chain-A \
  match meta nfproto ipv4 jump Chain-B

经验性观察:若服务器本身要访问阿里云内网API,需把100.64.0.0/102400:3200::/40追加到白名单,否则会出现STS令牌获取失败。

步骤3:按进程名再做二级分流

部分海外支付网关对阿根廷IP风控较严,可让stripe进程单独走香港单跳,其余仍走双跳:

qlink rule insert table main position 0 \
  match meta exe "/usr/local/bin/stripe" jump Chain-A

注意:nftables的meta exe依赖内核开启CONFIG_PROC_FS,在部分精简容器镜像里被关闭,需重新编译或换用uid分流。

验证与观测方法

1. 实时看链路与跃点

watch -n 1 qlink chain stat

输出里会列出每跳RTT、丢包、重传。若第二跳阿根廷RTM>280 ms,经验性观察说明海底光缆可能拥塞,可临时把Chain-B换成香港→东京→洛杉矶,延迟通常降至约220 ms。

2. 用tcpdump确认分流是否生效

tcpdump -tnn -i any host 8.8.8.8 and outbound

若规则正确,应看到源IP被改写为香港节点地址;若仍显示本机IP,说明nftables优先级被Docker覆盖,需调整table inet quicklink的优先级为0,高于Docker的100

2. 用tcpdump确认分流是否生效
2. 用tcpdump确认分流是否生效

性能与成本权衡:何时该用双跳

场景 建议链结构 RTT增幅 带宽损耗
海外API采集 单跳香港 ≈+5 ms ≈-3 %
冷门区账号注册 香港→阿根廷 ≈+180 ms ≈-12 %
4K流媒体反代 香港→洛杉矶 ≈+140 ms ≈-8 %

结论:若业务对延迟敏感且无需冷门IP,单跳性价比最高;若需“地理位置套利”或躲避平台风控,再考虑双跳,并接受约10 %带宽税。

不适用场景清单

  • 高并发短连接(>10 k qps):nftables规则逐包匹配,CPU占用随并发线性上升;此时应改用DPDK版快连Edge,或在应用层做连接池复用。
  • 嵌入式OpenWrt(RAM<256 MB):代理链需维护多跳状态表,内存占用约60 MB,可能导致OOM;可降级为单跳或改用轻量socks5。
  • 强制TLS 1.3审查网络:部分企业防火墙会丢弃自研QuickUDP流量,虽可回退至TCP+TLS,但双跳TCP叠加会导致延迟翻倍,建议单跳或直接WireGuard。

故障排查速查表

现象 可能原因 验证命令 处置
qlink: permission denied /dev/tun 权限不足 ls -l /dev/net/tun usermod -aG tun $USER 或 systemd 里加 SupplementaryGroups=
nft: syntax error, unexpected jump 内核 < 4.14 uname -r 升级内核或改用iptables legacy模式
Chain-B 第二跳丢包>5 % 海底光缆拥塞 qlink chain stat 临时换东京或洛杉矶中继,或降单跳

最佳实践清单(Checklist)

  1. 先用qlink bench测三跳延迟,选RTT之和最小的组合,而非地理直线最短。
  2. 规则优先级:进程名 > 端口 > IP段;把最具体匹配放最前,减少nftables回溯。
  3. 每周一次qlink node refresh,防止节点下线导致链断裂;可写systemd timer自动执行。
  4. /etc/quicklink/backup/里版本化保存qlink rule export输出,回滚只需qlink rule import
  5. CI容器里关闭quicklink-daemon,改用qlink chain up --foreground,Job结束自动清理,避免残留路由表。

FAQ(结构化数据)

代理链最多支持几跳?

官方建议≤3跳,超过后MTU叠加与密钥协商开销会让带宽下降约20 %;实验性观察4跳可用,但需手动调低MTU到1280。

规则能否热更新而不丢包?

可以。qlink rule replace使用nftables原子提交,经验性观察长连接RTT抖动<50 ms,无丢包;但变更链结构会重置UDP会话,短连接无感,长下载可能瞬断1–2秒。

与Docker Compose如何共存?

在compose文件加network_mode: host,让容器继承主机路由;或把quicklink-tun设备映射进容器并设置CAP_NET_ADMIN。官方示例仓库提供docker-compose.yml模板,可直接docker compose up

收尾与下一步行动

通过quicklink-cli拼装代理链,你能在Linux终端里实现“国内直连、海外多跳、进程级微调”的颗粒度分流,既节省带宽成本,也降低被目标平台风控的概率。看完本篇,建议立即在测试机执行qlink chain create,用qlink rule add把最常访问的海外API拉出来单独测一轮延迟,记录RTT与带宽基线,再决定是否上生产。若后续遇到节点绕路或晚高峰掉速,记得回来看“性能与成本权衡”表格,用单跳/换城市/调MTU三把斧快速自救。

未来趋势与版本预期

经验性观察,快连团队已在公开代码仓库频繁提交针对nftables set的批量匹配优化,预计下一版本将把规则匹配开销降低30%以上;同时社区呼声较高的“链健康度自动降级”功能也进入PR评审阶段,未来或支持RTT超过阈值后自动切换备用链,无需手动介入。建议持续关注官方Release Note,并在测试环境验证新特性稳定性后再行上线。

立即下载快连VPN

支持Windows、Mac、iOS、Android全平台

免费下载