FoxyProxy के लिए एक और वोट, लेकिन अगर आपका सेटअप जटिल है, तो मैं PAC सुविधा का उपयोग करने का सुझाव दूंगा । मेरे पास चुनने के लिए दो प्रॉक्सी सर्वर हैं, लेकिन जिसे चुनना है वह कभी-कभी बहुत मुश्किल हो जाता है। PAC का उपयोग करने के लिए FoxyProxy को सेटअप करने के लिए, Proxy Details
टैब पर जाएं और चयन करें Automatic Proxy Configuration URL
और जैसे कुछ दर्ज करें file:///home/me/.myproxy.pac
। यहाँ PAC फ़ाइल का एक उदाहरण है:
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;
}
ध्यान दें कि उपरोक्त उदाहरण काफी अक्षम है क्योंकि यह आमतौर पर हर एक HTTP कनेक्शन के लिए myproxy.company.com पर DNS लुकअप के साथ हवा होगा; मैं हार्ड-कोड AT_HOME
और AT_WORK
.pac फ़ाइल को बूट समय पर एक बाहरी प्रोग्राम के माध्यम से करता हूं । लेकिन यह एक उदाहरण है कि यदि आप की जरूरत है तो आप अपनी पीएसी स्क्रिप्ट को कितना जटिल बना सकते हैं।