Fork me on GitHub

技术人员翻墙指南

22 Sep 2015

IT技术日新月异,作为技术人员免不了要访问一些被墙的网站。下载一些被墙的资源。

比如AOSP和Angular,这些都是非常出色的开源项目,左右着技术的未来。由于和谷歌有关,所以被一刀切,全墙了。

对错这里就不讨论了,大概这也是改革开放的一部分,改革不可能一步到位嘛,步子跨大了,普通人也撑不住,于是乎搞个墙,将信息流动控制起来。而这个对信息的控制系统粒度太粗,对技术方面的内容造成了误杀。Github被墙然后被解禁,就说明了这一点,不过这个加白名单的流程门槛太高。应该后面随着技术进步会好些。 经济市场化也搞了若干年,反正如果确实是有利的东西,国家慢慢应该会放开。不过我们却等不了那么久,翻墙还得靠自己。

事实上,由于墙的高度以及语言的不便,如今依然能利用墙外的技术资源的人较少,将新技术往国内传播的人也就变少了。导致中文社区除了非常主流技术资料较全以外,新技术以及一些其它资料都很少,或者严重过时。

结果就是如今依然能利用墙外的技术资源的人在技术上会有很大优势。

下面就说说我所知道的几种翻墙思路.


第一种,最简单.使用vpn

价格在每月10-20元之间。

不限时的速度一般几百K,不限速的一般会限制流量。当然一些新出来的vpn也有既不限时又不限速,用的人还少的vpn资源,这就要自己留心去找了。

常见的比如:

  • 云梯

    这个ruby社区的人用的比较多。按流量计费,支持多种终端。

  • 豆荚

    这个我用了有两年,没啥优点,也没啥缺点。反正域名换过挺多次了,不过好在依然坚挺。

需要注意的是别靠baidu,全是山寨页面。云梯和豆荚都比较老,因此很多后来的vpn都是直接抄袭,而且还在百度上买了很靠前的位置。质量很难有保证。(百度有些关键词真的是一点有用信息都没有)

这些 vpn 一般都支持多种协议:

  • pptp l2tp

    这两个协议,几乎多数操作系统都默认自带的。不过这两个协议相对不太稳定。

  • openvpn

    很多企业的vpn都是这个协议。感觉要稳定一些。

不过从便利程度上还是pptp l2tp最方便,基本用户名密码就可以轻松连接vpn. 而openvpn则需要配置证书之类的东西,相对麻烦一些。

第二种方式,就是购买国外的 vps,自己搭建

也就是国外的虚拟服务器,比如linode,digitalocean。然后再上面自己搭建vpn或者socks代理之类的。一般要每月50元左右。

  • 这里最简单的方法是使用ssh的转发功能

    命令如下:

    ssh -qTfnN -D 7070 username@sshserver
    

    会将本地的7070端口设置成socks5代理,然后我们就可以通过这个代理翻墙了。基本上只要服务器安装 openssh-server,自己本机安装 ssh (linux环境自带)

    当然这种方式存在一定的缺点,它只通过一个连接到服务器,不能很充分的利用服务器资源。

  • 于是就有了shadowsocks

    它专门针对翻墙这一问题,做了改进。支持多种加密方式,使用多个连接保证稳定性。该项目作者迫于政府压力,删除了所有分支,但tag还在。你懂的。

以上两种方式最终得到的都是socks代理,下面介绍如何使用socks代理

  • 对于支持代理设置的软件,自然直接在对应的配置中设置就可以了。

  • 对于浏览器,推荐使用相关代理插件

    chrome推荐使用SwitchyOmega插件,这个插件可以直接指定socks代理,并支持选择性的使用国内网络和代理网络。

  • 对于终端可以使用 proxychains,这个命令可以包装其他命令,让其后的命令的网络请求都通过socks代理走。

    比如proxychains bash这样在新打开的bash中,所有的命令都会通过socks代理走,类似的还有proxychains emacs

我现在主要使用这种方式。不过最近有很多虚拟服务器的连接也非常不稳定了,一些虚拟服务器的ip,在国内甚至不可用。

最后一种方式,就是修改host

由于目标网站的ip其实是不断变化的,我们通过修改host,然后直接访问该ip,有一定机会翻墙。 比如google,就有项目专门维护这样的ip列表,并找出没有被墙的地址。 但其实非常痛苦,唯一的好处大概是免费。google-hosts 就是这样的一个项目。