XuLaLa.Tech

首页客户端下载Windows 使用V2Ray 教程SSR 教程Clash 教程

代理自动配置(PAC)如何编写

2025.04.09

代理自动配置(PAC)文件是一组用JavaScript编码的脚本,用于确定web浏览器请求是直接发送到它们想要的目的地,还是被转发到web代理服务器。
换句话说,PAC文件定义了web浏览器/设备如何自动选择适当的访问方法(代理或直接)来获取给定的URL。

PAC文件的最大优点是,它们通常相对容易创建和维护,它们只允许您代理您想要代理的站点,将隐私考虑在内,并将快速处理最小化。

PAC的好处

  • 灵活和可扩展
  • 支持所有流行的浏览器
  • 易于管理和维护在任何规模的网络
  • 能够支持使用标准浏览器的移动设备

PAC文件包含基本结构:

function FindProxyForURL(url, host) {
// This is a template PAC file for schools built by Lightspeed Systems
// Your proxy server name and port
var proxy_yes = "PROXY YOUR_PROXY_FQHN:PORT";
var proxy_no = "DIRECT";
// If the hostname matches, send to proxy.
if (shExpMatch(url, "*.google.com/*"))
return proxy_yes;
// DEFAULT RULE: All other traffic, send direct
return proxy_no;
}
Function
function FindProxyForURL(url, host){
}  

当web浏览器发出请求时,请求首先通过PAC文件查看被请求的URL是否与函数中设置的任何规则相匹配。

参数
URL——web浏览器请求的URL。
Host——从URL中提取的主机名。结果
当函数被执行时,它根据在函数本身中设置的规则来决定请求应该发生什么。

结果通常如下:
DIRECT – 没有任何代理
PROXY – 应该代理连接。

完整例子:

var domains = {
"google.com": 1,
"*.google.com": 1,
"facebook.com": 1,
"*.facebook.com":1
};
var proxy = "SOCKS5 192.168.0.75:8090; PROXY 192.168.0.75:8060;";
var direct = 'DIRECT;';
function FindProxyForURL(url, host) {
var lastPos;
do {
if (domains.hasOwnProperty(host)) {
return proxy;
}
lastPos = host.indexOf('.') + 1;
host = host.slice(lastPos);
} while (lastPos >= 1);
return direct;
}

参考资料

https://developer.mozilla.org/en-US/docs/Web/HTTP/Proxy_servers_and_tunneling/Proxy_Auto-Configuration_(PAC)_file

© 2010-2022 XuLaLa 保留所有权利 本站由 WordPress 强力驱动
请求次数:69 次,加载用时:0.665 秒,内存占用:32.19 MB