火狐浏览器需通过PAC脚本实现内网直连、外网代理的动态分流,配置方式包括图形界面设置PAC URL、本地file://调试及管理员级autoconfig.js锁定;必须禁用WPAD防覆盖。

在企业办公环境中,需要让火狐浏览器访问公司内网系统(如OA、GitLab、内部Wiki)时直连,访问外网资源(如GitHub、Stack Overflow)时走代理,必须通过PAC脚本实现动态路径决策,不能依赖全局代理或手动切换。
在火狐图形界面中配置PAC URL
这是最常用、最直观的配置方式,适用于单机部署和快速验证。
1、在火狐地址栏输入 about:preferences#general 并回车,进入常规设置页。
2、向下滚动至“网络设置”区域,点击右侧“设置…”按钮,打开代理配置窗口。
3、选择“自动代理配置URL”单选框,确保其他选项未被勾选——【若同时勾选“不使用代理”或“手动代理配置”,PAC将被完全忽略】。
4、在输入框中粘贴PAC文件地址,例如:https://proxy.internal.co/firefox.pac 或本地路径 file:///C:/proxy/proxy.pac。注意Windows下file://必须是三个斜杠,且路径中不能含空格或中文字符,否则静默失败。
5、点击“确定”保存,火狐会立即尝试加载并解析该脚本;无需重启浏览器,新标签页即生效。
用本地PAC文件调试分流逻辑
当无法临时搭建HTTP服务,或需离线验证规则是否写对时,必须用本地file://协议加载,但路径与编码有硬约束。
方法一:Windows平台配置
1、用记事本或VS Code新建纯文本文件,保存为proxy.pac,内容必须以合法FindProxyForURL函数开头,例如:
function FindProxyForURL(url, host) {<br> if (dnsDomainIs(host, ".internal.corp") || isInNet(host, "172.16.0.0", "255.240.0.0")) return "DIRECT";<br> return "PROXY 192.168.10.5:8080";<br>}
2、将文件存入无中文、无空格的路径,如C:\proxy\proxy.pac;【若路径含中文(如“桌面”)或空格(如“Program Files”),火狐将无法读取且不提示错误】。
3、在代理设置中填入file:///C:/proxy/proxy.pac,点击确定。
方法二:macOS/Linux平台配置
1、终端执行:mkdir -p ~/proxy && touch ~/proxy/proxy.pac,用代码编辑器写入相同函数体。
2、确认文件权限可读:chmod 644 ~/proxy/proxy.pac。
3、填入地址:file:///Users/yourname/proxy/proxy.pac(macOS)或file:///home/yourname/proxy/proxy.pac(Linux)。
强制锁定PAC配置并禁用WPAD干扰
企业IT管理员必须采用此法,防止用户误关设置或局域网WPAD自动覆盖手动配置。
第一步:创建autoconfig.js文件
1、进入Firefox安装目录(如C:\Program Files\Mozilla Firefox\),在defaults\pref子目录下新建autoconfig.js。
2、写入两行内容(不可多不可少):
pref("general.config.filename", "firefox.cfg");<br>pref("general.config.obscure_value", 0);
第二步:创建并配置firefox.cfg
1、在Firefox根目录(与firefox.exe同级)新建firefox.cfg文件。
2、首行必须是注释:// IMPORTANT: Start your code on the 2nd line。
3、第二行起写入三行锁定指令:
lockPref("network.proxy.type", 2);<br>lockPref("network.proxy.autoconfig_url", "https://proxy.internal.co/firefox.pac");<br>lockPref("network.proxy.share_proxy_settings", true);
4、保存为UTF-8无BOM格式,行尾用LF(Unix换行),不能用CRLF;【若文件含BOM头或Windows换行符,火狐启动时将直接崩溃退出】。
第三步:关闭WPAD自动发现
1、在地址栏输入about:config,确认风险提示后进入。
2、搜索network.proxy.wpad_url,双击清空其值(设为空字符串)。
3、再搜索network.proxy.type,确认其值为2(表示PAC模式),若非2则说明cfg未生效。

















