PAC配置

快连macOS端如何导入自定义PAC文件实现分流?

作者:快连官方团队
PAC分流macOS
快连macOS如何导入PAC文件, 快连自定义PAC分流设置, 快连PAC文件路径在哪里, 快连macOS PAC不生效怎么办, 快连kuailian PAC格式要求, macOS端PAC规则编写示例, 快连代理模式与PAC模式区别, 公司内网PAC快连macOS配置

功能定位:为什么要在快连里用自定义 PAC

快连(Kuailian)在 macOS 端除了「系统代理」「分应用代理」,还留了一条隐藏通道——「自定义 PAC」。把本地规则文件喂给客户端后,握手前就决定直连还是转发,既省倍率流量,也降低晚高峰专线占用。关键词快连macOS端如何导入自定义PAC文件实现分流说的正是这条链路。

与「分应用代理」相比,PAC 用 URL 通配符,粒度更细;与远程规则订阅相比,本地文件 0 依赖外部服务器,合规审计时直接给出静态 hash 即可留盘。经验性观察:把 30 条流媒体域名写进 PAC 直连,同等节点下可省约 15% 倍率,具体幅度随码率波动,可用「控制台-实时倍率」复现验证。

功能定位:为什么要在快连里用自定义 PAC
功能定位:为什么要在快连里用自定义 PAC

兼容性前提与版本边界

截至 v8.4.2(2026-03-29 发布),完整 PAC 校验模块仅在 macOS 11 Big Sur 及以上开启;10.15 虽能看到入口,重启客户端后会被回滚为「自动模式」。办公机群统一部署时,把系统版本写进准入清单,可避免规则失效导致流量绕行。

警告

低于 8.4.x 的旧版无「自定义 PAC」按钮;若更新后按钮未出现,请去官网重新下载 dmg 拖入 Applications,就地增量更新可能因签名不一致导致按钮隐藏。

自定义 or 远程订阅?一张决策表帮你选

维度 本地 PAC 远程规则订阅
更新频率 手动,文件级 自动,客户端定时拉取
合规审计 可留盘,hash 固定 需额外抓包留存
断网容错 本地 0 依赖 拉取失败时回退直连,可能泄漏目标
适用规模 个人/小团队 大团队,需统一策略

结论:只想让 Netflix、SpeedTest 等少数域名直连,且合规要求「策略文件可盘查」,选本地 PAC;需要 2000+ 条广告域名每周随社区更新,且能接受断网时短暂泄漏,选远程订阅。

操作路径:三步导入自定义 PAC

1. 准备符合快连语法的 PAC 文件

快连采用浏览器标准 FindProxyForURL 函数,额外支持 host_suffix 与 url_regex 两个扩展。示例片段保存为 ~/Documents/my.pac:

function FindProxyForURL(url, host) {
  // 国内流媒体直连
  if (host_suffix(host, "iqiyi.com") || host_suffix(host, "youku.com"))
    return "DIRECT";
  // 境外流媒体走代理
  if (host_suffix(host, "netflix.com") || host_suffix(host, "disneyplus.com"))
    return "PROXY 127.0.0.1:7890";
  // 默认直连
  return "DIRECT";
}

保存后在终端执行 openssl sha256 ~/Documents/my.pac 记录 hash,方便日后审计比对。

2. 客户端导入文件

  1. 打开快连,右上角「≡」→「偏好设置」→「高级」→「代理引擎」。
  2. 「PAC 模式」区域把默认「远程规则」切换为「本地文件」。
  3. 点击「导入…」选中 my.pac,系统提示「文件已复制到沙盒」,路径为 ~/Library/Containers/com.kuailian.privacy tool/Data/Library/Application Support/PAC/custom.pac;手动改名会导致签名失效。
  4. 主面板切到「PAC 模式」,日志页出现 PAC script loaded, sha256=xxx 且与终端 hash 一致即加载成功。

3. 验证分流是否生效

浏览器访问 https://ip.skk.moe,同时观察快连日志:

  • 返回本地宽带 IP 且日志显「DIRECT」,规则命中直连。
  • 返回节点 IP 且日志显「Proxy 127.0.0.1:7890」,规则命中代理。

