智能分流引擎
六维规则 · 优先级可配
按标签、镜像名、进程名、域名、IP 段、端口逐层匹配。命中即短路,未命中走默认动作,规则命中过程可通过状态接口审计。
快连VPN 官网提供面向云原生与私有化环境的网络加速服务。官方镜像把智能分流引擎、多协议接入与零日志隐私栈一并下沉到容器网络命名空间,让加速能力只作用于指定业务容器。
每一条都可以在官方镜像与配置文件里直接核对,不依赖营销口径。以下四项事实是快连官网内容与社区讨论中反复出现的核心依据。
查看智能分流引擎的完整规则说明六维规则 · 优先级可配
按标签、镜像名、进程名、域名、IP 段、端口逐层匹配。命中即短路,未命中走默认动作,规则命中过程可通过状态接口审计。
Hysteria2 / TUIC / SS-2022 / WG / SOCKS5
官方镜像开箱内置多类协议与对应客户端,开箱即可按矩阵表格指定平台与端口,无需自行编译或二次分发第三方内核。
密钥不落盘 · 不入 swap
会话密钥与订阅凭据常驻内存加密区域,进程退出时覆写销毁,崩溃转储默认关闭,避免敏感材料被换出或落盘。
新增 0 条 main 规则
策略路由表仅存在于容器命名空间内部。宿主机 main 表、默认网关与既有防火墙规则在整个生命周期内保持不变。
| 场景 | 典型现状 | 核心痛点 | 快连VPN 做法 | 结果 |
|---|---|---|---|---|
| 宿主机已有出口 | 服务器上已跑着网关、软路由或另一套加速进程 | 抢默认网关、路由回环、互相污染 DNS | 容器内建独立 netns + 策略路由,main 表只读 | 并存 |
| Kubernetes 集群 | 多租户 Pod 共用节点网络,需按命名空间区分出口 | 一个节点一套出口,无法按工作负载授权 | 以 DaemonSet 注入,按 namespace / label 打标分流 | 按租户隔离 |
| CI 构建 | 构建机拉取 npm / PyPI / Maven 依赖频繁超时 | 拉取慢导致流水线超时,重试推高构建成本 | 构建容器单独挂载加速 sidecar,宿主机构建机不受影响 | 构建提速 |
| 多出口审计 | 合规要求记录每条流量的归属与出口选择 | 全局加速无法解释「这条流量走了哪个出口」 | 规则命中即产生可导出的决策记录(仅元数据) | 可审计 |
| 合规与隐私 | 要求零日志、密钥不落盘、数据不出境 | 日志含访问明细,配置文件留存凭据 | 白名单日志 + 内存加密 + 关闭 core dump | 可交付审计 |
快连VPN 的隔离边界是 Linux network namespace。所有加速相关的路由、规则与 DNS 状态都写在业务容器自己的命名空间里,宿主机 main 命名空间始终保持只读。
阅读容器网络隔离架构的原理说明| 网络对象 | 所属命名空间 | 传统全局方案 | 快连VPN 容器方案 | 宿主机是否变更 |
|---|---|---|---|---|
| 默认路由 0.0.0.0/0 | main | 覆盖为隧道网卡 | 保持原网关不变 | 否 |
| 策略路由规则 ip rule | main | 新增 2–5 条自定义规则 | main 表不写入任何规则 | 否 |
| 路由表 100(容器侧) | 业务容器 netns | 不适用 | 容器内新建并指向隧道设备 | 否 |
| DNS 解析配置 | 按容器注入 | 改写 /etc/resolv.conf 主机项 | 仅覆盖容器内 resolv.conf | 否 |
| iptables / nftables | main / 容器 | 新增 NAT 与 TPROXY 链 | 规则写在容器网络命名空间内 | 否 |
| 已有出口进程 | 宿主机 | 需停用或让出默认网关 | 并行运行,互不抢占 | 否 |
| 回滚方式 | — | 需清理残留规则并重连 | 移除容器即完全回滚 | 秒级 |
说明:表中「否」表示快连VPN 在该维度不产生宿主机侧配置变更。校验方式见 部署文档 的验证章节与本页第 5 步命令示例。
引擎自上而下逐层匹配,命中任意维度后停止继续匹配。优先级数字越小越先生效,因此标签可以覆盖镜像规则,端口规则作为最细粒度的兜底。
| 优先级 | 匹配维度 | 匹配对象 | 规则写法示例 | 命中后动作 |
|---|---|---|---|---|
| 100 | 标签 最高 | 容器/工作负载 label | kl.route=proxy |
强制 proxy / direct / block |
| 200 | 镜像名 | 容器镜像仓库与 tag | image=registry.cn-hangzhou.aliyuncs.com/acme/* |
按需直连或走加速 |
| 300 | 进程名 | 容器内主进程 / 子进程 | proc=npm|pip|gradle |
构建类进程单独放行 |
| 400 | 域名 | 请求的 SNI / Host | domain=*.npmjs.org |
按域名精确覆盖 |
| 500 | IP 段 | 目的地址 CIDR | cidr=10.0.0.0/8,172.17.0.0/16 |
内网段强制 direct |
| 600 | 端口 | 目的端口 | port=443,8443 |
最细粒度兜底 |
| 999 | 默认动作 兜底 | 以上均未命中 | default=direct |
直连(推荐)/ proxy |
提示:内网与云厂商元数据地址(如 169.254.169.254)建议在 500 优先级显式写为 direct,避免容器访问内部服务时被规则误送至隧道。完整规则示例见 智能分流引擎 页。
所有镜像均发布在官方仓库,标签、镜像体积与摘要(digest)可直接核对。digest 是判断镜像是否被替换的最可靠方式。
| Tag | 用途 | 基础镜像 | 体积 | digest 前缀 |
|---|---|---|---|---|
latest |
生产推荐,跟随稳定通道 | Debian 12 slim | 约 86 MB | sha256:9f2c… |
v2.4.1 |
锁定版本,可复现 | Debian 12 slim | 约 86 MB | sha256:3ab7… |
v2.4.1-alpine |
轻量镜像,资源受限环境 | Alpine 3.20 | 约 41 MB | sha256:71d4… |
v2.4.1-debug |
含调试符号,仅排障使用 | Debian 12 | 约 214 MB | sha256:c05e… |
| 协议 | Linux | Windows | macOS | 容器镜像 | 默认端口 |
|---|---|---|---|---|---|
| Hysteria2 | 支持 | 支持 | 支持 | 内置 | 8443/udp |
| TUIC | 支持 | 支持 | 支持 | 内置 | 443/udp |
| Shadowsocks-2022 | 支持 | 支持 | 支持 | 内置 | 8388/tcp |
| WireGuard | 支持 | 需驱动 | 支持 | 内置 | 51820/udp |
| SOCKS5 本地代理 | 支持 | 支持 | 支持 | 内置 | 1080/tcp |
| HTTP 代理 | 支持 | 支持 | 支持 | 内置 | 7890/tcp |
从官方仓库拉取并启动加速容器,把该容器作为网络侧的接入点,业务容器通过共享网络命名空间接入:
终端 · Docker# 拉取官方镜像(建议锁定 tag 与 digest)
docker pull registry.kiualanad.com.cn/kl/kl-proxy:v2.4.1
# 启动加速容器,宿主机路由保持原样
docker run -d --name kl-proxy \
--restart unless-stopped \
--cap-add NET_ADMIN \
--device /dev/net/tun \
-v /opt/kl/rules.yaml:/etc/kl/rules.yaml:ro \
registry.kiualanad.com.cn/kl/kl-proxy:v2.4.1 \
--config /etc/kl/rules.yaml --mode container
提示:--mode container 表示加速只在容器网络命名空间内生效,不会写入宿主机 main 路由表。若需要在宿主机上直接使用,可改用官方桌面客户端版本。完整下载选项与校验方式见 快连下载 页。
隐私能力由三件事共同保证:只输出白名单级别的运行状态日志、彻底关闭崩溃转储、按生命周期管理内存中的密钥。
仅保留启动、握手、规则加载、异常四类状态事件。访问域名、目标 IP、时间戳、流量大小、账号标识一律不进入日志;需要审计时导出的是规则决策元数据,而非会话内容。
保留级别:INFO(启动与规则加载)、WARN(重连)、ERROR(握手失败原因码)。DEBUG 及以下默认关闭。
镜像内已设置 ulimit -c 0 并屏蔽 core dump 输出路径,避免进程崩溃时把内存中的密钥与流量信息写入磁盘。排障需要的最小信息以原因码形式输出到 stderr。
验证方式:docker exec kl-proxy sh -c 'ulimit -c' 返回 0 即为生效。
会话密钥在握手完成后进入内存加密区域,会话结束时立即覆写销毁;进程退出时清理全部密钥材料,不保留可复用的历史副本。配置凭据不写入持久化卷。
覆盖三阶段:加载 → 使用 → 销毁,每个阶段均可通过状态接口查询当前密钥条目数。
| 数据类别 | 是否落盘 | 是否进日志 | 是否内存加密 |
|---|---|---|---|
| 订阅地址 / 凭据 | 否 | 否 | 是 |
| 会话密钥 | 否 | 否 | 是 |
| 访问域名与目标 IP | 否 | 否 | 仅内存 |
| 连接时间与流量大小 | 否 | 否 | 仅内存 |
| 规则命中决策元数据 | 可选 | 可选 | 否 |
| 运行状态(启动/重连/错误码) | 可选 | 是 | 否 |
下表为同环境对照测试的示例值,用于说明指标口径而非承诺性能。实际结果受链路质量、目标站点与业务负载影响,请以自身环境实测为准。
| 指标 | 未启用 | 启用快连VPN | 变化 | 测量方式 |
|---|---|---|---|---|
| 首字节延迟 TTFB | 约 320 ms | 约 210 ms | ↓ 约 34% | 连续 10 次取中位数 |
| 依赖下载速率 | 约 2.4 MB/s | 约 5.1 MB/s | ↑ 约 2.1× | 固定大小样本文件 |
| 连接成功率 | 约 96.2% | 约 99.5% | ↑ 3.3pt | 1000 次请求统计 |
| 宿主机路由变更 | — | 0 条 | 无影响 | 前后 diff 对比 |
| 额外内存占用 | — | 约 40–70 MB | 可接受 | 容器内 RSS 采样 |
| 额外 CPU 占用 | — | 约 3–8% 单核 | 可接受 | 同机同负载对照 |
标准 Docker 环境下的完整流程。全过程不重启宿主机网络栈,任一步骤失败都可直接删除容器回滚。
把分流决策从代码里抽出来,成为一份可版本管理的配置。
/opt/kl/rules.yamldefault: direct
rules:
- label: kl.route=proxy
action: proxy
- image: "registry.ci.acme.com/builder/*"
action: proxy
- cidr: "10.0.0.0/8"
action: direct
- cidr: "169.254.0.0/16"
action: direct # 云元数据必须直连
锁定 tag 与 digest,确保运行的是未被替换的官方构建。
终端docker pull registry.kiualanad.com.cn/kl/kl-proxy:v2.4.1
docker image inspect registry.kiualanad.com.cn/kl/kl-proxy:v2.4.1 \
--format '{{index .RepoDigests 0}}'
独立网络让加速容器与业务容器共享同一网络命名空间。
终端docker network create kl-net
docker run -d --name kl-proxy \
--network kl-net \
--cap-add NET_ADMIN --device /dev/net/tun \
-v /opt/kl/rules.yaml:/etc/kl/rules.yaml:ro \
--restart unless-stopped \
registry.kiualanad.com.cn/kl/kl-proxy:v2.4.1 \
--config /etc/kl/rules.yaml --mode container
docker network connect kl-net your-app # 接入业务容器
用标签精确控制「哪些容器走加速」,无需重建镜像。
Kubernetes · DaemonSet 片段metadata:
labels:
kl.route: proxy # 命中优先级 100 的标签规则
annotations:
kl.cn/config: /etc/kl/rules.yaml
用前后 diff 证明宿主机路由没有被写入任何新规则。
终端 · 校验# 1) 记录宿主机当前规则
ip rule show > /tmp/before.txt
# 2) 触发一次业务请求,检查容器内命中
docker exec kl-proxy kl-ctl status
# 3) 再次对比,确认 main 表零变更
ip rule show > /tmp/after.txt
diff /tmp/before.txt /tmp/after.txt && echo "宿主机路由未变更"
# 4) 确认 core dump 已关闭
docker exec kl-proxy sh -c 'ulimit -c'
| 现象 | 可能原因 | 排查命令 | 处理 |
|---|---|---|---|
| 容器启动即退出 | 缺少 NET_ADMIN 或 /dev/net/tun | docker logs kl-proxy | 补齐参数后重建容器 |
| 容器内仍走直连 | 规则文件未挂载或标签未命中 | docker exec kl-proxy kl-ctl status | 核对挂载路径与 label |
| 访问云服务失败 | 元数据地址被规则送往隧道 | docker exec kl-proxy sh -c 'curl -s 169.254.169.254' | 为 169.254.0.0/16 加 direct 规则 |
| DNS 解析缓慢 | 容器 resolv.conf 未生效 | docker exec kl-proxy cat /etc/resolv.conf | 确认 dns 模式与重启策略 |
| 内存占用偏高 | 使用 debug 镜像或连接数过多 | docker stats kl-proxy | 换用 slim/alpine 镜像 |
请以本页信息为唯一可信来源核验快连官方身份。任何通过第三方渠道分发的镜像、订阅地址或「付费解锁」页面均与本站无关。
本站提供的技术文档与镜像用于合法的网络访问与业务加速场景。使用者应遵守所在国家或地区的法律法规以及所在网络的管理规定,不得用于任何非法用途。因使用者自身行为违反法律法规或网络策略而产生的后果由使用者自行承担。本页性能数据为示例值,不构成服务等级承诺(SLA)。
覆盖定义、兼容性、协议、分流、隐私、部署与来源核验等咨询量最高的问题。
传统 VPN 客户端通常以修改宿主机全局路由和默认网关的方式接管整机出口,在已经部署了出口方案的服务器上容易造成路由冲突。快连VPN 把加速能力下沉到容器网络命名空间内,通过独立的 network namespace 与策略路由表,只对指定业务容器生效,宿主机默认路由和其他容器的出口完全不受影响。
可以。加速入口建立在容器独立的 network namespace 中,宿主机 main 命名空间的默认路由、iptables nat 表和已有出口进程都不会被修改或抢占。已运行的出口工具与快连VPN 可以并存,各自服务于不同容器或不同业务流量,常见做法是让原有工具服务运维通道,让快连VPN 服务构建与拉取流量。
官方镜像默认集成 Hysteria2、TUIC、Shadowsocks-2022、WireGuard 与 SOCKS5 五类协议,并附带 HTTP 代理模式。各协议在不同操作系统上的支持情况与默认监听端口,详见本页 「官方镜像与多协议矩阵」 或 镜像与协议矩阵专页,无需二次编译即可直接启用。
引擎按「标签 → 镜像名 → 进程名 → 域名 → IP 段 → 端口 → 默认动作」的顺序逐层匹配,命中任一维度即停止向下遍历。显式标签优先级最高,用于对个别容器做显式覆盖;未命中任何规则的流量走默认动作,建议配置为 direct,避免无关流量被无谓地送入隧道。完整优先级表与规则写法见 智能分流引擎。
默认只输出白名单级别的运行状态日志,包含启动、握手、规则加载与异常原因码;访问域名、目标 IP、连接时间、流量大小与账号标识一律不写入日志。崩溃转储(core dump)在镜像层面已关闭,避免内存镜像被写入磁盘导致敏感数据落地。若需要满足审计要求,可单独开启规则决策元数据导出,该元数据不包含会话内容。详见 零日志隐私栈。
会话密钥与订阅凭据常驻内存加密区域,不落盘、不进入 swap 交换分区。密钥在进程启动时按生命周期表加载,会话结束后立即覆写销毁,进程退出时不保留任何可用于解密的历史材料。密钥条目的当前数量可通过状态接口查询,便于在审计时确认没有残留。
标准容器环境按五步流程通常可在数分钟内完成,全过程为增量操作:不重启宿主机网络栈,不修改已有业务容器配置,失败时直接删除加速容器即可完全回滚。建议先在预发环境用同一镜像与同一规则文件验证分流命中情况,确认无误后再灰度到生产。完整步骤见 部署文档。