科学上网实用指南

此文的目的在提供当前状况下最有效的翻墙基础知识和可用方法,简而言之就是科学上网的一个 Quick start guide。
本文第一节针对不同的情况给出了不同的翻墙解决方案,第二节简述了各种翻墙方式的含义和优缺点。第三节和第四节重点介绍了 Shadowsocks 的设置方法。第五节为然而并没有什么鸟用的抒情。

1. 如何选择翻墙方式

我感觉我已经写得超级全了,使用难度从上到下递增。

  • 如果只是为了使用谷歌的网页(包括网页搜索、图片搜索,学术搜索,谷歌翻译等等),那么推荐使用好事者搭建的谷歌国内镜像,这边是我刚用谷歌搜索『谷歌 墙内镜像』出来的第一个网页,其中列出了一堆镜像站点。我感觉其中的『谷粉搜搜』(Dec, 2015 Update: 已经变成了奇怪的网站)还不错。
  • 如果只是为了使用 Gmail,那么最好的办法是使用国内邮箱代收代发 Gmail 的邮件。请自行搜索『163邮箱 代收Gmail』寻找不同邮箱的具体设置方式。可以选择的协议有两种: POP3 和 IMAP,推荐后者。另外国内邮件也可以代发 Gmail 的邮件的,寄送地址依然会显示是 Gmail 地址,不过收件人看到的邮件详细信息里可能会写『xxxx@gmail.com via qq.com』这样的邮送域提示。具体会不会,试一下就知道了。
  • 如果想要完整的 PC 端网页翻墙体验,但是没有其他软件或者手机端翻墙的需要,推荐采用 xx-Net,一个基于 GoAgent 的但是更加友好的工具。下载和教程参见 GitHub 主页
  • 如果只是为了玩舰娘(或者刀剑乱舞)。嫌麻烦的直接买岛风 go 去,不嫌麻烦的话,如果不想花钱,可以搜索『DMM 反向代理』改 hosts,不过那样的速度可能会很慢,看人品,甚至还有可能经常被猫。
  • 如果想要让某个程序(Dropbox etc.)翻墙,或者想要获得全平台(PC/iOS/Android etc.)的翻墙体验,那么就推荐使用 VPN 或者 shadowsocks。对于未越狱的 iOS 用户,前者是唯一的选择(maybe?)。对于 Windows 和 Android 用户推荐后者,原因是比较便宜 XDD。
  • 如果自己觉得是一个 Geek,或者是一个合格的谷歌脑残粉(比如我),那么请使用 GoAgent。优点是永久免费,而且理论上可以获得最快的访问谷歌服务(也包括 YouTube)的速度。缺点是只支持 PC 端浏览器,Dropbox 和手机都不行。哦对了,教育网用户还可以考虑使用 IPv6。

2. 各类翻墙方式简介

墙,也叫防火长城,GFW(Great FireWall)。是以方滨兴为首的北京邮电大学的一群人,和某自由民主国家的某网络设备厂商(Cisco)搞出来的,一个限制你国人民访问某些国内和海外网站的,国家级别的,网络防火墙。
科学上网,就是翻墙,也称为『 fq 』。翻墙软件,称为梯子。所有的梯子,除了『改 hosts 大法』以外,结构上都是类似的。简单来说就是,你的电脑通过某种加密的方式(VPN/HTTP/Socks),在不被 GFW 发现的情况下,和翻墙服务器通信,而翻墙服务器呢,可能本身在墙外,或者使用了什么黑科技,所以就可以代理你的请求来访问墙外网站。具体来说,梯子的种类有以下几种:

  • Shadowsocks,中文名影梭,简称 SS。是 @clowwindy 编写的基于 Socks v5 的代理。支持 Windows/Android/iOS/OS X/OpenWRT 全平台(iOS 需要越狱,但 Android 可以不 root),使用方便,稳定可靠。如果选择了合适的服务器,速度很快。
  • VPN,即虚拟专用网。其主要特点是,名气比较大。就免费的 VPN 来说,目前,勉强能够使用的只有 VPNGate,使用 SoftEther 的 VPN 协议。只支持 Windows 平台。速度很慢,并且也不是每次都能成功,并不推荐。【注意】请不要点击百度里搜出来第一个的那个『vpngate.com.cn』,那个是国内的山寨货。 免费的 VPN 我没有见过有好用的。收费的 VPN 的话我没用过,名气比较大的,国外有 Astril,国内有 GreenVPN 等等。需要注意的是 VPN 一定为全局代理,也就是说,开了之后,不管浏览器还是 QQ 都会走代理。
  • Goagent。这是 @phuslu 编写的一个 HTTP 代理。这个代理需要自己搭建服务器(通常是搭建在免费的 GAE 上) 。Windows 端支持良好,安卓端可用 fqrouter 代理,但是效果不好。另外 PC 端的某些软件,比如 Dropbox 无法使用这个代理。推荐给所有真正的对谷歌爱得深沉的谷粉使用(比如我 XDDD)。具体方法请参照 GitHub 主页上的说明。 作者在 2015 年被警方请去喝茶,Github 主页已经删除,推荐使用 xx-Net 作为替代。
  • 自由门和无界浏览器等等。自由门是有法轮功背景的,个人非常不推荐与宗教或者不明势力有联系的软件。此类代理速度较慢,原理未知,安全性大大的存疑。
  • Hosts 文件。正常时候,当你在浏览器的地址栏输入一个网址的时候,浏览器首先要做的工作是把这个域名解析成 IP 地址,然后再和那个 IP 地址通信。这个过程叫做 DNS 查询。有专门的 DNS 服务器来做这个事情,但是 Hosts 文件里写的域名解析地址优先级是高于 DNS 查询结果的,也就是说,如果你在 hosts 文件里写上『baidu.com 127.0.0.1』,那么访问 baidu.com 就会强制指向 127.0.0.1。在实战中,如果一个被墙的网站有 n 个 IP 地址可用,而 GFW 只屏蔽了其中的一部分,那么就可以把没屏蔽的 IP 地址写进 hosts 里就可以顺利访问了。对于 Google 这种号称全球有 2000000+ 个 IP 地址(还只是 IPv4 的,IPv6 的估计更多)的网站,这种方法是非常有效的。不过一旦一个 IP 地址被公开,基本上很快就会被封,所以现在基本已经没有还在维护的公开的 hosts 列表了,曾经 Google plus 上有一个叫 imouto hosts 的 project,现在已经不更新了。
  • 在线代理。就是在线代理,网上一搜一大把,然而我感觉并没有什么鸟用。
  • SSH 代理。现在很少见了,按下不表(反正我也不懂)。