经验性观察:首次加载后,Safari 需强制刷新缓存(⌥+⌘+R)才能重新解析 PAC,否则沿用旧策略。

平台差异与回退方案

Windows 端目前仅支持远程规则 URL,无本地文件入口;iOS 因沙盒限制,需把 PAC 放 iCloud Drive 再在「系统设置→Wi-Fi→HTTP 代理→自动」中填写本地路径,无法与快连内部节点联动。若 macOS 调试完毕想迁移到手机,只能转「远程规则托管」或「分应用代理」。

回退:导入后网络异常,立即把客户端顶部开关切回「智能模式」即可跳过 PAC;仍无法上网,进入「高级→代理引擎」点「恢复默认」,系统会删除 custom.pac 并生成空文件,回到出厂状态。

常见故障排查表

现象 最可能原因 验证动作 处置
日志无「PAC script loaded」 文件后缀非 .pac 终端 file custom.pac 重命名为 .pac 再导入
Safari 全部直连 系统缓存未刷新 Safari 开发菜单 清空缓存 ⌥+⌘+R 强制刷新
节点 IP 乱跳 PAC 中 PROXY 端口写错 netstat -an | grep 7890 改为 127.0.0.1:7890 与本地一致
常见故障排查表
常见故障排查表

什么时候不该用自定义 PAC

  • 公司合规要求「策略热更新 5 分钟内全员生效」——本地 PAC 需逐台替换,时效无法保证。
  • 节点每日变动——PAC 里 PROXY IP 写死后,若本地监听端口随节点切换,需要脚本级维护,成本高于远程订阅。
  • 非技术同事占多数——导入错误易导致整网瘫痪,远程规则+后台统一推送更能降低误操作。

最佳实践 6 条检查表

  1. 规则条数 ≤300,函数内勿多层嵌套,否则解析耗时肉眼可见。
  2. 养成「改完先校验」习惯:终端 jsc my.pac 跑一遍语法。
  3. 默认返回 DIRECT,避免规则遗漏时流量被黑洞。
  4. 文件名固定为 custom.pac,不带版本号,方便审计脚本批量 hash。
  5. 每月与官方远程规则做一次 diff,确认自维护名单是否过期。
  6. 打开「控制台-实时倍率」悬浮窗观察 30 分钟,确认零倍率域名确实未被转发。

FAQ:导入 PAC 后仍失败的典型疑问

Q1:文件 hash 一致,但日志仍提示「PAC syntax error」?

快连只支持 UTF-8 无 BOM 格式;Windows 记事本默认带 BOM,用 VS Code 右下角切换「UTF-8」重新保存即可。

Q2:能否一次性给 50 台办公机推送 PAC?

官方未提供 MDM 接口;现阶段需脚本复制文件到沙盒路径并重启客户端,建议改用远程规则托管,或在 Git 私有仓库放 PAC 文件,每台机用 launchd 定时拉取。

Q3:PAC 中能否直接写 WireGuard 出口 IP?

不能。PAC 只决定「是否转发给本地监听端口」,真正出口由节点决定;如需指定 WireGuard 专线,请在主界面切到对应节点,再把 PAC 的 PROXY 指向 127.0.0.1:7890 即可。

收尾:下一步行动建议

如果你只想让日常流媒体、SpeedTest 流量免于倍率计费,用本文的三步导入法 10 分钟即可完成;若团队规模超过 30 人或合规要求强制热更新,请把本地 PAC 当成临时验证,再迁移到远程规则仓库。记住,每次改完规则先校验语法、再对 hash、最后观察倍率,确保「规则-流量-账单」三点一线可审计,才能真正把快连 macOS 端的自定义 PAC 用到省心、省钱且合规。

未来版本若开放 MDM 接口或提供「本地 PAC + 远程增量补丁」混合模式,维护成本将进一步降低;当下先把 6 条检查表固化为内部流程,即可在现有版本里稳稳吃到本地分流带来的流量红利。