代理连接互联网有两种模式。 一个是全局代理,所有流量都通过代理服务器。 另一个是自动代理,根据规则决定是否使用代理。 通过安装自动代理,可以实现智能卸载,同时使用多个代理服务器。
虽然有多种实现自动代理的方案,但是浏览器可以使用SwitchyOmega插件安装Privoxy来实现动态代理。 本章使用了PAC自动代理脚本。 因为主要是跨平台的,所以不需要安装第三方软件和插件,大多数系统都支持。
PAC代理脚本使用JavaScript语法。 系统设置PAC代理脚本后,浏览器执行请求时,首先从脚本中的FindProxyForURL方法获取代理服务器。
函数信息代理(URL,主机)。
返回代理服务器;
参数说明: url之前请求的url,例如https://engr-z.comhost当前url中的主机名,例如engr-z.com
返回值说明: DIRECT不使用代理。 示例:“直接”代理使用http代理。 示例:代理127.0.0.13360888套接字使用套接字代理。 示例:“套接字127.0.0.13388”
可以同时返回多个代理设置,用分号分隔。 按顺序检查APP并返回可用的代理服务器。 示例:“套接字5 127.0.0.1:1080; 代理127.0.0.1:8888; DIRECT”优先使用socks5代理,如果不能使用则使用http代理,如果http代理也不能使用则跳过代理直接连接。
内置函数
PAC脚本支持基本的JavaScript语法。 它还包括一个简化处理的函数isplainhostname(host )判断是否为本地主机
if (安装主机名称(主机) )
返回直接;
else
返回代理代理:80 ';
}如果本地主机是直接连接的,否则将使用http代理
shexpmatch (主机,“”)与url匹配,并且受支持*
if(shexpmatch(URL,' * .谷歌.com/* ' ) ) )
返回代理192.168.1.1:3128 ';
}isInNet访问IP是否在子网内
if (isin网络(主机,' 192.168.0.0 ',' 255.255.225.0 ' ) ) ) ) ) ) ) ) ) ) ) ) )。
返回' '
)考虑更多函数:代理自动配置(PAC )文件
以下是我自己编写的PAC脚本,可以用作模板:
var域={
'谷歌.com ' : 1、
' youtube.com': 1
(;
var proxy='套接字5127.0.0.1:1080; SOCKS 127.0.0.1:1080; 代理127.0.0.1:8888; 直接;' ;
var direct='DIRECT;' ;
函数信息代理(URL,主机)。
var最后一点;
DO {2}
if (域. hasownproperty ()主机) }
返回代理;
}
lastpos=主机索引('.' ) 1;
主机=主机切片(lastpos );
}while(lastpos=1);
返回直接;
如果有多个代理,例如公司网络公司的代理,只需向domains添加代理域名,如facebook.com、twitter.com,则根据domains的值,var domains={
if(domains.hasownproperty(host )=“2”) {return“公司代理”
将
设置PAC
PAC上传到http服务器,或者放在本地,在系统设置网络中找到自动代理配置,填写PAC的访问地址即可。Windows :
安卓:
IOS :
在手机上使用PAC脚本时,有些APP可能不支持。 在这种情况下,必须使用Privoxy创建自动代理。 稍后说明。
除非注明,否则是《攻城狮子正》原创文章,转载请注明出处。
本文链接: https://engr-z.com/196.html