美丽新世界:linux 下的惬意生活 之 VPN 代理篇

2015/01/23

搭梯翻墙

Everyone has the right to freedom of opinion and expression; this right includes freedom to hold opinions without interference and to seek, receive and impart information and ideas through any media and regardless of frontiers.
---- <<Art. 19, Universal Declaration of Human Rights, 1948>>.

google 重新定义了搜索引擎,苹果重新定义了手机,天朝重新定义了局域网。为让大家保有天朝优越感,+- 屏蔽了大量“非法”网站,有境内/境外的、有纯技术的、有爱情动作的、有轮子功的,反正 +- 不喜欢的通通借由 GFW 这堵墙屏蔽掉。当然,也有主动屏蔽囧朝访问请求的,比如,sourceforge.net 非常反感囧朝的封闭,你朝子民别来我这儿。裆从小就教育我们,哪里有压迫哪里就有反抗,话说屏蔽之前,天朝的宅男还可以下载几部码片看看打发时间,嘚,看吧,让你屏蔽,没事做了,那就研究下怎样翻墙吧。


VPN 代理

要实现整个系统的全局代理,你需要更生猛的翻墙利器 —— VPN。VPN(Virtual Private Network),初衷是为在外出差员工使用内网资源,虽然物理上是异构网络环境,但通过 VPN 虚拟成同一网络环境。为保障数据安全,VPN 服务端必须要有客户端发来的证书认证通过后才能进行数据交换,并且数据流全是加密传输,这一过程的副作用可以用于翻墙。
VPN 协议有三种实现:PPTP、L2TP/IPsec、OpenVPN ,安全性最强(数字证书两端双向认证、256 位不可逆加密交换数据)、支持面最广(linux、BSD、OS X、WINDOWS、Android、iOS)、稳定性最高(完全无视防火墙的各类限制)当属 OpenVPN。可以在 http://openvpn.net/index.php/open-source/downloads.html (无法访问?用前面的 goagent 翻墙啊,多好的实践机会)下载最新版本 openVPN 源码(Android、iOS 版本请到各自 APP store 中搜索下载),源码安装、重启,系统中多出一个虚拟网卡设备,一旦运行 openvpn 程序,它会自动修改你系统的路由表,让所有网络数据请求优先走虚拟网卡,这就达到实现了全局代理的目的。现在,你需要找 VPN 服务提供商获取数字证书。嗨嗨嗨嗨,别走啊,免费的在这儿 http://www.vpngate.net/en ,这里有全球各大非盈利机构开放给大家使用的免费 VPN 服务器,根据不同国家、不同带宽、不同性能你可以按需选用,或者http://www.vpnbook.com/freevpn 也不错。VPN 的三种不同实现使用的证书不用,我们用的 openVPN 对应该网页上的 OpenVPN Config file 链接,进入后你将看到域名证书和 IP 证书两类证书,每类内部又分使用 UDP 和 TCP 两种子类,换言之,一个采用 openVPN 协议的 VPN 服务器共有四个证书,一般来说,你应选用 TCP 的 IP 证书。比如,我选用位于日本、IP 为 84.210.204.5 的机器,点击该行 OpenVPN Config file 链接进入证书下载页面,找到类似 OpenVPN Configuration File: 84.210.204.5 (TCP 995) 的链接点击即可下载得到 vpngate_84.210.204.5_tcp_995.ovpn 数字证书文件:



(openVPN 证书类型)
接着运行
openvpn vpngate_84.210.204.5_tcp_995.ovpn
进行 VPN 连接,出现 Initialization Sequence Completed 说明认证完成,OK,找个 IP 查询的网站(ip38.com)确认下访问 IP 是否变成日本的了。如果发现网站无法访问,或者网速太慢,可以换用其他 VPN 服务器试试。如下图所示:

(openVPN 实现整个系统全局代理)
openVPN 方式,加之前面的 google 服务器代理方式 和 shadowsocks 代理,解决了我 95% 的问题。openVPN 解决了 goagent 无法实现系统全局代理的问题,但还是有几个问题:问题一,http://www.vpngate.net/en 上的公共免费 VPN 经常失效,需要我重新下载新的证书,挺麻烦;问题二,这些公共免费 VPN 任何人可能轻易获取,有些按区域进行版权保护的网站会主动屏蔽从这些公共 VPN 发起的请求(这事儿跟天朝的 GFW 没关系),比如 YouTube 上的 music 频道,只能特定地域的 IP 才能观赏,从这些公共 VPN 发起的视频访问请求均被忽略。针对问题一,没什么说的,失效了又去下载新的;针对问题二,说白了,就是 shadowsocks 和 google 服务器代理两类方式完全无法设定以某个指定国家或者地区的 IP 作为代理出口 IP,VPN 代理方式相对好一点,http://www.vpngate.net/en 多少有 20 多个国家可供选择,但仍然缺乏弹性,比如,无法选用台湾、马来西亚、瑞典的代理出口 IP。再举个例,百度音乐上的所有歌曲都是区域版权保护的(仅限大陆用户),留学国外的朋友想要听歌就悲摧了,必须得找个国内 IP,从墙外翻墙内,goagent 使用的是 google 在美国的服务器,用 goagent 肯定没戏,openVPN 可用的公共 VPN 又没有国内的。我需要可以随意指定出口 IP 的代理方式。

摘自:https://github.com/yangyangwithgnu/the_new_world_linux

作者:yangyangwithgnu

Related Posts