PAC(代理自动配置,Proxy Auto-Config)是一种用 JavaScript 脚本自动判断网络请求走代理还是直连的技术,广泛用于浏览器代理设置和科学上网工具的「PAC 模式」智能分流,让被屏蔽的网站走代理、国内网站直连,兼顾速度与可用性。

| 类型 | 代理自动配置技术(脚本标准) |
| 提出者 | 网景(Netscape) |
| 推出时间 | 20世纪90年代中期 |
| 文件格式 | .pac(JavaScript 脚本) |
| 核心函数 | FindProxyForURL(url, host) |
| 相关技术 | WPAD GFWList SwitchyOmega |
PAC(Proxy Auto-Config,代理自动配置)是一种通过 JavaScript 脚本让浏览器或操作系统自动决定某个网络请求应该直接连接、还是通过哪个代理服务器转发的技术。
PAC 最早由网景公司在早期浏览器时代提出,后来被各大浏览器和主流操作系统广泛支持,成为事实上的行业标准。它的核心是一个后缀通常为 .pac 的脚本文件,文件里定义一个名为 FindProxyForURL 的函数:每当发起网络请求时,系统会把目标网址和主机名传给这个函数,函数返回「DIRECT」(直连)、「PROXY 地址:端口」或「SOCKS 地址:端口」等指令,请求就按返回结果走相应通道。
在企业网络中,PAC 常配合 WPAD(代理自动发现协议)使用,管理员集中维护一份脚本即可统一控制全公司设备的代理策略。而在中文互联网语境下,PAC 更为人熟知的身份是科学上网工具中的「PAC 模式」:Shadowsocks、V2Ray、Clash 等客户端可根据 GFWList 等规则列表自动生成 PAC 文件,实现被屏蔽的网站走代理、国内网站直连的智能分流。
PAC 只对遵循系统代理设置的应用生效,很多命令行工具和部分客户端软件会忽略它;规则列表需要持续维护,遇到新被屏蔽的网站可能漏判;此外脚本本身是明文,规则内容对本机用户完全可见。因此近年来不少工具逐渐转向 Clash 等基于规则引擎的分流方案,但 PAC 依然是最通用、门槛最低的自动代理配置方式之一。
问:PAC 模式和全局模式有什么区别?答:全局模式让所有流量都走代理,访问国内网站也会绕道,速度可能变慢;PAC 模式按规则分流,只有命中列表的网站才走代理,日常使用体验更好。
问:PAC 文件是什么格式,能自己改吗?答:它就是一个包含 FindProxyForURL 函数的 JavaScript 文本文件,可以用任何编辑器打开,按格式添加自己的域名规则即可。
问:为什么开了 PAC 某些软件还是不走代理?答:PAC 依赖系统代理机制,不读取系统代理设置的程序(如很多命令行工具、游戏客户端)不会受它影响,这类程序需要用透明代理或增强模式等其他方案。

| 类型 | 代理自动配置技术(脚本标准) |
| 提出者 | 网景(Netscape) |
| 推出时间 | 20世纪90年代中期 |
| 文件格式 | .pac(JavaScript 脚本) |
| 核心函数 | FindProxyForURL(url, host) |
| 相关技术 | WPAD GFWList SwitchyOmega |
登录 后参与讨论
暂无讨论,来发表第一条评论吧