ipv6服务器申请及openvpn的搭建

本文主要面向的群体为ipv6不计流量,而ipv4计流量的广大在校园网用户,解决学生上网贵,上外网难的问题,单纯为了翻墙的同学可以参考一下后面openvpn配置的过程,土豪请无视改文章。

首先要先购买一台带有公网ipv6地址的vps作为我们的openvpn服务器,我参考了,hostinger、阿里云、亚马逊AWS等多个服务器的价格,等多个vps提供商的价格,最终发现了一个队学生来说比较实用的vps服务商:digital ocean,获得GitHub学生认证之后可以得到$100的优惠券,按最低的服务器配置(单核,512M内存,20G硬盘,1T流量)$5/mo,可以用将近2年,而且流量充足。如果你有更好的选择,欢迎在下面留言评论。

首先,先在Digital Ocean上注册一个账号,链接:https://www.digitalocean.com/?refcode=91b698e0d340 这个链接是我的一个推广链接,通过这个链接注册可以获得额外的$10的代金券,

referral

如果你不喜欢通过推广链接注册的话,直接去掉链接后面的refcode就行了。

注册完成之后验证邮箱,激活账号…然后需要绑定一个信用卡,如果你没有信用卡的话,可以在全球付上申请一个虚拟的信用卡,需要一次性支付¥100到信用卡上,不过这100块钱在其他地方也是可以用的。如果你不想使用信用卡的话,就需要用Paypal一次性给Digital Ocean账户支付$5, 当然这$5在之后购买服务器的时候也是可以用的。到这儿,Digital Ocean的账号注册基本就完成了,接下来,你需要通过GitHub的学生认证,来获得$100的代金券。

先注册一个GitHub账号,链接:https://github.com 这里建议用学校的邮箱注册(.edu.cn结尾或.edu结尾的),后面会用到,没有也没关系,影响不大。之后邮箱验证什么的不多说。注册完成后进行GitHub学生认证,链接:https://education.github.com/ 点Get the pack下面会出现许多公司对GitHub学生认证的用户提供的优惠,咱们主要用的就是Digital Ocean提供的$100代金券,其他的一些优惠活动(比如一年的.me域名,一年的SSL证书),可以自行研究怎么用。

然后翻到上面,点击Get your pack进入认证界面,这里会出现一个下拉菜单,让你选择一个你的教育网邮箱。如果你刚刚是用学校邮箱注册的,下拉菜单里就可能就会列出你的邮箱(注意,我说的是可能,网上说.edu.cn后缀的邮箱是可以的,但是我在认证的时候发现.edu.cn后缀的邮箱并没有列出来),不过没有列出来也没关系,下面的照片才是重点。照片一定要拍学生证上面有日期的那一页,其他的有没有名字,有没有学号什么的都无所谓,工作人员是根据你学生证上的日期来判断你的教育认证到期时间的。下面的GitHub用途随便填一两句就OK了。提交之后会提示你在一周之内给你回复,一般不需要一周时间,在工作日内提交的差不多两天时间就会有回复了。

完成认证之后,回到刚才Get your pack的那个页面,可以看到下面的优惠活动都可以参与了,咱们选择Digital Ocean的优惠码

pack

 

拿到邀请码之后,登录自己的Digital Ocean账号,进Billing界面,拉到最下方,可以看到一个输入优惠码的框,

promocode

在这儿输入刚刚在GitHub上拿到的优惠码,然后$100就加到你的账户上了。

下面就开始建自己的VPS了,点击右上角的Create Droplet选择$5/mo的配置,服务器位置我选的是San Francisco, 据说San Francisco机房的服务器国内访问最快,有兴趣的也可以试一试其他机房的

location

下面是我的服务器的一些ping测试

ping_4

ping_6

ping_google

 

勾选ipv6选项,操作系统,我选了最熟悉的ubuntu,你也可以选择其他系统,不过之后的openvpn配置可能略有不同。