下面着重介绍一下 Shadowsocks。

3. Shadowsocks 服务器

Shadowsocks 的代理在结构上,大概是这样的:本地程序(浏览器或 QQ 等)和本地的 SS 客户端(127.0.0.1: 1080)进行交流,然后 SS 客户端对信息进行一番加工后,以加密的方式,绕过 GFW,和墙外的代理服务器(Remote Server: xxx)进行交流,远端的代理服务器和你想访问的目标网站进行交流。
为了完成这个回路,需要本地(客户端)和服务器端的配置。先说服务器端。

  • 对于大部分正常人,推荐在枫叶主机上购买半年/一年的 ss 账号,我现在用的也是这家。半年 30软妹币,一年 50 ,价格是相当良心了。其他地方基本上是一年 100 软妹币左右的。普通套餐的话,支持两个设备(虽然我实际上有四个设备),可以自选美国和亚洲的服务器节点(包括日本,舰娘玩家的福音)。速度非常好,特别日本节点。有意购买的请点击我的邀请链接,有回扣噢。如果对于效果没有信任,可以向客服联系讨要试用账号。
  • 对于 geek 来说,可以考虑购买 Linode/Digital Ocean/Bandwagon 的 VPS,然后在上面自己搭建 ss 服务器给自己用。费用大概是每月 10 刀(DO),或者每年 5 刀(Bandwagon)。可以看到两者的价格相差很大,当然一分钱一分货你懂的。
  • 对于想省钱的,或者觉得自己的时间不那么值钱的,或者对自己的搜索能力特别有信心的,或者有这方面的人脉资源的人,可以考虑寻找免费的 SS 账号。Google Plus 上会有一些。之前苍老师 上有稳定的免费账号提供,不过自从某天站长发现自己一天要花几百刀流量费之后这个网站就停了。

4. Shadowsocks 客户端

客户端请点击 SS 主页下载,按照平台选择。 Shadowsocks 的主页主分支挂了,Windows 下可以直接点击这里Windows 8 或者支持 .NET framework 4.0 的用户请选择『Shadowsocks-win-dotnet4.0-x.x.x.zip.』,否则请选择『Shadowsocks-win-x.x.x.zip』.
下载之后双击打开,填入信息如下:

  • 服务器 IP:填入代理服务器 IP 或者域名。从枫叶上买的可以在这里查看。
  • 服务器端口:同上,自行查看。
  • 密码:自行查看。
  • 加密方式:自行查看。
  • 备注:随意
  • 代理端口:1080,默认即可。

对于 Windows 平台,之后点击确定,右击任务栏图标,选择『启用系统代理』,代理模式选择『PAC 模式』即可。
这时候浏览器和其他支持自动检测代理的程序应该已经可以翻墙了,不信可以点击 Facebook 试试。如果不行的话,请打开程序的代理设置,手动填写代理如下:

  • 服务器:127.0.0.1
  • 端口:1080
  • 协议:Socks v5

另外新版的 SS 客户端是支持 HTTP 代理的,默认端口是 8123,对于舰娘浏览器 KCV(kancolle viewer)等不支持 Socks v5 的程序来说这还是很有用的。
如果想要精确的控制访问哪些网站要经过代理,请安装 Chrome 插件 『SwitchyOmega』。或者自行修改 PAC 文件。

安卓平台,可以在 Google Play 上下载客户端,或者这里直接下载。设置是类似的。如果 root 了的话,软件会自动修改 iptables 进行代理,如果没有 root,则会以 VPN 代理的形式启动,app 会向你所有 VPN 权限,点同意就行。无论 root 与否,效果都是不错的。
对于苹果平台……然而作为一个真正的谷歌粉,我从来不购买苹果的任何设备。

5. 没处写的一些话

要说 GFW 为什么叫 GFW 其实我也并不知道。不过早年登 QQ 邮箱的时候,可能有人注意到,登陆界面的左边有时候会出现一个小电脑,上面一行绿字:
Across the Great Wall we can reach every corner in the world.

the Great Wall then

这个句子,就是中国发向世界的第一封电子邮件的第一行。这短短的一句话,凝聚了许多第一次,也凝聚了国人对开阔的世界和开阔的互联网的渴望。那个时候,是 1987 年。
谁曾想到,20 多年之后,这个『the Great Wall』竟然以另一种意义出现,生生横亘在我大局域网和那开阔的互联网之间。
当年写这封邮件的人,估计做梦也不会想到,这句话会以这样一种方式成为一句绝妙的讽刺。
哈哈哈,还真是幽默