问题定义:为什么关闭系统代理后还要“应用级分流”
在 macOS 上,快连 kuailian 默认会勾选“设置系统代理”,把全局流量引到本地 Socks5 端口。好处是开箱即用,坏处是:企业内网、网银、git push 到公司仓库这些“国内白名单”请求也被迫绕路,延迟陡增,甚至证书拦截报错。部分用户因此关闭系统代理,却发现 Netflix、Spotify 等境外服务瞬间失联——原来分流规则一并失效。本文给出“关闭系统代理后,仍让指定 App 走节点”的最短路径,并交代副作用与回退方案。
前置检查:确认客户端与系统版本
以截至当前的最新版本(6.3.0 之后)为例,macOS 需 ≥ 12.0。打开快连 → 右上角“三”→ 关于,若主版本号低于 6,请先更新,否则下文菜单项可能缺失。
核心思路:把“分流”从系统代理层下沉到进程层
系统代理一旦关闭,macOS 不再强制把流量导给快连本地端口,分流规则自然失效。此时要让境外流量继续走节点,只剩两条官方支持的路:
- 应用级分流:快连内置的 Per-App Mode,只对选中的进程注入代理环境变量;
- 手动代理:在需要走节点的 App 里填写本地 Socks5(127.0.0.1:1080),其余 App 留空。
第一种零配置、随客户端启停;第二种适合浏览器插件或命令行工具,需自己维护开关。下文以“应用级分流”为主,手动代理作为补充。
操作路径:三步关闭系统代理并保留分流
Step 1 关闭系统代理
快连主界面 → 设置 → 高级 → 取消勾选“自动设置系统代理”。此时 macOS 系统偏好设置 → 网络 → 高级 → 代理 里会瞬间清空 HTTP/HTTPS/SOCKS 条目,国内流量恢复直连。
Step 2 开启应用级分流
同一面板下,打开“Per-App 代理”(中文界面叫“分应用代理”)。首次启用会弹出 Helper 安装提示,输入系统密码安装一个轻量网络扩展;这是官方签名插件,不含内核驱动,卸载客户端即自动移除。
Step 3 把需要走节点的 App 拖进名单
点击“+”按钮,从应用程序目录选择 Safari、Spotify、Telegram 等目标 App;名单内进程启动时,快连会注入 ALL_PROXY=socks5://127.0.0.1:1080,名单外进程完全无感。若要临时让某 App 直连,只需在列表中取消勾选,无需重启 App。
提示
Per-App 名单上限 64 个,超量会提示“条目已满”。经验性观察:64 个已覆盖常见办公娱乐套件,若仍不足,可把同类 App 做成 Shell 脚本统一代理,减少条目。
验证:确认分流真的生效
观测指标 1:IP 归属
名单内 Safari 访问 ipinfo.io,应显示节点所在国家;名单外 Chrome 访问同一地址,应显示本机宽带 IP。若两者一致,说明 Per-App 未生效,请检查是否遗漏 Helper 安装。
观测指标 2:延迟对比
在 Terminal 里分别运行:
# 名单外直连
curl -o /dev/null -s -w "%{time_total}s\n" https://www.baidu.com
# 名单内走节点
curl -o /dev/null -s -w "%{time_total}s\n" https://www.google.com
经验性观察:百度请求应在 0.05 s 级别,谷歌请求因绕节点会升至 0.15–0.25 s,若差距过小或为 0,说明流量并未分流。
例外与取舍:哪些场景不适合 Per-App
- 命令行工具链:Homebrew、npm、docker pull 默认不走图形界面,不会被 Per-App 捕获。需要手动 export 代理变量或在 ~/.zshrc 里写 alias。
- 分屏浏览器:同一 App 内既访问国内又访问国外,Per-App 只能“全或无”。此时建议装两个浏览器,一个进名单一个留外。
- 企业 privacy tool 共存:公司 Cisco AnyConnect 会抢占系统路由,快连 Helper 注入可能失效。经验性观察:先启动快连并等待节点握手,再开公司 privacy tool,可减少冲突概率,但无法 100% 保证。
手动代理补充方案:浏览器插件法
若你主力浏览器就是 Chrome,且不想把整 App 拉进名单,可用 SwitchyOmega 插件:
- 插件新建 profile,Socks5 127.0.0.1 端口 1080;
- 规则列表填入官方维护的
https://rules.kuailian.com/gfwlist.txt,自动分流; - 系统代理保持关闭,公司内网站点不受影响。
代价是只能管浏览器,其他 App 需另寻办法。
回退方案:一键恢复全局代理
若发现 Per-App 漏网或游戏掉线,可立即回退:设置 → 高级 → 重新勾选“自动设置系统代理”,名单失效并恢复传统全局模式,无需重启电脑。
故障排查:Per-App 不生效的 3 个高频原因
- Helper 未加载:系统设置 → 隐私与安全性 → 网络扩展,确认“KuailianPacketFilter”在列表且已启用;若显示“已阻止”,点允许并重启快连。
- App 路径变更:升级后某些 App 被系统重命名(如 Twitter → X),Per-App 列表仍指向旧路径,需删除旧条目重新添加。
- 防火墙拦截:Little Snitch / Lulu 阻止了 Helper 的出站连接,导致注入失败。临时放行“KuailianPacketFilter”进程即可验证。
适用场景清单
| 场景 | 建议方案 |
|---|---|
| 日常办公+流媒体 | 关闭系统代理 + Per-App 把 Safari、Spotify 拉入名单 |
| 跨境电商店铺后台 | 把 Firefox 独立配置手动 Socks5,防止店铺 IP 跳动 |
| 高校学生 git/容器 | Terminal 手动 export 代理变量,避免全局断网 |
| 公司 Cisco privacy tool 并存 | 优先全局代理,Per-App 作为实验性方案 |
最佳实践 5 条
- 名单保持“少而精”,每新增一个 App 先验证 IP,避免 64 条上限突然爆满。
- 升级 macOS 小版本前,先截图 Per-App 列表,系统升级后 Helper 可能被禁用,需重新允许。
- 游戏更新包通常走 CDN 域名,若出现“更新失败”,临时把游戏启动器移出名单,让 CDN 直连。
- 把公司邮箱客户端(Outlook、Mail)排除在名单外,防止 SMTP 端口被节点运营商封 587。
- 每月清理一次“已卸载但残留”的条目,防止空路径导致 Helper 异常重试。
FAQ(使用 FAQPage Schema)
关闭系统代理后,为什么国内网站也变慢?
大概率是 DNS 仍被劫持到境外。请在快连设置 → 高级 → 关闭“远程 DNS”,恢复本地解析即可。
Per-App 名单能否导入导出?
截至当前版本,官方尚未提供导入导出按钮。可手动截图备份,或调用 defaults read com.kuailian.mac.perapp 查看 plist 文件路径,复制备档。
Helper 网络扩展耗电吗?
经验性观察:M1/M2 机型日常办公 8 小时耗电增加 <2%,可忽略;若电池模式敏感,可在出门前置“全局代理”并退出 Helper。
总结与下一步
快连 kuailian 在 macOS 上关闭系统代理后,只要正确启用 Per-App 代理并维护好 64 条名单,就能让国内流量直连、国外流量走节点,兼顾速度与合规。记得升级系统后重新授权 Helper,遇到异常优先用“恢复全局代理”回退。下一步,你可以把 Terminal 变量写成一键 alias,或给 CI 脚本加上代理判断,让开发环境也享受同样的分流红利。



