Android 代理自动配置PAC研究 | 您所在的位置:网站首页 › 小米手机代理设置在哪里 › Android 代理自动配置PAC研究 |
Android 代理自动配置PAC研究
环境
小米6 MIUI9.2 Android7.1.1
MacOS 10.13.3
Charles 4.0.2
什么是PAC
PAC,全称Proxy Auto Config,中文名代理自动配置。PAC类似于配置文件,通过这个配置文件,浏览器或者其他UA可以对每一个url配置代理服务,比如这个url要走这个代理,那类url要走那个代理等。 简单的PAC示例最简单的PAC示例: function FindProxyForURL(url, host) { return "PROXY 172.18.104.54:8888; DIRECT"; }这个PAC配置很简单,就是指定所有流量一律走代理172.18.104.54:8888,如果代理挂了,则直接连接不走代理。 再来一个比较简单的PAC: function FindProxyForURL(url, host) { if (host == "www.mydomain.com") { return "DIRECT"; } return "PROXY myproxy:80; PROXY myotherproxy:8080; DIRECT"; }上面这个PAC脚本也比较简单,大概意思就是:www.mydomain.com的流量直接走,不走代理;www.mydomain.com以外的流量默认走代理,先走myproxy:80代理,如果超时那就再走myotherproxy:8080,如果这个还走不通?那对不起,老子不走代理了,直接裸连吧~ 怎么写PAC 0. PAC的一些基础知识PAC本质上就是一文本文件,不过一般以.pac结尾,比如proxy.pac等。PAC文件里面包含一个JavaScript函数FindProxyForURL(url, host),函数返回一个字符串,这个字符串就是代理的配置。函数有两个参数:url和host,url是浏览的地址url全路径,host是这个url中的主机名部分。 整个PAC文件就包含FindProxyForURL(url, host)这一个函数,该函数的返回值可能有三种情况: DIRECT,就是直接连接,不通过代理 PROXY http://www.example.com:8080,http代理的主机和端口,指定代理服务器的地址和端口号 SOCKS socks5sample.com:1080,socks5代理的主机和端口,主机也可以用IP表示一个自动代理可以是多个选择的组合,各个选择间用分号;隔开,PAC的容灾性是比较好的,因为你可以同时给一个url配置多个代理,以分号隔开,如果第一个代理挂了,会自动选择第二个;如果第二个挂了,则会继续自动选择第三个...... 1. PAC的一些函数 isPlainHostName(host):判断是否是本地主机 dnsDomainIs(host,domain) localHostOrDomainIs(host, ""):判断访问主机是否属于某个域和某个域名 isInNet(host, subnet1, subnet2):访问IP是否在某个子网内 shExpMatch(host, ""):主机名判断,正则 url.substring(0,n):字符串截取 myIpAddress():本地IP 2. PAC支持的函数列表完整的PAC支持的函数列表,可以看这里:http://findproxyforurl.com/pac-functions/ 如何在小米6上配置PAC实现Charles抓包 1. 实现简单的PAC脚本我本机的IP是172.18.104.54,然后我需要用Charles进行抓包,所以端口号是8888,于是就有了下面这个三行的PAC脚本: function FindProxyForURL(url, host) { return "PROXY 172.18.104.54:8888; DIRECT"; } 2. 上传脚本到公网服务器上将该脚本另存为proxy.pac,上传到我的公网服务器上,可以通过http://121.42.Xx.Xx:8080/proxy.pac访问到 3. 配置小米6的PAC 将小米6和Mac连上同一个WiFi热点,然后配置小米6的代理上文中,我们已经实现了代理自动配置,但是,如果每次都得这么弄,那不得累死?但是,既然这个PAC配置文件是一个远程的配置文件,就可以动态修改呀,只需配置一次自动代理,以后修改的事情通过修改PAC文件来实现。不过,不还是很麻烦么?我是这么想的,可以实现一个Mac的状态栏应用程序,轻松编辑之后,就会修改远端PAC配置文件的内容,这样就可以轻松编辑代理,也可以在多套代理配置之间进行切换,岂不美哉。当然这些都是后话,毕竟这个东西还只是个想法,暂时也没做出来呢~ 参考资料 PAC脚本的编写 Wikipedia Proxy auto-config |
今日新闻 |
推荐新闻 |
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 |