早在12年的时候,我写过一篇文章,更漂亮的智能PAC!–Flora,介绍了 Flora 这个项目,那个时候我们说 gfwlist 每隔一段时间就需要更新才能运行良好,不然就会有不少网页打不开。
gfwlist 是一个开源的黑名单项目,它由成千上万的网友贡献整理而成,从而实现被 GFWed 的域名自动走代理;而 Flora 则从 IP 上去获取中国的 IP 地址段,从而生成智能 PAC ,对国外的 IP 使用代理。
这二者都有各自的缺点,比如 gfwlist 是人工维护的,它靠网友贡献添加,那么你就需要定期更新,否则稍微一过时,不少页面就打不开了,只能再使用“全局模式”;而 Flora 则属于一棒子打死,其实并不是所有的国外 IP 都被 GFWed 的(估计不远了)所以这就导致分片处理这种模式其实并不智能。另外,现在 IPv4 资源这么紧张,大家借来借去的,也根本不能在靠 IP 段来区分了。
由于锅内特殊的网络环境,想要从域名里解析处正确的 IP 地址并不是一件容易的事情,所以使用 Flora 也不是个完美的解决方案。
白名单
考虑到比起每天都有大批量的网站被 GFWed,一人一条恐怕永远也没有个尽头。所以,有人做出了白名单——与 Flora 和 gfwlist 正好相反,它负责匹配没有被 GFWed 的网站,对于不匹配的站点,则一律走代理!
虽然对于互联网来讲,每天新增的网站成千上万,但相对于全世界,维护一个没有被 GFWed 的白名单要简单的多。这样,就避免了一大尴尬问题——你的 PAC 会失效。——好吧我承认白名单也是需要更新的,但白名单稍微过时,也不会有网站打不开呀!
另外,其实锅内常用的网站就那么几个,所以一般使用的话可以满足大部分人的需要,对于新出现的域名,以及一些奇奇怪怪的小网站,使用代理还可以在一定程度上保护自己的隐私,也算一件意外的好处吧~
GFW Whitelist
这是我今天逛 git 的时候意外发现的一个项目 gfw_whitelist ,这是作者写的介绍:
著名的 autoproxy.pac (GFW List) 是一个 GFW 黑名单,访问名单中网站需要通过代理,不在名单中的网站直接访问。有效使用黑名单,维护者和用户都需要时常更新此名单,否则可能不能访问最近被墙的网站。这些不便之处是推广科学上网的阻碍之一。
白名单的方法是白名单中的网站不走代理,其它网站全部通过代理访问。白名单的优点是对维护的要求非常低。第一次安装后,即使很长时间不更新,也不会出现网站打不开的问题。当然,用户会要付出稍多一些流量。
事实上 GFW 的变化速度相当快,屏蔽的网站也越来越多,国外稍微有点意思的网站大都已经被墙,或者随时可能被墙。因此作者认为有必要开始维护一份白名单的 pac 文件。
本项目包含域名白名单与IP白名单,而最终生成的实用版本列表proxy.pac同时使用黑白名单,以便于更精确更高速地科学上网。推荐直接使用proxy.pac。
本列表的国内域名部分会由作者编写的 Spider 自动更新,提取出常用的大部分网站。如果需要其它格式的列表请联系作者。
获取方法
对于这个已经基本处于缓慢更新的项目,我自己在它之上建立了一个新的项目,专门针对白名单,以后我会抽空写一个爬虫出来,目前的话也同样是手动更新-。-
从git上获取项目文件,解开打包后找到 whitelist.pac (域名白名单)文件后,修改代理服务器的 ip 地址和代理类型。然后将浏览器的代理设置中指向 whitelist.pac 。
1 2 3 |
var wall_proxy = "SOCKS5 127.0.0.1:1080;SOCKS 127.0.0.1:1080"; 以上需要更换成有效的代理地址,代理类型可以为'SOCKS5'或'HTTPS' 多个代理之间使用分号分隔,如'PROXY a.com:80;SOCKS5 a.com:1080;' |
使用它!
使用 PAC 的方法有很多,如果你不喜欢使用工具(我推荐你用一些工具)那由于 OS X 本身的沙盒机制,你必须将这个 PAC 扔进 /Applications/Safari.app/Contents/Resources/ 里边才行。然后再到系统配置里设定自动代理,地址为 file:///Applications/Safari.app/Contents/Resources/witelist.pac当然,具体的 PAC 名字你自己修改即可。
使用 GoAgentX 来配置
好吧,虽然这个项目也悄然消失于 Github 当中,但它确实是难得的好工具,它能够自动配置代理、兼容各种协议……
这个我会单独写一篇文章来说GoAgentX 的 后续 维护及使用。这里,我们讲一下如何用 GoAgentX 来配置使用我们的 PAC。
GoAgentX 自带了一个 PAC,我们用自己的,在 PAC 配置页面选择“使用自定义的 PAC”:
然后点击“选择本地文件”按钮,把你放好的 PAC 选中即可,最后点击“重启 PAC 服务”。
注意
PAC 文件并没有导入,而是被加载到了内存当中——也就是说 PAC 文件不能删除,你要把它放到一个专用的目录里。
本文由 落格博客 原创撰写:落格博客 » 是时候使用 PAC 白名单了
转载请保留出处和原文链接:https://www.logcg.com/archives/1292.html
之前一直chrome switchyOmega+pac切换,今天突然不能用了,不知道博主现在能不能正常使用吗?
用的电脑端ss,经常需要开全局,今天无意间看到这个项目,真是开心。希望常更新,谢谢博主。
执行main.py更新白名单的时候
提示错误
File “./main.py”, line 5, in
import urllib3
ImportError: No module named urllib3
pip3 install urllib3
装了urllib3 还是一样的提示,只能勤快点自己去下载了
?♂️。
how about sudo pip3 install urllib3 ?
增加了代理服务器的压力不建议!
所以才需要一个不限流量的代理。