代理配置

快连Linux端如何配置全局代理并排除本地地址?

作者:快连官方团队
全局代理Linux排除地址
快连Linux全局代理配置步骤, 如何排除本地地址, 快连代理绕过局域网设置, Linux端代理模式区别, 快连开机自启代理方法, 本地地址段排除列表, 代理配置后无法访问内网怎么办, 快连CLI命令设置例外地址, 全局代理与分应用代理差异, 快连Linux代理最佳实践

功能定位:为什么要在 Linux 端开“全局+排除”

跨境开发、远程编译、容器拉取镜像时,Linux 服务器常面临“默认走代理、回国内或局域网时直连”的刚性需求。快连 privacy tool 的 Linux 端(截至当前最新版)提供 klink-cli 命令行工具,可在 TUN 模式下接管物理网卡流量,再通过 Split-Exclude 列表让指定网段绕过隧道,兼顾合规审计与零配置维护。

功能定位:为什么要在 Linux 端开“全局+排除”
功能定位:为什么要在 Linux 端开“全局+排除”

版本差异与前置条件

经验性观察:v5.6 以前仅支持“分应用代理”,TUN 全局模式需手写 systemd 脚本;v5.7 起官方把 TUN 驱动打包进 deb/rpm,安装后自动注册 klink-tun.service。下文均以 v5.7 及更高版本为基准,旧版请先执行 sudo klink-cli update 或到官网拉取最新包。

系统要求

  • 内核 ≥ 4.14,且已加载 TUN/TAP(lsmod | grep tun 有回显即可)
  • systemd ≥ 237(Ubuntu 18.04+/CentOS 8+ 均满足)
  • 拥有 root 或 sudo 权限(TUN 设备需要 CAP_NET_ADMIN)

安装与首次登录

官方仓库已支持 deb、rpm、AUR 三种包管理器。以 Debian 系为例,三条命令完成安装:

curl -fsSL https://repo.kuailian.net/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/kuailian.gpg
echo "deb [arch=amd64] https://repo.kuailian.net/linux/debian stable main" | sudo tee /etc/apt/sources.list.d/kuailian.list
sudo apt update && sudo apt install klink

装完后执行 klink-cli login,按提示输入账号与二次验证码。登录成功会在 ~/.config/klink/token.json 写入令牌,权限 600,切勿手动编辑。

一键开启“全局代理+本地排除”

步骤 1:生成默认配置

首次运行若提示缺少配置文件,执行:

sudo klink-cli config create --template tun-global

模板已内置中国常见私网段(192.168.0.0/16、10.0.0.0/8、172.16.0.0/12)及本地回环 127.0.0.0/8,文件落盘为 /etc/klink/tun-global.yml

步骤 2:按需追加企业内网

示例:公司研发使用 100.64.0.0/10,在 exclude_routes 数组追加一行,保存后执行:

sudo klink-cli config check

若无报错,即可应用。

步骤 3:启动 TUN 服务

sudo systemctl enable --now klink-tun.service

systemd 会在网络-online 目标后自动拉起,开机生效。临时验证可手动:

sudo klink-cli tun up --config /etc/klink/tun-global.yml

提示

TUN 设备默认命名 klink0,MTU 1420,与 WireGuard 一致,可无缝兼容 docker、podman 等容器网桥。

验证分流是否生效

观测指标 1:路由表

ip route show table main | grep klink

预期看到 default dev klink0 scope link,而 192.168.0.0/16、10.0.0.0/8 等段仍走原始物理网卡。

观测指标 2:DNS 泄漏

执行 dig whoami.ds.akahelp.net +short,若返回海外节点地址,说明外网流量已进隧道;再 dig @corp-dns.internal.company 能解析内网域名,则排除规则生效。

观测指标 3:日志审计

sudo journalctl -u klink-tun -f

默认级别 INFO,会打印“bypass 192.168.x.x”字样,方便合规团队抽查。

常见分支:仅代理 TCP 或 UDP

部分 CI 场景只想让 git/ssh 走加速,而保留 UDP 161 SNMP 监控直连。可在同一配置文件里把 forward_protoall 改为 tcp,然后重启服务。经验性观察:单协议模式下 CPU 软中断可降低约 15%,但 QUIC 类服务(HTTP/3)会回落到 TCP。