ipv6

注意,这张图是我加了特效(翻墙)的结果,实际过程中,有些情况下会因为GFW原因,导致勾选框不能正常显示,你看到的界面可能是这样的:

gfw

这个时候一定要注意ipv6的勾选框只能点一下,不管有没有显示出来。

之后,添加ssh keys对于新手可以忽略这一步,不添加ssh keys系统会把密码发送到你的邮箱。

创建好之后,你就会收到一封这样的邮件

mail

然后你需要下载putty软件来远程连接你的服务器。在Hostname那一栏填刚刚邮件里的ip地址(ipv4或ipv6),Port默认的22就行,

putty

点击open,你将得到一个黑框框,提示你login as, 输入root回车,然后输入密码,密码输入的时候是没有任何显示的,尽管输入就行,

loginas

第一次登陆会让你改密码,按提示操作就好,输入密码的时候同样没有任何显示。

——————————我是分割线———————————–

下面到了本文的重点,也是最难的一部分:openvpn的搭建以及配置。

首先你要在服务器上和本地各下载一个openvpn软件,服务器端用Linux版的,本地用windows版的,具体操作如下:

服务器端,在黑框中执行如下命令:

 wget https://swupdate.openvpn.org/community/releases/openvpn-2.3.6.tar.gz

此时执行 ls 命令,可以看到当前目录下多了一个openvpn-2.3.6.tar.gz的压缩文件,用以下命令解压该压缩包,得到一个文件夹,所需的安装文件全都在这个文件夹里面。

 tar -xf openvpn-2.3.6.tar.gz

downloadlinux

本地端:官网下载地址在这儿,http://openvpn.net/index.php/open-source/downloads.html 考虑到大部分同学不能翻墙,我把openvpn-2.3.6 64位版本的安装包(适用于win7及以后,文件大小1.7M)放到我的服务器上了,下载戳这里

然后开始服务器端的安装与配置。

依次执行以下命令(注:#后面的为注释,并不是命令的一部分,执行命令过程中需要按键确认的一律按Y):

 apt-get update #更新软件源列表
 apt-get install gcc #安装gcc编译器,用于编译openvpn
 apt-get install libssl-dev #安装openssl库,openssl是openvpn的一个依赖包
 apt-get install liblzo2-dev #安装lzo,同样是依赖包
 apt-get install libpam0g-dev #依赖包
 apt-get install openssl #安装openssl
 apt-get install make #安装make软件,编译openvpn用到
 cd openvpn-2.3.6 #进入openvpn目录
 ./configure #检查依赖关系是否满足,该条命令执行时,输出的最后一行没有error才能继续下一步
 make #编译openvpn
 make install #安装openvpn

命令输出过长,这里就不截图了,由于新版的openvpn没有自带easy-rsa,所以咱们要自己下载一个easy-rsa,而且,由于我也没看懂最新版easy-rsa3.0的安装方法,所以,我们还是保守点,选择easy-rsa2.0,同样用wget命令下载

 cd.. #退出openvpn目录
 wget https://github.com/OpenVPN/easy-rsa-old/archive/master.zip --no-check-certificate #下载easy-rsa
 apt-get install unzip #安装解压缩软件
 unzip master.zip #解压easy-rsa压缩包
 cd easy-rsa-old-master/easy-rsa/2.0/ #进入easy-rsa脚本目录

下面开始生成证书

 chmod u+x ./vars #给当前用户添加vars的执行权限
 source ./vars #执行vars脚本
 ./clean-all #执行clean-all脚本
 ./build-ca #生成根证书

执行build-ca之后会有好多东西要填,事实上,下面的步骤中都要重复填相同的东西,如果你怕麻烦就直接一路回车下去,当然,还有另外一种办法就是在执行source ./vars前先对vars文件进行编辑,由于涉及到vim编辑器的使用,此处不再赘述。执行完成后,可以看到在keys目录下面生成了两个证书文件

build-ca

然后生成服务器端证书

 ./build-key-server server #server 为服务器名字,可以改,不过之后配置文件名也要做相应改动,建议用server作为名字

在需要按键确认的时候输入y

build-server

类似的生成客户端证书

 ./build-key yichin #yichin为客户端名字,可以改,建议使用client作为名字

生成dh密钥

 ./build-dh

完成之后可以看到,keys目录下面有这些文件,方框标注的为服务器端需要的文件,椭圆框标注的是客户端需要的文件

然后进行相应的复制操作,

 cp -r keys ../../../openvpn-2.3.6 #把keys目录复制到openvpn目录下方便操作
 cd ../../../openvpn-2.3.6 #进入openvpn目录
 mkdir ./config #创建配置文件目录
 cd ./keys #进入keys目录
 cp ca.crt ca.key server.crt server.key dh1024.pem ../config/ #复制文件
 cd ../sample/sample-config-files
 cp server.conf ../../config
 cd ../../config

接下来要对server.conf文件进行编辑了,使用到vim编辑器,跟一般的编辑器略有不同,没接触过的同学一定要按照步骤操作,执行命令

 vim server.conf

按i键进入编辑模式,进行相应的编辑操作

更改以下内容

proto udp6
dh dh1024.pem
client-to-client #前面的;去掉
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"

然后,按 ESC 键,输入:wq(包括冒号), 回车,该操作作用为保存并退出。

到此,服务器端的配置基本完成,接下来该配置客户端了。

安装openvpn,最好按默认的路径安装,安装好后,进安装目录

复制sample-config里面的client.ovpn到config目录下,重命名为刚刚的客户端名字,比如我的就是yichin.ovpn

编辑该文件更改以下内容

proto udp6
remote 服务器ipv6地址 1194
cert 客户端名字.crt
key 客户端名字.key

如果你更改了服务器端的其他配置,注意一定要保持服务器端和客户端的一致性。

然后,下面就到了秀操作的时候了,你需要吧服务器上的客户端证书,复制到本地来,方法有很多种,由于我的服务器同时也是一个web服务器,所以,我用http协议来传输文件,方法如下:

apt-get install apache2
cd ../keys/
cp ca.crt yichin.crt yichin.key /var/www/html/ #名字按自己的配置更改
cd /var/www/html
echo '<a href="ca.crt">ca.crt</a>' > test.html
echo '<a href="yichin.crt">yichin.crt</a>' >> test.html
echo '<a href="yichin.key">yichin.key</a>' >> test.html
chmod o+r yichin.key

然后用浏览器访问自己的服务器地址为http://ipv4地址/test.html

把下载好的文件放到客户端的config目录下

然后再服务器端关闭apache,开启openvpn,命令:

service apache2 start
cd ~/openvpn-2.3.6/config
openvpn server.conf

这个黑框框关掉(程序自动在后台运行)开另一个黑框执行以下操作

vim /etc/sysctl.conf

按i键进入编辑模式,去掉net.ipv4.ip_forward = 1前面的#符号, 然后按ESC输入:wq回车,

执行命令

sysctl -p
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

服务器端已经配置完成,接下来在客户端以管理员权限运行openvpn,点connect上网试一下吧

到此,所有的配置工作都已完成,如果你有什么问题或者意见,欢迎再下方评论区留言哦。

附上我的速度测试结果:

虽然速度不是很快,不过上外网完全无压力哦

waiwang

refference:

[1].EB/OL.http://www.zhihu.com/question/25261199

[2].EB/OL.http://blog.zts1993.com/5170.html

[3].EB/OL.http://www.softown.cn/post/142.html

[4].EB?OL.http://www.softown.cn/post/140.html

3 thoughts on “ipv6服务器申请及openvpn的搭建

发表评论

电子邮件地址不会被公开。 必填项已用*标注