PAC 介绍
摘自维基百科
代理自动配置(英语:Proxy auto-config,简称PAC)是一种网页浏览器技术,用于定义浏览器该如何自动选择适当的代理服务器来访问一个网址。
PAC文件
首先,你要有一个可用的代理。没有代理的话就自己想办法搞一个吧。我不教╭(╯^╰)╮
PAC(Proxy Auto Config)实际上就是一个脚本(Script),通过这个脚本,我们能够让系统判断在怎么样的情形下,要利用哪一台Proxy来进行联机。
PAC文件采用JavaScript编写,想要实现高级规则,最好有点JavaScript基础^_^
基本函数
先新建一个*.pac文件,然后输(fu)入(zhi)以下代码。
1 | function FindProxyForURL(url, host) { |
FindProxyForURL是PAC文件的“主函数”,PAC文件一定要定义它,所有的请求都会进入这个方法,然后匹配规则。
其中 return ‘DIRECT’; 表示直接使用本机网络直接访问,这一段目前的含义是所有请求通过本机网络直接访问。
PAC一共支持三种访问方式
- DIRECT 直接联机而不透过 Proxy
- PROXY host:port 使用指定的 Proxy 伺服机
- SOCKS host:port 使用指定的 Socks 伺服机
比如将代码改成1
function FindProxyForURL(url, host) { return 'PROXY 127.0.0.1:7070';
则表示所有的请求,以HTTP方式,通过本机的7070端口访问。
通过域名匹配规则
我这里就介绍一个比较常用的规则,通过域名匹配,如果一个请求在一个域名下,我们就走代理访问。
直接上代码吧:1
function FindProxyForURL(url, host) { if (autoproxy_host.hasOwnProperty(host)) { return 'PROXY 127.0.0.1:7070'; lastPos = host.indexOf('.') + 1; host = host.slice(lastPos);
其实会Js的朋友应该很容易就能看懂了,不断分隔域名,然后去匹配autoproxy_host中设定好了的域名,如果匹配上了,我们就通过本机7070端口代理访问,否则就直接通过本机网络访问。比如这里,访问google.com和twitter.com的时候,就通过代理访问。
实际上用的时候,记得把127.0.0.1:7070换成你自己代理,如果是SSH的代理,就用SOCKS就好了。
使用PAC文件
Windows
Windows上面使用PAC文件很简单,新建一个你的PAC文件,放在一个固定的位置,比如1
D:\学习资料\国外学习资料\中外文化交流\跨越\别看\说了别看\搞毛啊\setting.pac
然后,Internet设置 -> 连接 -> 局域网设置
勾选“自动检测设置”以及“使用自动配置脚本”,在“地址”里面填写file:\\\ 加 文件路径
,如下
然后多确认几次就好了,打开浏览器或者IE(没错我就是来黑IE的)试试看吧!
Mac OSX
Mac上面比较麻烦,因为最新的OSX是不支持本地文件设置的,你需要填写一个网络地址。比较好的办法是你现在本地建立一个服务器,然后把你的pac文件丢进去,然后通过http能访问就好了。
在Mac上建立本地服务器的方法很多,比如自带的apache。直接在命令行输入
一般默认的目录都是/Library/WebServer/Documents
,你也可以修改/etc/apache2/httpd.conf
里面的 DocumentRoot配置项,修改服务器的默认路径。
把pac文件放进根目录,然后就可以直接通过 http://localhost/file.pac 来访问了。
接下来是配置网络,系统偏好 -> 网络 -> 高级 -> 代理
勾选“Automatic Proxy Configuration”,在右侧填写pac文件路径就好了。
至此,大伙儿就开开心心地来“科学上网”吧!!!(^o^)/!!
结束语
然后,没错,我就是被颜大大拜托过来耍宝的!= ̄ω ̄=