回退与故障排查

现象:systemctl 启动失败

journal 提示“TUN device busy”,99% 是旧版 wg-quick 或其他工具仍占用 /dev/net/tun。解决:

现象:systemctl 启动失败
现象:systemctl 启动失败
sudo lsof /dev/net/tun
sudo systemctl stop wg-quick@wg0  # 或其他服务
sudo systemctl restart klink-tun

现象:内网 SSH 突然卡顿

原因多为 exclude_routes 未写全,导致回程流量也进隧道。可临时加一条 /32 主机路由:

sudo ip route add 192.168.99.55/32 dev eth0 src 192.168.99.30

延迟恢复后,再把该段写进配置文件永久生效。

警告

若服务器托管在云平台,开启全局模式会改变出口 IP,安全组/白名单可能瞬间失效。建议先在控制台放行新 IP,或把云厂商 API 地址也写进排除列表。

与 Docker、K8s 协同

TUN 模式属于三层设备,容器默认继承主机路由,因此无需额外设置。若需让某 Pod 强制直连,可在 K8s 里给该 Pod 加策略路由:

ip rule add from 100.96.3.45 table 100
ip route add default dev eth0 table 100

这样即使主机默认走 klink0,目标 Pod 的流量仍用本地网关,满足“审计留痕但不加速”的合规需求。

合规与日志留存要点

  • 快连 Linux 端默认 RAM-Only,不写入磁盘日志,但 systemd 会记录服务启停时间。若需完整审计,可把 journald 转发到中央 rsyslog,并打开 klink-cli config set log_level debug
  • 出口 IP 随节点动态变化,建议每天凌晨通过 klink-cli status --json | jq .exit_ip 抓取一次,写进 CMDB,方便后续溯源。
  • 若受 GDPR/等保约束,需关闭 AI 智能路径(smart_route: false),确保流量只在单一司法管辖区进出。

适用/不适用场景清单

场景 是否推荐 原因
个人开发机,需频繁切换内外网 ✅ 强烈推荐 配置一次,重启网络不丢失
生产数据库服务器,仅夜间同步海外仓库 ⚠️ 谨慎 建议改用定时 klink-cli tun up/down,避免长连接
多租户 K8s 集群,共享节点 ❌ 不推荐 全局路由会干扰其他租户,需用 CNI 级隔离

最佳实践 5 条

  1. 配置前先写“最小排除集”,逐步收紧,避免一次性放行大段私网。
  2. klink-tun.serviceRestartSec=10 调成 30 秒,减少异常闪断时的雪崩重连。
  3. 对 ICMP 保持放行,方便运维 ping 包排障;可在配置文件加 icmp_bypass: true
  4. 每月检查一次官方 repo,看是否有新模板,及时合并新“中国云厂商”段,防止流量误绕海外。
  5. klink-cli status 写进 Prometheus textfile,配合 Node Exporter,实现出口 IP 与延迟可视化。

FAQ(结构化数据)

Q1: 开启 TUN 后,Docker 容器无法解析内网域名?

因为容器默认使用 127.0.0.11 内置解析器,被排除列表绕过。可在 daemon.json 把 DNS 显式指向公司内网服务器,或把 127.0.0.0/8 从排除列表移除。

Q2: 如何确认当前节点是否支持 IPv6?

执行 klink-cli status --json | jq .ipv6,若返回 true 且获得 240e 开头地址,即说明已开启。若不需要,可在配置文件加 ipv6: false 避免 Netflix 等地区误判。

Q3: 能否在本地同时跑多个 TUN 服务?

Linux 支持多 TUN 设备,但默认路由只能有一个 default。若需并存,请把第二服务设为 table 100 + ip rule 策略路由,避免相互抢占默认网关。

收尾:下一步行动

至此,你已拥有“开机自启 + 本地地址排除 + 日志可审计”的 Linux 全局代理方案。建议立即在测试机重复一遍步骤,确认路由、DNS、容器三套指标都符合预期后,再推广到生产。若后续需要更细粒度策略(比如只让 uid=1001 的用户走代理),可关注官方文档中 policy-routing 模板的更新动态,届时只需替换配置文件即可平滑升级。