需配置PAC文件实现火狐浏览器智能代理分流,通过FindProxyForURL函数判断URL或域名决定直连或代理,支持本地file://或远程HTTP/HTTPS加载,须确保UTF-8无BOM编码、路径无中文空格、语法正确并验证生效。

如果您希望火狐浏览器根据访问目标自动选择是否走代理,而非对所有流量统一处理,则需配置PAC(Proxy Auto-Configuration)文件实现智能分流。PAC文件通过JavaScript函数FindProxyForURL(url, host)动态判断每个请求应直连还是经由指定代理服务器,适用于图书馆资源访问、内网穿透、学术数据库路由等场景。以下是具体配置步骤:
一、准备并编写自定义PAC文件
PAC文件本质是一个以.pac为后缀的纯文本JavaScript脚本,必须包含FindProxyForURL函数。该函数接收当前请求的完整URL和主机名,返回'PROXY ip:port'或'DIRECT'指令,从而控制流量走向。
1、新建一个文本文档,重命名为proxy.pac(确保扩展名非.txt)。
2、用记事本或VS Code打开该文件,粘贴以下基础模板:
function FindProxyForURL(url, host) {
if (shExpMatch(host, "*.whu.edu.cn") || shExpMatch(url, "https://lib.whu.edu.cn/*")) {
return "PROXY 192.168.33.9:8888";
}
if (shExpMatch(host, "*.internal.com")) {
return "PROXY 10.1.1.5:3128";
}
return "DIRECT";
}
3、将其中192.168.33.9:8888和10.1.1.5:3128替换为您实际的代理服务器IP与端口;*.whu.edu.cn、*.internal.com等域名按需修改为需代理的目标范围。
4、保存文件,确认编码为UTF-8无BOM格式(Firefox仅支持系统默认编码或UTF-8无BOM,否则可能解析失败)。
二、在火狐浏览器中加载本地PAC文件
本地PAC文件无需部署到Web服务器,可直接通过file://协议引用。此方式适合离线环境、测试验证及个人临时分流需求,避免网络依赖和权限配置。
1、点击右上角菜单按钮(三条横线),选择设置。
2、在左侧菜单中点击常规,向下滚动至网络设置区域,点击设置…按钮。
3、在弹出窗口中选择自动代理配置URL单选框。
4、在输入框中粘贴本地PAC文件的绝对路径,格式为:file:///C:/path/to/proxy.pac(Windows)或file:///Users/username/path/proxy.pac(macOS);注意使用三个斜杠且路径中不含中文或空格。
5、点击确定保存,关闭所有Firefox窗口后重新启动浏览器。
三、在火狐浏览器中加载远程PAC文件
当PAC文件托管于Web服务器(如高校图书馆代理服务)时,使用HTTP/HTTPS URL可实现集中管理与实时更新。管理员修改规则后,所有用户下次请求时自动拉取最新版本,无需逐台分发文件。
1、获取有效的PAC文件URL,例如:http://proxy.lib.whu.edu.cn/reader/reader.pac。
2、进入Firefox设置 → 网络设置 → 设置… → 选择自动代理配置URL。
3、将上述URL完整粘贴至地址栏,确保开头为http://或https://,不可省略协议头。
4、点击确定,Firefox将立即尝试下载并解析该文件;若返回404或证书错误,会在地址栏右侧显示红色警告图标。
5、验证是否生效:访问已定义在PAC中的目标网站(如https://lib.whu.edu.cn),观察是否触发代理认证弹窗或成功加载资源。
四、验证PAC规则执行状态
Firefox不提供内置PAC调试界面,但可通过开发者工具网络面板观察真实连接行为,确认分流逻辑是否按预期运行。该方法可识别规则未命中、语法错误或代理不可达等常见问题。
1、访问任意网页后,按Ctrl+Shift+E(Windows/Linux)或Cmd+Option+E(macOS)打开网络监视器。
2、刷新页面,在左侧请求列表中任选一项,点击进入详情页。
3、切换至标头选项卡,查找X-Firefox-Proxy-Used响应头(若存在),其值为1表示本次请求已应用PAC规则并启用代理。
4、若某请求本应走代理却显示Connection: keep-alive且无代理IP出现在远程地址列,则说明PAC中对应shExpMatch条件未覆盖该URL,需检查通配符写法或host提取逻辑。
五、排查PAC加载失败常见原因
PAC文件虽结构简单,但因编码、路径、权限或语法微小差异极易导致静默失效。Firefox通常不报错,仅回退至直连模式,因此需针对性核查关键节点。
1、确认PAC文件保存为UTF-8无BOM编码:用Notepad++打开→编码菜单→选择“转为UTF-8无BOM格式”→另存为。
2、检查file://路径是否含中文、空格或特殊符号:路径中出现此类字符会导致Firefox拒绝加载,应移至全英文路径如C:\proxy\proxy.pac。
3、验证JavaScript语法合法性:将PAC内容粘贴至浏览器控制台(Ctrl+Shift+K)执行,若报SyntaxError则需修正括号、引号或分号缺失问题。
4、禁用安全软件拦截:部分国产安全卫士会拦截file://协议读取或篡改HTTP PAC响应,临时退出此类软件后重试。
5、清除DNS缓存与代理状态:在地址栏输入about:networking#dns,点击Clear DNS Cache;再访问about:networking#proxies查看当前PAC加载时间戳是否更新。