Firefox可通过PAC脚本实现特定域名走本地代理(127.0.0.1:8080),其余直连:需在about:config中将network.proxy.type设为2,network.proxy.autoconfig_url设为file:///C:/proxy.pac,并确保PAC文件UTF-8无BOM、路径合法、规则语法正确。

你需要让火狐浏览器只对特定地址走本地代理(比如 127.0.0.1:8080),其余流量直连,避免全局代理影响日常访问——这要求绕过“手动配置代理”的全协议覆盖模式,改用更精细的规则控制。
启用 Firefox 的 proxy auto-config(PAC)功能
第一步:在地址栏输入 about:config → 回车 → 点击“接受风险并继续”。
第二步:在搜索栏输入 network.proxy.type → 双击该项,将值改为 【2】(表示启用自动代理配置脚本)。
第三步:再搜索 network.proxy.autoconfig_url → 双击编辑 → 填入一个本地 PAC 文件路径,例如:file:///C:/proxy.pac(注意是三个斜杠,且路径必须是绝对路径、使用正斜杠、文件需真实存在)。
编写本地 PAC 文件(proxy.pac)
用记事本新建文本文件,保存为 UTF-8 编码,文件名必须是 proxy.pac,扩展名不可为 .txt。
内容如下(复制粘贴即可):
function FindProxyForURL(url, host) {
if (shExpMatch(host, "localhost") ||
shExpMatch(host, "127.0.0.1") ||
shExpMatch(host, "*.test") ||
shExpMatch(host, "dev.internal")) {
return "PROXY 127.0.0.1:8080";
}
return "DIRECT";
}
说明:这段脚本会让所有匹配 localhost、127.0.0.1、以 .test 结尾或等于 dev.internal 的域名走本地代理;其余全部直连。你可以按需修改 shExpMatch 中的条件,但注意语法必须严格——多一个空格、少一个引号都会导致脚本失效,Firefox 将静默回退为 DIRECT。
验证与调试
方法一:重启 Firefox 后,在地址栏访问 about:networking#proxy → 查看 “Auto-Config URL” 是否显示你设置的 file:// 路径,且状态为 “Active”。
方法二:访问 http://ipinfo.io 确认 IP 未被代理;再访问一个你写在 PAC 里的目标(如 http://dev.internal),用 Burp 或 Charles 检查是否收到请求。
如果代理未生效:检查 PAC 文件路径是否含中文或空格 → 【必须用英文路径,且不能有空格】;检查 about:config 中 network.proxy.type 是否为 2(不是 1);检查文件编码是否为 UTF-8 无 BOM。


















