Shadowsocks(R)控制代理模式的地方主要就是这三个设置:系统代理模式
、PAC
、代理规则
,相信很多人对这三个设置会感到很迷惑,尤其是PAC
和代理规则
里面相似的选项,那么它们究竟应该怎么设置,又分别实现什么功能呢?
系统代理模式
Shadowssocks(R)右键菜单的第一个选项就是系统代理模式
,要想了解它是干什么的,首先要知道什么是系统代理设置
。
系统代理设置
顾名思义就是Shadowssocks(R)在系统设置
里面设置一个代理服务器
,让软件可以直接调用系统代理设置
直接连接代理服务器
,而不需要单独的配置。
这样所有的软件都可以知道现在有一个代理服务器
可以连接,而且只要跟随系统代理设置
即可连接,无需额外配置。
一般而言,只有浏览器(包括内嵌在各种软件中的浏览器,比如 WeGame、优酷、迅雷9等软件中的内嵌浏览器)会自动调用系统代理
进行连接。
而其它大部分应用一般是不会自动启用系统代理
进行连接的,要在支持使用代理的软件里面手动设置, 所以这个选项的设置不会影响到这些软件 。
这是因为绝大部分需要进行代理的需求都在浏览器上,其它软件很少有这个需要(如果有的话一般会提供配置和开关给用户)。
查看系统代理设置:
Win 10:设置 > 网络和 Internet > 代理
所以,系统代理设置
控制的就是这个,它有三个选项:
直连模式
直接模式
会在系统代理设置
里关闭代理,使启用系统代理设置
的软件(一般为浏览器)直接连接网络。
但是,它并没有关闭在本地构建的代理服务器
,其它手动配置代理的软件仍然可以进行连接。
PAC模式
PAC模式
会在系统代理设置
设置一个PAC脚本
文件,让系统通过这个文件自动选择每一个连接是否启用代理服务器
,以及选择哪一个代理服务器
。
详细的PAC
介绍见 PAC 一节。
全局模式
全局模式
会在系统代理设置
手动设置一个代理服务器
,所有跟随系统代理设置
的软件(一般是浏览器)都会使用这个代理服务器
。
PAC
代理自动配置(英语:Proxy auto-config,简称PAC)是一种网页浏览器技术,用于定义浏览器该如何自动选择适当的代理服务器来访问一个网址。
一个PAC文件包含一个JavaScript形式的函数“FindProxyForURL(url, host)”。这个函数返回一个包含一个或多个访问规则的字符串。用户代理根据这些规则适用一个特定的代理器或者直接访问。当一个代理服务器无法响应的时候,多个访问规则提供了其他的后备访问方法。浏览器在访问其他页面以前,首先访问这个PAC文件。PAC文件中的URL可能是手工配置的,也可能是是通过网页的网络代理自动发现协议(WPAD)自动配置的。
简单来说,PAC
是一种自动选择每一个连接是否使用代理服务器
,以及选用哪一个代理服务器
的技术,而自动选择是通过一个JavaScript
脚本文件实现的,这个脚本文件制定了一系列的规则进行判断。
我们选择在系统代理模式
中选择PAC模式
后,PAC
才会生效。
在系统设置里面可以看到PAC
脚本地址:
复制地址在浏览器打开后可以下载PAC
脚本文件,这个文件很大,这里我列出部分内容:
1 |
|
这个也就是Shadowsocks(R)文件夹下的pac.txt
文件的内容。
Shadowsocks(R)右键菜单的PAC
选项可以更新PAC文件
为各种规则,但是貌似不能自动更新,可以定期手动更新下来获取最新的PAC文件
规则。
代理规则
Shadowsocks(R)会在用户的电脑上构建一个本地Socks5代理
,代理规则
选项是对所有连接了这个代理的网路请求进行判断,根据不同的判断依据选择是否进行代理。所以,代理规则
选项是控制是否进行代理的最终开关。
代理规则
选项通过域名的IP地址
来判断是否某个域名是否来自大陆
,也可以通过自定义规则来判断。
代理流程图
参考网络上的资料,我画了一张Shadowsocks(R)代理流程图:
通过流程图可以看出,如果系统代理模式
设置了PAC模式
,浏览器等通过系统代理设置
进行连接的软件要通过PAC
、代理规则
两层判断,而剩余情况只需通过代理规则
这一层判断。
参考资料: