Build your own VPN

前言

由于众所周知的原因,有许多网站在中国大陆地区无法访问,这给许多工作带来了不便。你说pornhub涉黄你封了我可以理解,google不愿把中国区数据放在中国你封了似乎也多少能说出些理由,你把github封了这是啥原因呢?

无论如何,生活还是得继续,有些内容还是需要访问的,购买VPN还非法,那就只好自建VPN了。这里是一个关于自建VPN的一个系列,这是本系列的第一篇。

特别说明一下,这里介绍的方法都是可用的,但是有些方法如果相关部门专门来分析的话,是可以识别出VPN流量的(虽然不能知道内容)。

前提

本系列所说的所有方法都需要你有一个能够访问外网的机器。目前这并不难获得,你可以使用AWS或是Azure。AWS新账号有一年免费的free tier,Azure先账号会送一些额度,基本也相当于免费一年。其它也有各种VPS可用,但是不如这两个有名。其它本来还有google的GCP,但是google服务大陆区原就不可用,对我们这个需求帮不上忙

SSH port forwarding

这个是最简单好用的方法,使用此方法云端(外网)无需任何配置,具体如下:

1. 云端部署一台服务器

在云端部署一台服务器,以AWS为例,就是启动一台EC2 instance免费的free tier的机器就可以,建议使用常用的Ubuntu,具体的部署步骤请参看专门的相关文档。机器部署好后,你就有了一个一台能访问外网的机器,并且你有一个对那台机器的ssh access。

2. 在客户端设置ssh port forwarding

这一步本质上是建立一个ssh tunnel,不同的操作系统在操作上略有不同:

Windows

针对Windows机器,比较方便的方法是安装一个MobaXterm(这个软件有所谓绿色版,下载下来解压缩即可使用)。在菜单中选择Tools——》MobaSSHTunnel(port forwarding)。

弹出的窗口中点击New SSH tunnel。

选择Dynamic port forwarding(SOCKS proxy)。

在上图中Server ip here的位置输入你云端机器的ip,下面的选择框里选择合适的登陆账号(账号的设置里面设好了key或password)。这里本地的端口是使用的1080。

启动新建的Dynamic port forwarding。

Linux或Mac OS

Unix系统基本都已经安装了ssh client,直接运行命令即可,不同系统的ssh client命令略有不同,以Mac OS为例,打开终端窗口,输入:

ssh -f -N -M -S -D 1080 ubuntu@server_ip -p22 -i ~/key_file_name.pem

3. 在浏览器设置代理

Chrome和Edge都使用系统的代理,建议按章使用可以选择代理的插件(比如SwitchyOmega),它可以设置成按照url来选择不同的代理,这样对于正常可以访问的网站可以选择不使用代理,设置如下:

注意这里的代理类型是SOCK5,port是前面设置的本机端口

总结

好了,就这些,你就可以访问外网了。这种方法简单安全,但技术上讲并不是VPN,但是看起来像VPN,用起来像VPN,基本满足我们需要使用VPN的场景。

好处

最直接的好处就是安全,流量包装在ssh tunnel里面,外面只知道是ssh流量,具体里面的内容是什么外面完全无从得知,基本上没有被封的危险。

其次是简单,服务器端缺省安装就行,完全不需要设置。

坏处

坏处就是速度慢(相较其它方法而言),但是平时做网页访问也完全够了。

总结

Enjoy your riding。


Comments

Leave a Reply

Your email address will not be published. Required fields are marked *