如何对特定域使用自动配置代理PAC文件
时间:2020-01-09 10:40:48 来源:igfitidea点击:
如何使用PAC文件自动配置代理设置以隐藏一个域并直接连接其他所有域?
如何在PAC文件中指定URL以绕过代理服务器?
如何使用PAC文件创建例外?
PAC文件只不过是代理服务器自动配置文件。
这是浏览器调用的专用JavaScript函数定义,用于确定如何处理请求。
换句话说,大多数PAC文件开发都需要Javascript技能。
语法
PAC文件的一个非常简单的示例是:
function FindProxyForURL(url, host)
{
return "PROXY server1.theitroad.local:3128; DIRECT";
}
您需要在Web服务器DocumentRoot中创建并上传proxy.pac文件。
该文件为浏览器在端口3128上使用server1.theitroad.local的每个请求设置一个基本的代理服务器。
Firefox,Chrome,Opera和IE使用您的计算机的系统代理设置来连接到网络。
但是,您可以通过访问网络设置选项来更改这些设置。
您需要提供proxy.pac文件的URL。
在"自动代理配置URL"框中,执行proxy.pac文件的URL,例如http://192.168.1.100/proxy.pac或http://server1.theitroad.local/proxy.pac:
设置firefox pac文件网址
例子
在此示例中,您将代理服务器用于foo.example.com,并直接连接到所有其他站点。
function FindProxyForURL(url, host) {
if ( localHostOrDomainIs(host, "foo.example.com") ) {
return "PROXY server1.theitroad.local:3128";
} else {
return "DIRECT";
}
}
此proxy.pac文件允许通过代理服务器连接各种主机/域,并将其余主机直接连接到Internet:
function FindProxyForURL(url, host) {
// Your proxy server name and port
var proxyserver = 'server1.theitroad.local:3128';
//
// Here's a list of hosts to connect via the PROXY server
//
var proxylist = new Array(
"theitroad.com",
"reddit.com",
"www.theitroad.local",
"mail.google.com",
"www.pandora.com",
"www.google.com"
);
// Return our proxy name for matched domains/hosts
for(var i=0; i<proxylist.length; i++) {
var value = proxylist[i];
if ( localHostOrDomainIs(host, value) ) {
return "PROXY "+proxyserver;
}
}
return "DIRECT";
}
您创建的PAC文件很容易修改,以指定将绕过代理或包含在代理中的任意数量的URL,即可以使用以下语法创建例外:
if (shExpMatch(url, "*.slashdot.org/*"))
{return "DIRECT";}
或通过代理服务器连接reddit.com:
if (shExpMatch(url, "*.reddit.com/*"))
{return "PROXY proxy42.ca.theitroad.local:8080";}

