文章 / 正文

翻墙进阶术:如何让你访问普通外网的速度快人一步

2018.03.08
2271 Words
- Views
- Comments

随着政府对VPN的管理,「翻墙」已成为网络用户必须掌握的基础技能。简单来说,「翻墙」就是跨越某些网络限制,自由访问互联网上的信息。

就像在小学时,学校后有一家网吧,学校规定学生不许去,但你因为需要查资料或打游戏,偷偷去了。我们称这种行为为「翻墙」。你可能会问:为什么要翻墙呢?

就像网吧一样,在开放自由的网络世界里,你可以做很多好事,也可能做坏事。但不能因为可能「做坏事」,就剥夺你的权利。说到「翻墙」的好处,能够访问Youtube和Google系列产品,已经足够说服你掌握这项技能。

至于如何翻墙,如果你愿意搜索,你可以轻易找到许多工具和技巧。如下载蓝灯(不稳定,但免费),或稍复杂一些的”一键Shadowsocks”(如果你不知道这个,你可以查看《如何翻墙:使用Shadowsock搭建一条自由的梯子》)。但本文并非介绍如何翻墙,而是讨论在使用代理服务器翻墙后,许多人在「自动代理模式」和「全局代理模式」下可能遇到的问题。

在此之前,我们先解释什么是「自动代理模式」,也称为「PAC模式」。

在这种模式下,代理服务器访问网络时,会读取一个名为「PAC文件」的规则(也就是GFWList上被墙的网站列表),来判断你访问的网站是否被墙。如果你访问的网站在这个「PAC文件」的列表里,就使用代理服务器访问;否则就使用你的本地网络访问。与「自动代理模式」在访问网站前做预判不同,「全局代理模式」则一视同仁,无论是外国网站还是中国网站,都通过代理服务器访问。

通常情况下,我会选择「自动代理模式」,只有当我访问某些外国网站,虽然能打开,但速度慢时,我才会切换到「全局代理模式」。但使用完后,我又会切回「自动代理模式」,否则用外国服务器访问国内网站会很卡。因此,出现了一个问题:那些不在「黑名单」的外国网站,如果我用「自动代理模式」访问,就会很慢,但如果我切换到「全局代理模式」访问,每次使用后又要切回来,实在是太麻烦了。

有没有办法让我经常访问的 Trello.com,Zapier.com等网站,在自动代理模式下也可以通过代理服务器访问呢?答案其实隐藏在「PAC」中!如果「自动代理模式」是访问前先查询这个网站是否在「PAC文件」里的规则,那我只需把 Trello.com,Zapier.com等网站加入规则里不就可以了吗?

所以问题就在于「如何添加PAC规则」,下面以Shadowsock客户端为例,介绍如何把我常用的网站添加到PAC规则中。

  1. 打开Shadowsock 客户端,切换到「自动代理模式」,并打开「编辑PAC用户自定义规则」(这个就是代理服务器帮你决定哪些网站走代理,哪些不走代理的「筛子」)

  2. 点击后就会出现一个编辑窗口,我们就需要在这里输入规则,比如你希望你访问的Trello.com的时候都走代理,那么就输入「||trello.com^」,如果是Zapier.com,就输入「||zapier.com^」,保存后重启客户端即可。

另外,这里需要补充一下规则的基本语法,比如在下面的规则中

||trello.com^

前面的||号就是「域名标示」,它表示如果是:那么无论是http://tello.com、https://trello.com 还是 ftp://trello.com等前缀的地址均满足条件。

||trello.com

而结尾的^号则是结尾标示,意思是要么在这个符号的地方结束。

还有一个比较有意思的是,你会发现有时候我已经明明把Trello放进去了Pac里面,为什么网站打开还是慢了?这就牵涉到“引用资源”的问题了,也就是你打开Trello网站的时候,访问的不仅仅来自

Trello.com

这个域名下的资源,他的图片可能是放在亚马逊服务器上的(AWS),他的JS文件可能是来自Google的……。 因此,我们可以借助Chrome的开发者工具看一下F12(快捷键),先切换到「Network」中,看一看在加载这一个网页的时候,哪一些资源访问的速度比较慢?URL的域名是什么?再把域名统统添加到Pac规则中去。

通过上面的案例,我们发现在访问的Trello的网站中,主要的资源不仅有Trello.com,例如CSS的文件是来源于trellocdn.com,这个域名,因此我们在Pac规则中再写一条新的规则即可。

||trellocdn.com^
返回文章
全文完