PAC

https://github.com/gfwlist/gfwlist

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的朋友应该会知道, de style="margin: 0px; padding: 0px;" >shadowsocks.exede> 同级目录下有一个 de style="margin: 0px; padding: 0px;" >pac.txtde> 文件,这正是我们本文刚刚所说的pac配置文件。

打开 de style="margin: 0px; padding: 0px;" >pac.txtde> 文件,可以看到如下内容

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

PAC的优势

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

  1. 不影响国内网站的访问速度,防止无意义的绕路
  2. 节省Shadowsocks服务的流量,节省服务器资源
  3. 控制方便

PAC文件及user-rule文件的语法规则

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

1. 添加到 de style="margin: 0px; padding: 0px;" >pac.txtde> 文件中

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

2. 添加到 de style="margin: 0px; padding: 0px;" >user-rule.txtde> 文件中

编辑 de style="margin: 0px; padding: 0px;" >user-rule.txtde> 文件,这里和 de style="margin: 0px; padding: 0px;" >pac.txtde> 文件语法不完全相同,user-rule文件中,每一行表示一个URL通配符,但是通配符语法类似。例如添加一行de style="margin: 0px; padding: 0px;" >||ip138.com^de> ,然后记得右键小飞机-PAC-从GFWList更新本地PAC,打开ip138可以看到IP已经变成Shadowsocks所用的国外代理了

