FoxyProxy'ye bir oy daha, ancak kurulumunuz karmaşıksa PAC özelliğini kullanmanızı öneririm . Seçmek için iki proxy sunucusu var, ancak hangisini seçeceğimi bazen çok zorlaşıyor. FoxyProxy'yi PAC'yi kullanacak şekilde ayarlamak için Proxy Details
sekmeye gidin ve Automatic Proxy Configuration URL
benzeri bir şey seçin ve girin file:///home/me/.myproxy.pac
. İşte bir PAC dosyası örneği:
function FindProxyForURL(url, host)
{
var DIRECT = "DIRECT";
var PROXY = "PROXY myproxy.company.com:80";
var LOCAL = "PROXY localhost:8118";
var rc = "";
// alert("My IP Address is: " + myIpAddress());
// special: DIRECT / localhost
if (dnsResolve(host) == "127.0.0.1") {
rc = DIRECT;
}
// special: DIRECT / plain name (no domain name (i.e. no dots)) (e.g. http://foobar)
// (must be local to where I'm at)
else if (isPlainHostName(host)) {
rc = DIRECT;
}
else {
// special: LOCAL / not at home & restricted hosts
if ((dnsDomainIs(host, "frank.home.com")) ||
(dnsDomainIs(host, "firewall.home.com")) ||
(dnsDomainIs(host, "backupserver.home.com"))) {
// determine if we're at home or not; home can resolve the laser printer
var AT_HOME = (isResolvable("myprinter.home.com") ? true : false);
if (! AT_HOME) {
rc = LOCAL;
}
else {
rc = DIRECT;
}
}
// general: DIRECT / not at work
else {
// determine if we're at work or not; work can resolve proxy server
var AT_WORK = (isResolvable("myproxy.company.com") ? true : false);
if (! AT_WORK) {
rc = DIRECT;
}
// ASSUMED: AT_WORK
// special: LOCAL / at work & broken work links
// (must use local proxy server to connect)
else if ((host == "download.company.com") ||
(host == "search.company.com") ||
(host == "www.company.com")) {
rc = LOCAL;
}
// general: DIRECT / at work & work intranet links
else if ((dnsDomainIs(host, ".company.com")) ||
(dnsDomainIs(host, ".companylocal.com")) ||
(dnsDomainIs(host, ".legacycompany.com"))) {
rc = DIRECT;
}
// general: DIRECT / at work & 192.168.*
else if (isInNet(host, "192.168.0.0", "255.255.0.0")) {
rc = DIRECT;
}
// default: go through LOCAL
else {
rc = LOCAL;
}
}
}
// alert("Proxy for {" + host + "} is: " + rc);
return rc;
}
Yukarıdaki örneğin, her bir HTTP bağlantısı için myproxy.company.com adresinde bir DNS aramasıyla birlikte kurulacağından oldukça yetersiz olduğunu unutmayın; Ben koda AT_HOME
ve AT_WORK
önyükleme sırasında harici bir program aracılığıyla .pac dosyasında. Ancak, gerekirse, PAC komut dosyanızı ne kadar karmaşık hale getirebileceğinize bir örnek.