跳至主要内容

浅析PAC,教你动手修改你的PAC文件及user-rule文件实现自动代理

浅析PAC,教你动手修改你的PAC文件及user-rule文件实现自动代理
时间 2015-08-09 13:14:11  阿超的博客
原文  http://www.awolau.com/shadowsocks/start-pac.html
主题 Shadowsocks
Shadowsocks作为现在一种很流行的穿墙工具,以其轻量级、速度感人等优点深受广大网友热捧。与VP_N相比,他就像一把锋利的”瑞士军刀”,不用受制于“系统全局代理”模式的困扰,控制更加便捷,基于Socks5安全加密协议,防止GF*W通过分析流量特征从而干扰的问题。而又不像GoAgent这种集中式爬墙模式,一般不会出现全局封锁等现象。不管你是因为什么原因喜欢上Shadowsocks,我相信她一定有给你带来好的体验的方面。

在Shadowsocks里面,系统代理模式有两种,一种是“系统代理模式”,另一种是“PAC代理模式”,通常情况下我们会选择后者,今天这里给大家解析一下PAC模式的原理以及如何修改PAC文件、user-rule文件实现自动代理,希望大家可以通过本文更的“科学上网”。

什么是PAC

代理自动配置(英语:Proxy auto-config,简称PAC)是一种网页浏览器技术,用于定义浏览器该如何自动选择适当的代理服务器来访问一个网址。

一个PAC文件包含一个JavaScript形式的函数“FindProxyForURL(url, host)”。这个函数返回一个包含一个或多个访问规则的字符串。用户代理根据这些规则适用一个特定的代理其或者直接访问。当一个代理服务器无法响应的时候,多个访问规则提供了其他的后备访问方法。浏览器在访问其他页面以前,首先访问这个PAC文件。PAC文件中的URL可能是手工配置的,也可能是是通过网页的网络代理自发现协议(Web Proxy Autodiscovery Protocol)自动配置的。

上面是从维基百科摘录的关于PAC的解释,我做了一个简单的图片解释什么是PAC:


简单的讲,PAC就是一种配置,它能让你的浏览器智能判断哪些网站走代理,哪些不需要走代理。用过Shadowsocks的朋友应该会知道, shadowsocks.exe 同级目录下有一个 pac.txt 文件,这正是我们本文刚刚所说的pac配置文件。


打开 pac.txt 文件,可以看到如下内容


可以看到pac配置文件是用的JavaScript语法,里面有一个变量 rules ,是一个JSon数组格式的数据类型,数组里面存放的是各种URL的通配符,那么在pac模式下,如果当访问符合这个数组里面任意一个URL通配符的网址时,系统会走代理,反之直连。比如图中pac配置,如果访问 http://www.cloudflare.com/index.php 时,会走代理,而访问百度、新浪等国内网站则会选择直连方式。

PAC的优势

PAC自动代理属于智能判断模式,相比全局代理,它的优点有:

不影响国内网站的访问速度,防止无意义的绕路
节省Shadowsocks服务的流量,节省服务器资源
控制方便
PAC文件及user-rule文件的语法规则

那么,当一个网站被墙,如何添加到PAC里面让其能够正常访问呢?在Shadowsocks里面,可以有如下两个方式:

1. 添加到 pac.txt 文件中

编辑 pac.txt 文件,模仿里面的一些URL通配符,再添加一个,例如 "||ip138.com", ,注意不要忘记了 , 半角逗号,那么意思就是所有 ip138.com 域名下的网址都将走Shadowsocks代理,打开ip138可以看到IP已经变成Shadowsocks所用的国外代理了


2. 添加到 user-rule.txt 文件中

编辑 user-rule.txt 文件,这里和 pac.txt 文件语法不完全相同,user-rule文件中,每一行表示一个URL通配符,但是通配符语法类似。例如添加一行 ||ip138.com^ ,打开ip138可以看到IP已经变成Shadowsocks所用的国外代理了


注意末尾不要忘记 ^ 符号,意思是要么在这个符号的地方结束,要么后面跟着?,/等符号。

自定义代理规则的设置语法与GFWlist相同,语法规则如下:

