Firefox自动检测代理参数查看及Ubuntu下PAC文件地址获取方法
我来帮你一步步解决这个问题——毕竟自动代理模式下想拿到具体的PAC地址或代理信息确实有点绕,尤其是要在Firefox外复用的时候。
一、从Firefox本身提取PAC地址
Firefox开启「自动检测代理」后,会通过WPAD(Web Proxy Autodiscovery Protocol)自动获取PAC文件,并且会把这个PAC的URL存在配置里,你可以直接查看:
- 打开Firefox,在地址栏输入
about:config,点击“接受风险并继续” - 在搜索框里输入
network.proxy.autoconfig_url - 这个参数的值就是Firefox自动检测到的PAC文件完整URL(比如
http://wpad.example.com/wpad.dat)
如果想直接拿到本地缓存的PAC文件:
- 先打开
about:profiles,找到你正在使用的配置文件,查看「缓存文件夹」的路径(比如~/.mozilla/firefox/xxxx.default-release/Cache) - 打开终端,用命令搜索缓存里的PAC文件:
找到对应的缓存文件后,直接打开就能看到PAC的内容。grep -r "application/x-ns-proxy-autoconfig" ~/.mozilla/firefox/<你的配置文件夹>/Cache
二、从PAC文件中提取代理地址:端口
拿到PAC文件后,你需要分析里面的FindProxyForURL函数——这是PAC的核心逻辑,会根据不同URL返回对应的代理规则。举个例子:
function FindProxyForURL(url, host) {
if (shExpMatch(host, "*.example.com")) {
return "PROXY proxy.example.com:8080; DIRECT";
}
return "DIRECT";
}
这里的proxy.example.com:8080就是你要找的代理地址和端口。如果PAC里有多个规则,你可以根据自己常用的URL匹配对应的代理条目。
三、通用Linux下查找PAC文件的方法
如果Firefox还没获取到PAC,或者你想直接从网络层面查找,可以用这些方法:
1. 用DNS查询WPAD记录
WPAD的原理是先通过DNS查找wpad这个主机名,终端执行:
dig wpad
如果返回了A记录(比如wpad.example.com的IP),那PAC文件大概率在http://wpad/wpad.dat或者http://wpad.example.com/wpad.dat,直接用curl下载:
curl http://wpad/wpad.dat -o wpad.pac
2. 抓包查看WPAD请求
如果DNS查不到,或者PAC路径不是默认的wpad.dat,可以用tcpdump抓HTTP请求,看Firefox和WPAD服务器的交互:
sudo tcpdump -i any port 80 or port 443 | grep -i wpad
启动抓包后打开Firefox,就能看到Firefox请求PAC文件的具体URL了。
四、验证代理可用性
拿到代理地址后,你可以在终端用curl测试是否能正常使用:
curl -x proxy.example.com:8080 https://www.google.com
如果返回正常内容,说明代理可以在Firefox外复用。
内容的提问来源于stack exchange,提问作者Covich

