怎么下载pac配置文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么下载pac配置文件相关的知识,希望对你有一定的参考价值。
参考技术A 先要下载代理脚本文件xxx.pac ,例子中用的squid.pac下载地址:已失效
1.系统偏好设置—网络设置—高级—代理,勾选自动代理配置,在URL指定代理脚本文件。 file:///users/xxx/.../squid.pac
2. 访问google.com.hk
其他设备:
android端
前提条件:手机连接WiFi
以小米手机为例,点击所连接WiFi后面的“>”,选择代理自动配置,在下面粘贴脚本网址保存即可。
ios端
iOS端要连接WiFi,iOS 设备还需安装 CA 证书(证书连接会放在链接中)。 添加证书,随后在 设置 > 通用 > 关于本机 > 证书信任设置 中手动开启证书。
安装后依次打开无线局域网>HTTP代理>配置代理,然后把代理选择为自动配置模式,同Android端一样,粘贴地址,然后点击右上保存 参考技术B PAC是一种基于javascript编写的自动代理配置文件,通常用于指导网络代理客户端选择最优的代理服务器。要下载PAC配置文件,可以执行以下步骤:
1. 打开你所使用的网络代理客户端,一般可以在其设置界面中找到PAC文件的下载链接或导入PAC文件的选项。
2. 在网络代理客户端的设置界面中,找到“PAC文件”或“自动代理配置”等相关选项,点击进入。
3. 有些代理客户端提供了一些常用的PAC文件链接,你可以尝试点击这些链接,选择适合自己的PAC文件,然后下载。
4. 如果你需要自己编写或使用其他来源的PAC文件,可以使用文本编辑器打开PAC文件,或复制PAC文件的链接地址,然后在代理客户端的设置界面中粘贴该链接地址。
5. 最后保存PAC文件,代理客户端会根据PAC文件的规则进行代理服务器的选择。
需要注意的是,PAC文件通常由管理人员生成,用于指导网络代理客户端的行为,如果你不确定安全性,不建议从非官方渠道获取PAC文件。
pac (PAC(Proxy Auto Config) 是一个 Script;经由编写这个 Script,我们可以让系统判断在怎么样的情形下,要利用哪一台 Proxy 来进行联机。)
PAC文件格式
PAC文件是纯文本格式的,实际上就是JavaScript文件。Chrome/Chromium的扩展Switchy!的"Auto Switch Mode"功能实际上也是创建和维护一个简单的PAC文件,但功能比较弱。
对于一般的应用,即使你几乎不懂JavaScript和编程,也可以通过本文的介绍实现基本的功能。
PAC文件FindProxyForURL函数
PAC文件中必须包含一个函数:FindProxyForURL(url, host)。
参数url是用户输入的url,参数host是url中的主机名。
比如url为http://www.truevue.org/javascript/pac-proxy-setting,那么host就是www.truevue.org
一个最简单的PAC文件内容如下:
function FindProxyForURL(url, host) { return "DIRECT"; }
这个PAC文件实际上什么也没做,对任何URL,都将"DIRECT"(直接连网)。
PAC文件返回值类型
除了可以return "DIRECT"以外,还有两种常用方式:
PROXY proxysample.com:8080
http代理的主机和端口,主机也可以用IP表示
SOCKS5 socks5sample.com:1080
socks5代理的主机和端口,主机也可以用IP表示
那么,我们可以猜测到,用pac指定一个http代理应该这样写
function FindProxyForURL(url, host) { return "PROXY 192.168.1.1:3128"; }
甚至可以指定多个代理
function FindProxyForURL(url, host) { return "DIRECT; PROXY 192.168.1.1:3128; SOCKS5 lilinux.net:1080"; }
这句语句的意思是:
- 对所有URL,都直接连接;
- 如果不能直接连接,那么就使用192.168.1.1:3128这个http代理连接;
- 如果还是不能连接,则使用lilinux.net:1080这个socks5代理连接。
使用不同连接的顺序和语句中的顺序一致,你可以根据自己的实际情况更改。
也许你明确知道哪些网站不能直连,必须用PROXY或者SOCKS5连接,那么可以对站点分别指定代理配置
function FindProxyForURL(url, host) { if (shExpMatch(url,"*.google.com/*")) { return "PROXY 192.168.1.1:3128"; } if (shExpMatch(url, "*.wikipedia.com:*/*")) { return "SOCKS5 lilinux.net:1080"; } if (isInNet(host, "10.0.0.0", "255.0.0.0")){ return "DIRECT"; } return "DIRECT; PROXY 192.168.1.1:3128; SOCKS5 lilinux.net:1080"; }
这个PAC文件中引入了两个新的函数,但从字面意思上,我们也可以猜出代码的大概意思:
- 当url是*.google.com/* 时,自动使用PROXY代理;
- 当url是*.wikipedia.cm/*时,自动使用SOCKS5代理;
- 当host是10.0.0.0 /255.0.0.0的子网内时,自动直连;
- 如果都不匹配,则依次按DIRECT、PROXY、SOCKS5的次序尝试。
shExpMatch函数用来匹配url或者host,匹配的方式和DOS的通配符相似。例如前面用到的"*.google.com/*"可以匹配任意包含".google.com/"的字符串。
Chrome/Chromium 的扩展Switchy!创建的pac文件还自定义了一个函数,可以用来匹配正则表达式,不过个人认为在url匹配上通常不需要使用强大的正则表达式。
isInNet函数用来返回请求的host是否在指定的域内。值得注意的是,isInNet的第二个参数必须是 IP,不能是主机名。因此需要把主机名转换成IP。比如"isInNet(host, dnsResolve(www.google.com), "255.255.255.0")"讲到这里,应该可以解决你的问题了吧。
PAC文件可以使用的JavaScript函数
当然PAC也不止这么简单,它还提供了不少其它函数,在本文就不详细讲述了。http://www.truevue.org/javascript/pac-functions 中列出了PAC代理文件中可以使用的JavaScript函数。
你也许想把pac文件发布到Internet上,这样其它用户就只需要在浏览器中指定pac文件的url即可。你得配置你的服务器映射 .pac 文件后缀到MIME类型: application/x-ns-proxy-autoconfig 如果使用的是Netscape服务器,编辑 config 目录下的 mime.types 文 件。如果是Apache, CERN or NCSA服务器,使用 AddType 指令。
以上是关于怎么下载pac配置文件的主要内容,如果未能解决你的问题,请参考以下文章
如何配置 Safari webdriver 以使用 .pac 文件