通配符支持。比如 *.example.com/* 实际书写时可省略 * , 如 .example.com/ , 和 *.example.com/* 效果一样
正则表达式支持。以 \ 开始和结束, 如 \[\w]+:\/\/example.com\
例外规则 @@ ,如 @@*.example.com/* 满足 @@ 后规则的地址不使用代理
匹配地址开始和结尾 | ,如 |http://example.com 、 example.com| 分别表示以 http://example.com 开始和以 example.com 结束的地址
|| 标记,如 ||example.com 则 http://example.com 、 https://example.com 、 ftp://example.com 等地址均满足条件
注释 ! 。 如 !我是注释
更多user-rule.txt语法规则,可以参考AdBlockPlus过滤规则 https://adblockplus.org/en/filter-cheatsheet

评论

此博客中的热门博文

日本VPS —— ConoHa

日本VPS —— ConoHa,介绍一些心得体验 ConoHa管理面板 作为一名职业PHPer,Linux终究还是逃不了(尽管我并不喜欢对着黑底白字敲代码)。为了锻炼自己的能力,我忍痛将小站从别人赞助的虚拟空间里搬离,决定租个VPS挂SS挂网站,并用于各种实验和学习,毕竟虚拟机还是不过瘾。以下内容纯手打,菜鸟之见,若有不足还望指出。 VPS的选择 首先本着支持国产的心态,看了看国内(含香港)的一些VPS,贵得吓人。再看看国外VPS,默默的放弃了国内 在V2EX和一些论坛逛了一个上午,也做了一些相关的咨询,不少人建议我买搬瓦工(BandwagonHost),也有推荐其他国家的VPS。这些VPS无一例外性价比超高,但由于距离远,延迟和稳定性都不太好,挂个网站无妨,但对于我这种还需要挂SS、做实验和学习的人来说并不那么合适。眼光回到亚洲,看看VPS行业比较发达的日本,Linode-JP、Sakura、ConoHa、Vultr四家不约而同的出现在各种帖子、评测中,我也跟风看看这几家吧! Linode 说到VPS,当然都是Linode大法好,可是Linode东京节点无限缺货啊,据说仅限老用户购买 被VPS代购玩坏了 ,X宝上的Linode代购也只是给你开通子帐号,万一他哪天不高兴了,随时可以把你的VPS弄个底朝天,太没安全保障;网上也没见到有人愿意转让的,无奈放弃。 Sakura 据说在日本口碑极好,被称为日本的Linode。然而申请条件需要你肉身在日本…作为一个优秀的 退役共青团员  预备党员,果断放弃。不过据说也是因为这个原因,才能保证服务器稳定。毕竟现在国内IT行业飞速发展,涌到国外到处 玩坏 购买VPS的国人越来越多 中国人真是太可怕了 Vultr 本来差点就要买这家了,口碑还不错。不过对于英文界面,总是有种莫名的恐惧感(虽然基本上都看得懂),再加上跟ConoHa相比,性价比占下风,放弃 ConoHa 一打开网页,就被满满的中文吓到了,而且看起来并不是机翻,网页看起来也算顺眼 (美云酱也很顺眼) 。900日元(约45RMB,安倍经济学大法好,多亏了它日元才降降降)双核1G、50GSSD、不限流量、100M保底带宽,满满的性价比 (国内VPS吃翔) 。而且点击别人的邀请链接注册的话,还可以...

用Shadowsocks和Proxifier自由访问互联网

用Shadowsocks和Proxifier自由访问互联网 发表于 2014年6月25日 ,共  98,416  次阅读 最近国内到国外网络情况急剧恶化,具体原因这里不便细说,只是对于我这种Google重度用户来说,是一件无比蛋疼的事情。用修改hosts的方便基本只能使用一两天,还是使用代理吧。之前有文章介绍过 SSH + chrome(firefox)的方式访问国外网站 ,但是鉴于目前监管已经涉及到SSH,为了VPS的安全,今天介绍另外一种方法:”用Shadowsocks和Proxifier无缝访问互联网”,同时还能让电脑上不支持代理访问的软件使用。 一、软件介绍 1、什么是Shadowsocks shadowsocks一个可穿透防火墙的轻量代理,目前已经支持包括WIN,安卓,IOS等所有平台 。  官网地址: http://www.shadowsocks.org/ (需梯子)  各版本下载地址: http://shadowsocks.org/en/download/clients.html  目前我使用的是shadowsocks-gui:http://sourceforge.net/projects/shadowsocksgui/files/dist/shadowsocks-gui-0.4-win-ia32.7z 2、什么是Proxifier Proxifier是一款功能非常强大的socks5客户端,可以让不支持通过代理服务器工作的网络程序能通过HTTPS或SOCKS代理或代理链。支持 64位系统,支持Xp,Vista,Win7,MAC OS ,支持socks4,socks5,http代理协议,支持TCP,UDP协议,可以指定端口,指定IP,指定域名,指定程序等运行模式,兼容性非常好,和SOCKSCAP属于同类软件,不过SOCKSCAP已经很久没更新了,不支持64位系统。 有许多网络应用程序不支持通过代理服务器工作,Proxifier 解决了这些问题和所有限制,让您有机会不受任何限制使用你喜爱的软件。此外,它让你获得了额外的网络安全控制,创建代理隧道,并添加使用更多网络功能的权力。 Proxifier 使您可以: 1、通过代理服务器运行任何网络应用程序。对于软件不需要有什...