注意末尾不要忘记 de style="margin: 0px; padding: 0px;" >^de> 符号,意思是要么在这个符号的地方结束,要么后面跟着?,/等符号。

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

  1. 通配符支持。比如 de style="margin: 0px; padding: 0px;" >*.example.com/*de> 实际书写时可省略 de style="margin: 0px; padding: 0px;" >*de> , 如de style="margin: 0px; padding: 0px;" >.example.com/de> , 和 de style="margin: 0px; padding: 0px;" >*.example.com/*de> 效果一样
  2. 正则表达式支持。以 de style="margin: 0px; padding: 0px;" >\de> 开始和结束, 如 de style="margin: 0px; padding: 0px;" >\[\w]+:\/\/example.com\de>
  3. 例外规则 de style="margin: 0px; padding: 0px;" >@@de> ,如 de style="margin: 0px; padding: 0px;" >@@*.example.com/*de> 满足 de style="margin: 0px; padding: 0px;" >@@de> 后规则的地址不使用代理
  4. 匹配地址开始和结尾 de style="margin: 0px; padding: 0px;" >|de> ,如 de style="margin: 0px; padding: 0px;" >|http://example.comde> 、 de style="margin: 0px; padding: 0px;" >example.com|de> 分别表示以 de style="margin: 0px; padding: 0px;" >http://example.comde> 开始和以 de style="margin: 0px; padding: 0px;" >example.comde> 结束的地址
  5. de style="margin: 0px; padding: 0px;" >||de> 标记,如 de style="margin: 0px; padding: 0px;" >||example.comde> 则 de style="margin: 0px; padding: 0px;" >http://example.comde> 、de style="margin: 0px; padding: 0px;" >https://example.comde> 、 de style="margin: 0px; padding: 0px;" >ftp://example.comde> 等地址均满足条件
  6. 注释 de style="margin: 0px; padding: 0px;" >!de> 。 如 de style="margin: 0px; padding: 0px;" >!我是注释de>

更多user-rule.txt语法规则,可以参考AdBlockPlus过滤规则https://adblockplus.org/en/filter-cheatsheet

时间: 2024-08-09 02:20:07

PAC的相关文章

windows PAC脚本解析的软件 pac syntax检查

参考文档: https://zhuanlan.zhihu.com/p/22166179?refer=barretlee https://github.com/pacparser/pacparser https://community.mcafee.com/thread/47557?tstart=0 动态在线检查网页测试i: http://home.thorsen.pm/proxyforurl 安装步骤参考: 环境(centos6.7 python环境默认2.6 2.7 都可以) https://

为什么机器能够学习——PAC Learnability

机器学习中,我们根据训练集训练一个模型,来对测试数据进行预测.通常我们并不关心模型在训练集上的好坏(即训练误差,in sample error),因为即使一个模型在训练集上表现的再好也未必具有举一反三的能力,因此我们更着重于其在从未见过的数据(测试集)上的正确率(即泛化误 差,generalization error.out sample error).因为泛化误差从整体上告诉我们 模型表现的好坏,这是我们事先不知道的一个参数, 正是由于不知道,所以我们才要估计它, 这也是机器学习的核心任务.初

PAC 自动代理

最近看了 HTTP权威指南 里面有关于  代理的介绍,代理有很多种,今天主要来说说 自动代理PAC PAC(Proxy Auto Config) 是一个 Script:经由编写这个 Script,我们可以让系统判断在怎么样的情形下,要利用哪一台 Proxy 来进行联机 PAC文件是纯文本格式的,实际上也是个Javascript文件. 在PAC文件中一定要定义 Function FindProxyForURL //参数url是用户输入的url,参数host是url中的主机名. function F

PAC学习框架

PAC学习框架 转自:http://www.cnblogs.com/alphablox/p/5935826.html PAC学习框架是机器学习的基础.它主要用来回答以下几个问题: 什么问题是可以高效学习的? 什么问题本质上就难以学习? 需要多少实例才能完成学习? 是否存在一个通用的学习模型? PAC=probably approximately correct,很可能接近正确的 --------------------- 什么问题能得到"可能接近正确"的结果呢?原文说的比较抽象,我把他

自定义PAC文件实现代理自动配置

首先了解什么是PAC文件,点击了解详情. 在了解了PAC文件之后,那么后面的事情就比较简单了. 按照规范编写出适合自己的PAC文件,让网络更为自由(作为开发人员已被逼上不归路了)! 需要的朋友点击下载(下载完后打开文件修改对应的端口值) 代理工具集点击下载 下面以GoAgentX为例说明使用方法: 选择完后,记得点击下面的"Restart PAC Server"按钮进行立即生效: 选择适当的模式: 一般下图的网络配置是自动配置的: 自定义PAC文件实现代理自动配置,布布扣,bubuko

PAC自动代理文件格式,教你如何写PAC文件

PAC文件格式 PAC文件是纯文本格式的,实际上就是JavaScript文件.Chrome/Chromium的扩展Switchy!的"Auto Switch Mode"功能实际上也是创建和维护一个简单的PAC文件,但功能比较弱. 对于一般的应用,即使你几乎不懂JavaScript和编程,也可以通过本文的介绍实现基本的功能. PAC文件FindProxyForURL函数  PAC文件中必须包含一个函数:FindProxyForURL(url, host). 参数url是用户输入的url,

【机器学习基础】理解为什么机器可以学习1——PAC学习模型

引言 自从下定决心认真学习机器学习理论开始,接触到很多基本问题,但其实都不是很理解,比如损失函数.风险函数.经验结构最小化.结构风险最小化.学习方法的泛化能力.VC维等,这些概念在学习中都纯属空泛的概念存在,我都不理解这些概念存在的意义. 为什么会存在这样的问题呢?我自己想了一下,有几个原因:首先,很多相关的书籍在讲授这些概念的时候,很少说这些为什么会有这样的概念问题,为解决什么问题引入的这些概念:然后,还有一些书,在简单表述了这些概念之后就立马挨个介绍算法了,遇到这样的书也会忽视这些基础问题的

Foundations of Machine Learning: The PAC Learning Framework(2)

Foundations of Machine Learning: The PAC Learning Framework(2) (一)假设集有限在一致性下的学习界. 在一篇文章中我们介绍了PAC-learnable的定义,以及证明了一个例子是PAC-learnable. 这一节我们介绍当hypothesis set是有限时,且算法$\mathcal{A}$相对与样本S满足一致性条件下的PAC问题.下一节介绍不一致条件下的PAC问题. 一致性(consistent):如果一个算法产生的假设$h_s$

PAC全自动脚本代理

Proxy 极低成本绕过GFW的一个PAC代理 Download proxy.zip 支持项目-无论捐赠的数目是多少,我们都表示最真诚的感谢! Proxy 轻量级的FQ工具,不需要安装客户端.可以设置系统代理,也可以设置浏览器代理或者配合SS等插件使用. 免费pac代理 请根据速度以及各自需求选择代理服务器PAC地址. 日本:https://pac.mcplay.cn/jp.pac 台湾:台湾节点停止提供 我们诚邀您花费5分钟填写一份调查问卷,以便我们更好的提供服务!-点击填写 温馨提醒:我们的