编辑PAC脚本文件自动设置代理Proxy访问WEB

时间: 2010-01-19 / 分类: 技术应用 / 浏览次数: 1,875 人喜欢 / 0个评论 发表评论

面对无所不在的GFW,翻墙似乎成了每个追求自由的人的必修课,但是大家都知道频繁使用代理来回切换是很费事的一件事(其实我自己是安装虚拟机VMWARE来翻墙的,好处有很多很多…),以前并没有注意到有这么一个好的方法可以使用PAC文件自动切换代理。PAC 是 proxy auto-config 的缩写,  它其实是一段  JavaScript脚本文件, 实现了一个叫做 FindProxyForURL (url, host)的函数, (url, host)是FindProxyForURL的两个参数,使用PAC文件也很简单,Pac 文件基本上主流的浏览器都支持它(IE最主流 – -),它的基本语法是这样

function FindProxyForURL(url, host) {
if (
localHostOrDomainIs(host, “super-secret.website.com”)
) {
return “PROXY my.proxy.server.com:8080″;
} else {
return “DIRECT”;
}
}

// 域名为super-secret.website.com的主机通过 PROXY my.proxy.server.com:8080 (通过主机my.proxy.server.com的8080端口来代理访问)代理来访问,其他域名不使用代理。

再来看更复杂的一些用法,一些网站我希望通过HTTP代理的方式来访问,另外一些网站我希望通过SOCKS 代理方式来访问,对于没有呗和谐的网站我希望不通过任何代理而之际访问。

function FindProxyForURL(url, host) {
//
// 在这您可以编辑一个需要通过PROXY server访问的网站的列表。标注序号的网站地方。
//
var proxy_1 = array(
“1.super-secret.website.com”,
“2.mostly-secret.website.com”,
“3.my-secret.other-website.com”,
“4.our-secret.other-website.com”
);

for (var i = 0, var count = proxy_1.length; i < length; i++) {
if (
localHostOrDomainIs(host, proxy_1[i])
) {
return “PROXY my.proxy.server.com:8080″;
}
}

//
// 这里您可以编辑一个需要通过SOCKS server访问的网站的列表。
// 标注序号的网站地方。
var proxy_2 = array(
“1.i-need-socks.website.com”,
“2.socks-are-warm-and-fuzzy.other-website.com”
);

for (var i = 0, var count = proxy_2.length; i < length; i++) {
if (
localHostOrDomainIs(host, proxy_1[i])
) {
return “SOCKS my.socks.server.com:1080″;
}
}

//
// 通过SOCKS server (my.socks.server.com:1080)代理方式访问
// strange.server.com (将 my.socks.server.com:1080 替换成您自己可用的 SOCKS 代理服务器)
//
if (
shExpMatch(url, “strange.server.com/socks/*”)
) {
return “SOCKS my.socks.server.com:1080″;
//
// 通过 PROXY server(PROXY other.proxy.server.com:8080) 访问
// strange.server.com (将 other.proxy.server.com:8080 替换成您自己的HTTP代理地址)
// shExpMatch 函数中您还可以使用通配符 “ * ” 进行拼配,如下。
} elseif (
shExpMatch(url, “strange.server.com/proxy/*”)
) {
return “PROXY other.proxy.server.com:8080″;
}
//
// 直接访问
//
return “DIRECT”;
}

这里给出一个配置好的PAC 文件,您可以简单修改其中的代理 127.0.0.1:7777 地址即可,注意如果是HTTP代理,要同时修改为PROXY 方式。

function FindProxyForURL(url, host) {
if (shExpMatch(url, “*.wikipedia.org/*”)) { return “SOCKS 127.0.0.1:1860″; }
if (shExpMatch(url, “*.apple.com/*”)) { return “SOCKS 127.0.0.1:1860″; }
if (shExpMatch(url, “*.tumblr.com/*”)) { return “SOCKS 127.0.0.1:1860″; }
if (shExpMatch(url, “*.soup.io/*”)) { return “SOCKS 127.0.0.1:1860″; }
if (shExpMatch(url, “*.pandora.com/*”)) { return “SOCKS 127.0.0.1:1860″; }
if (shExpMatch(url, “*.last.fm/*”)) { return “SOCKS 127.0.0.1:1860″; }
if (shExpMatch(url, “*.adobe.com/*”)) { return “SOCKS 127.0.0.1:1860″; }
if (shExpMatch(url, “*.photoshop.com/*”)) { return “SOCKS 127.0.0.1:1860″; }
if (shExpMatch(url, “*.google.com/*”)) { return “SOCKS 127.0.0.1:1860″; }
if (shExpMatch(url, “*.googlecode.com/*”)) { return “SOCKS 127.0.0.1:1860″; }
if (shExpMatch(url, “*.blogspot.com/*”)) { return “SOCKS 127.0.0.1:1860″; }
if (shExpMatch(url, “*.appspot.com/*”)) { return “SOCKS 127.0.0.1:1860″; }
if (shExpMatch(url, “*.acer.com/*”)) { return “SOCKS 127.0.0.1:1860″; }
if (shExpMatch(url, “*.demonoid.com/*”)) { return “SOCKS 127.0.0.1:1860″; }
if (shExpMatch(url, “*.alexa.com/*”)) { return “SOCKS 127.0.0.1:1860″; }
if (shExpMatch(url, “*.wikimedia.org/*”)) { return “SOCKS 127.0.0.1:1860″; }
if (shExpMatch(url, “*.flickr.com/*”)) { return “SOCKS 127.0.0.1:1860″; }
if (shExpMatch(url, “*.yahoo.com/*”)) { return “SOCKS 127.0.0.1:1860″; }
if (shExpMatch(url, “*.zend.com/*”)) { return “SOCKS 127.0.0.1:1860″; }
if (shExpMatch(url, “*.aptana.com/*”)) { return “SOCKS 127.0.0.1:1860″; }
if (shExpMatch(url, “*.uncyclopedia.tw/*”)) { return “SOCKS 127.0.0.1:1860″; }
if (shExpMatch(url, “uncyclopedia.tw/*”)) { return “SOCKS 127.0.0.1:1860″; }
if (shExpMatch(url, “*.uncyc.org/*”)) { return “SOCKS 127.0.0.1:1860″; }
if (shExpMatch(url, “*.youtube.com/*”)) { return “SOCKS 127.0.0.1:1860″; }
if (shExpMatch(url, “*.webarchive.org/*”)) { return “SOCKS 127.0.0.1:1860″; }

//可如法炮制增加需要代理的网站地址
return “DIRECT”;
}

您最后需要做的就是粘贴这段代码,新建记事本文件,粘贴并简单编辑网址同时替换上自己的代理地址保存为后缀为 .pac文件。IE下使用PAC文件操作步骤是,点击IE INERNET选项-连接-局域网设置-使用自动设置脚本 打上对勾并添上PAC文件路径既可。

原文地址:http://mikewest.org/2007/01/auto-configuring-proxy-settings-with-a-pac-file

无觅相关文章插件

发表评论

您的昵称 *

您的邮箱 * (绝对保密)

您的网站

icon_wink.gif icon_neutral.gif icon_mad.gif icon_twisted.gif icon_smile.gif icon_eek.gif icon_sad.gif icon_rolleyes.gif icon_razz.gif icon_redface.gif icon_surprised.gif icon_mrgreen.gif icon_lol.gif icon_idea.gif icon_biggrin.gif icon_evil.gif icon_cry.gif icon_cool.gif icon_arrow.gif icon_confused.gif icon_question.gif icon_exclaim.gif 

*