需配置PAC脚本实现火狐浏览器自动代理选择:一、浏览器内置设置填PAC URL;二、AutoConfig文件全局注入锁定配置;三、Windows域环境用组策略部署;四、编写合规FindProxyForURL函数并正确托管PAC文件。

如果您在企业网络环境中使用火狐浏览器,需根据访问目标自动选择代理或直连路径,则需配置PAC(Proxy Auto-Configuration)脚本。PAC脚本是一段JavaScript函数,由浏览器在每次发起网络请求前执行,动态返回“DIRECT”或“PROXY host:port”等指令。以下是实现该功能的多种配置方法:
一、通过浏览器内置设置配置PAC脚本
此方法适用于单机部署,无需修改系统级配置,所有代理逻辑由火狐自身解析执行。
1、启动火狐浏览器,在地址栏输入 about:preferences#general 并回车,进入常规设置页面。
2、向下滚动至“网络设置”区域,点击右侧的“设置…”按钮。
3、在弹出窗口中选择“自动代理配置URL”,并在输入框中填入PAC文件的完整可访问地址,例如 http://intra.example.com/proxy.pac 或本地文件路径 file:///C:/proxy.pac(Windows)或 file:///Users/username/proxy.pac(macOS)。
4、确认PAC文件可通过该URL被火狐成功加载:打开新标签页,直接访问该URL,应能显示纯文本JavaScript内容且无404或跨域错误。
5、点击“确定”保存设置,重启浏览器使配置生效。
二、通过AutoConfig文件全局注入PAC配置
此方法适用于IT部门集中管控场景,可强制所有用户使用统一PAC策略,并防止其在界面中擅自修改代理设置。
1、按规范创建 autoconfig.js 文件,存于Firefox安装目录的 defaults/pref 子目录下,内容为:
pref("general.config.filename", "firefox.cfg");
pref("general.config.obscure_value", 0);
2、在Firefox根目录(与 firefox.exe 或 Firefox.app 同级)创建 firefox.cfg 文件,首行为注释行:// IMPORTANT: Start your code on the 2nd line。
3、在第二行起写入以下JavaScript代码:
lockPref("network.proxy.type", 2);
lockPref("network.proxy.autoconfig_url", "https://corp.proxy.example.com/firefox.pac");
lockPref("network.proxy.share_proxy_settings", true);
4、确保 firefox.cfg 使用Unix行结尾(LF),且无BOM头;保存后重启浏览器。
三、通过组策略(仅Windows域环境)部署PAC
此方法适用于已加入Active Directory域的企业终端,由域控制器统一推送策略,优先级高于浏览器本地设置。
1、下载并安装最新版 Firefox Group Policy Templates (ADMX),解压后将admx文件复制到域控的 C:\Windows\PolicyDefinitions,将adml文件放入对应语言子目录(如en-US)。
2、打开“组策略管理编辑器”,定位至 计算机配置 → 管理模板 → Classic Administrative Templates (ADM) → Mozilla → Firefox → Network Settings。
3、启用“Configure automatic proxy configuration URL”策略,并在选项中填入PAC脚本URL,例如 http://gpo.proxy.internal/proxy.pac。
4、启用“Lock network proxy settings”策略以禁用用户对代理设置的任何修改权限。
5、链接该GPO至目标OU,运行 gpupdate /force 刷新策略,重启火狐浏览器验证。
四、本地PAC脚本编写与调试要点
无论采用哪种部署方式,PAC脚本本身的逻辑必须正确,否则将导致全部流量直连或全部走代理,引发访问失败。
1、脚本必须导出一个名为 FindProxyForURL(url, host) 的全局函数,返回字符串值。
2、典型企业路由逻辑示例:对内网域名(如 *.example.com、10.*.*.*、172.16–31.*.*、192.168.*.*)返回 "DIRECT";其余全部走代理,如 "PROXY proxy.corp:8080; PROXY backup-proxy.corp:8080"。
3、调试时可在脚本末尾添加 alert(host + " → " + url);(仅开发阶段),或使用浏览器控制台查看Network面板中对pac文件的请求响应状态码。
4、PAC文件须以 text/plain MIME类型提供,禁止压缩或添加额外HTTP头(如Content-Encoding: gzip),否则火狐将拒绝执行。











