搭建自己的VPN服务器实现科学上网


最近不知道怎么了,自己原先够买的VPN服务莫名其妙的无法使用了,自己部署在github上的网站也无

法访问了,这日子真的过不下去了,VPN不断地被墙也不是一天两天的事了。因此自己便一直想着能否搭建

自己的VPN服务,只供自己使用被墙的风险不就是大大降低了嘛!

3mfzse.jpg

在写这篇博客之前,自己也想到一个笑话,在Git问世之前,Linux社区的开发人员由于私自破解由

BitMover开发的版本控制软件,致使BitMover公司收回了Linux社区对版本控制软件的使用权。本来觉

得由Linux之父Linus之父向BitMover公司道个谦,这事就过去了,可实际上是不可能的。大神终究是大神

,Linus自己花了两周的时间就用C写了一个分布式的版本控制系统,就是Git,之后Linux的内核代码已经

开始由Git进行管理了。所以对于技术领域而言,哪里有压迫,哪里就有反抗

好了,废话少说,进入正题

一、前期准备

要想搭建一个专属VPN服务来实现翻墙,首先必须要有一台海外的服务器(香港的也可以),否则你服

务的流量也出不去啊!那么问题来了,国内的云服务商对于海外的服务器卖的还都是挺贵的,恐怕经济上

难以承受。那有没有白嫖的海外服务器呢,有!请看下图

3mfXRK.png

百度的广告有时还是挺好的,让我发现了AWS还提供免费的云主机服务,但是哪有天上掉馅饼的,提供免费

服务的前提是你要先注册吧,注册的时候竟然需要VISA或者Master的卡号(就是那种能付美元的银行卡了),这

种卡我还真的没有。然后发现某宝上有卖卡号的,自己就去买了一个(大概30元,相比于VPN的费用算是便宜了)

。注册使用银行卡号不是需要扣费,而是需要检测银行卡中是否有剩余的1$,从而验证卡号的可用性

在这里简要说明一下,AWS为每个用户提供了每月750小时的运行实例时间,持续12个月。也就是说我们

在一个账户上可以运行多个虚拟机的实例,总共时间不能超过750个小时,这足够我们持续使用一年的了

二、创建虚拟主机

1.切换地理区域

在具体创建实例之前,需要将区域设置为东京(推荐,网络延迟最小),当然也可以设置为其他的地区

3mhEz8.png

2.创建实例

选择EC2服务后就可以开始创建实例了,可以看到免费套餐中可选的系统类型是比较多的,Linux的各种

版本、Windows Server等,这里我们就选用推荐的第一个吧(放在第一个肯定有它的理由)。选择第一个进

入即可

然后是选择一个实例类型,审核并启动即可,其他的先不需要配置

3mhZQS.png

3mh9Zd.png

点击启动后,会有一个创建密钥对的界面,这里选择创建新的密钥对即可,再输入密钥对名称后一定注意要

下载保存密钥对(非常重要,不然你用客户端就登不上去了),之后选择启动实例即可;

3mhkJP.png

启动完成后点击实例号即可进入虚拟机控制台界面,注意这时我们需要关注的虚拟机信息: 公有DNS,

这个就相当于这台虚拟机的公网地址,由于IP地址经常会变动,所以可以用公有DNS来指向IP地址,实现

一个动态的绑定

3mfxMD.png

那么这时我们可以ping通这个ip地址吗?来试一下,可以发现是ping不同的

3mhmLQ.png

具体原因就是我们还未对虚拟机的安全策略配置,它是拒绝被ping的。我们进入安全组,编辑入栈规则,

添加一条放通规则保存即可

3mfOG6.png

3mhuZj.png

这时我们再进行ping测试,就发现可以ping通了

3mfoqJ.png

三、连接虚拟主机

这里我们使用MobaXterm客户端连接虚拟机,其他工具像Xshell、Putty客户端均可,在新建会话中,将刚才

看到的公有DNS填入Remote host,用户名为默认的 ec2-user,端口即为22(SSH服务),其次在高级设置中 ,

导入刚才下载的密钥,即可连接;连接上后就相当于一个Linux了

连接配置信息:

3mhFit.png

连接成功后的界面:

3mhPII.png

四、部署shadowsocks

3mhBJx.jpg

关于shadowsocks我就不用多说了,这里需要将其部署在Linux虚拟机上,实现VPN服务。具体的部署过程

比较简单,安装shadowsocks需要依赖python环境,并且用pip install 安装比较方便。安装好的Linux是自带

python2环境的,这对于安装shadowsocks支持足够了。具体的部署命令总结如下,比较简单

pip install shadowsocks  #pip安装 一条龙
mkdir /etc/shadowsocks   #创建配置文件目录
cd /etc/shadowsocks      #进入到当前目录
vim conf.json            #编辑配置文件,写入以下内容

#conf.json文件的内容
{ 
  "server":"0.0.0.0",         #服务端地址,需要做VPN写0.0.0.0即可      
  "local_address": "127.0.0.1",   #本地地址
  "local_port":1080,              #本地端口 默认为1080
  "port_password":{      
        "port1":"**********",     #配置多用户的端口和密码 端口不能重复       
        "port2":"**********"     
    },                  
  "timeout":300,                 
  "method":"aes-256-cfb",        
  "fast_open": false             
}

#用配置文件启动服务即可
ssserver -c /etc/shadowsocks/conf.json -d start

到此为止,大功告成,你也可以使用netstat -anp来查看服务端是否已经监听了设置的端口

五、连接测试

下载好shadowsocks客户端软件,打开配置服务器信息,进行连接即可

3mf7Z9.png

连接成功后,打开Google进行测试,开心到飞起

3mfbI1.gif

到此VPN服务部署完成,就可以进行科学上网了,服务器很稳定,

网速也比较快