使用Shadowsocks搭建科学上网梯子

既然已经用Vultr搭建个人虚机主机,肯定不能让它空转着,安装些服务方便上网的确是一个不错的选择,所以就选择了知名度最高、教程最容易找到的Shadowsocks试一下。

(倚杖寒山暮,鸣梭秋叶时。)
sandis-helvigs-158774-unsplash

Shadowsocks介绍

为什么要Shadowsocks

在我刚刚上大学的时候,我记得还是可以顺利使用Google的,后来由于众所周知的原因,Google退出了中国市场,网站也无法顺利访问。后来可以采用IPV6访问,再后来可以用Go Agent,再后来道高一尺魔高一丈,就像是自然界里不断演化的过程。

而Shadowsocks之所以被熟知,是因为在中国大陆可以用来突破GFW,达到科学上网的目的。具体的技术细节感兴趣的可以自行查阅。需要注意的是,Shadowsocks不能用于匿名通信,因此使用时还是要注意场景。

什么是Shadowsocks

按照惯例,首先要介绍一下什么是Shadowsocks。Shadowsocks,中文翻译为“影梭”,简称SS,是一种基于SOCKS5代理方式的加密传输协议(至于什么是SOCKS,什么又是传输协议,就需要Alice跟Bob为大家讲解了)。此外,Shadowsocks也被用来指基于这一协议所开发的代理工具。

Shadowsocks运行原理

既然是要穿墙而过,那就意味着一个在墙这边,一个在墙那边。所以Shadowsocks分为服务器端和客户端,显然客户端就是在自己的电脑/手机等设备上直接用于建立本地代理的工具。而服务器端,则是实现外部访问的窗口。客户端与服务器端的通信也就采用前面提到的Shadowsocks传输协议。

在服务器端部署完成后,用户需要按照指定的密码、加密方式和端口,使用客户端软件与其连接。在成功连接到服务器后,客户端会在本机上构建一个本地Socks5代理(或VPN、透明代理)。浏览网络时,网络流量会被分到本地Socks5代理,客户端将其加密之后发送到服务器,服务器以同样的加密方式将流量回传给客户端,以此实现代理上网。

Shadowsocks使用

Shadowsocks客户端使用

如前所述,Shadowsocks的使用涉及到了客户端和服务器端两个部分。通常大家如果是通过把现成的账号(买的或者网上找的)输到一个软件里,那么这个软件就是客户端,客户端的使用相对简单,网上可以找到很多图解。照猫画虎即可。但是,体验过的应该知道,网上找到的ss账号通常只能用几个小时或者几天,然后就会失效;而买的ss账号,也往往用一段时间以后就会被封。而且,由于是许多人共享,所以连接的质量一般都比较一般,所以服务器端的使用就成了必不可少的进阶技能。

Shadowsocks服务器端部署

既然已经买了Vultr的VPS,刚好就可以用它来搭建Shadowsocks的服务器。Shadowsocks服务器端的具体部署也可以根据教程按部就班来做。而热心的开发者也提供了一键部署的脚本,方便不愿多动脑筋的我。既然有人珠玉在前,我也懒得再造轮子,给出几个我认为还不错的教程:

基于Shadowsocks利用ipv6访问互联网

在我看来,很多人甚至是多数人翻墙去并不是为了看那些有的没的,更多的还是为了提高自己工作的效率和生活的质量,所以Google的很多服务,例如Google Scholar就是经常需要访问的网站。但是,如果我们用Shadowsocks或者XX-net等做代理的时候,经常会发现,无法正常访问,即出现以下提示:

GoogleScholarProblem

这可能是因为,Google对你的代理所在的IP段进行了处理。而用ipv6访问时就不会有类似的问题。所以很自然希望能够用ipv6作为代理的出口。幸运的是如Digital Ocean,Vultr等都提供了ipv4/6双栈服务器,在Vultr搭建个人虚机主机里说过,要记得勾选ipv6。然后在配置Shadowsocks服务器端时,只需要在配置文件里将server的地址,由ipv4的127.0.0.1改为"::",同时客户端不用做任何改动即可。然后,就可以顺利地访问谷歌学术了。

GoogleScholarOK

其实这样做的道理很简单:

本地(代理客户端)–(ipv4)–>代理服务器端–(ipv6)–>目标网站

目标网站–(ipv4)–>代理服务器端–(ipv4)–>本地(代理客户端)

科学上网的必要性与风险

据说,目前中国有9000万人通过VPN上网,其实我并不知道是真是假,不过从我身边人的采样还看,实在有些夸张了些,但这折射出的现实就是科学上网绝对不是一个小群体。 我想科学上网的动机大致可以分为两类:

  • 你不让我上,我偏要上,为什么要上,因为我能;
  • 真的需要上,不上很难受。h’h’h’h’h’h’h’h’h’h’h’h’h’h’h’h’h’h’h’h(这真的是键盘自己敲出来的,我不敢删)

而另一方面,国家对互联网的接入规范也越发严格。2017年1月,工信部网站就发布了《工业和信息化部关于清理规范互联网网络接入服务市场的通知》(以下简称《通知》),《通知》决定自2017年1月起至2018年3月31日,在全国范围内对互联网网络接入服务市场开展清理规范工作。(详见:工业和信息化部关于清理规范互联网网络接入服务市场的通知)

那么作为学法、知法、守法、用法的好公民,如何尽可能不惹上不必要的麻烦呢?我个人有这么几条建议:

  1. 合法规范地浏览网站各种信息。由于GFW的局限性和现实的需要,不可避免造成我们个人认为合理的网站被“误伤”的情景,这种情况下,合理合法地使用互联网实际上也是个人为了实现中国梦在贡献自身的一份力量,应当不存在太大的风险。当然,如果个人存心要访问诸如“法X功”之类的信息,辩解会很无力。
  2. 不向他人传播科学上网工具、不进行经营活动。一方面,向他人传播此类工具、提供此类服务,往往会令工具被滥用而失控,那么自己肯定要承担因此而造成的后果(不喜欢拿“杀人的不是枪是人”的例子怼我);另一方面,以营利为目的的经营活动,直接违背了现行法律法规条例。
  3. 主动学习、多接受教育,多保持自己知识的年轻性。这些学习既包括科技前沿、技术理解、工具运用等方面,也包括国际形势动态、政治思想教育等方面,只有这样才是一个思想指挥武器的好战士。
  4. 甘于做沉默的大多数。不可否认,我也很羡慕网络意见领袖一呼百应的那种感觉,想象一下就很爽,但是我知道自己只是一条咸鱼,做好咸鱼应该做的,也是为了梦想而翻身,为了翻身而梦想。但是我也提醒自己,不做盲从的大多数。
  5. 最后,我觉得这张图(来源:网信办网站)很有必要:

netsecure

最后,Across the Great Wall, we can reach every corner in the world.