在CentOS下搭建OpenVPN实现ipv6网络连接ipv4

学校的网络访问IPV4地址是计算流量的,并且相比其他高校还要贵出不少。而IPV6是不计流量的,
在有IPV6地址的服务器上搭建OpenVPN可以用IPV6网络通过服务器转发访问IPV4地址,实现免流量上网。

首先需要一个有IPV6地址的服务器,我使用的是ramnode.com。CentOS 6操作系统。

另外阿里云等国内服务器使用IPv6 Tunnel Broker似乎也可以有IPV6地址。
这样速度应该可以快很多,我还没有试过。

下面是具体步骤:

安装EPEL

CentOS自带的yum源中没有openvpn,因此需要先安装EPEL。EPEL 是yum的一个软件源,里面包含了许多基本源里没有
的软件。

CentOS 用户可以直接通过 yum install epel-release 安装并启用 EPEL 源。CentOS Extras 默认包含该包。

1
yum install epel-release

安装OpenVPN

现在yum中已经有OpenVPN了,直接安装。

1
yum install openvpn

安装easy-rsa

最新版本的OpenVPN不带easy-rsa,因此需要手动安装。

1
2
3
wget <https://cloud.github.com/downloads/OpenVPN/easy-rsa/easy-rsa-2.2.0_master.tar.gz>
tar -zxvf easy-rsa-2.2.0_master.tar.gz
cp -R easy-rsa-2.2.0_master/easy-rsa/ /etc/openvpn/

配置easy-rsa

编辑/etc/openvpn/easy-rsa/2.0目录下的vars文件。

1
vim /etc/openvpn/easy-rsa/2.0/vars

可以自定义以下几项:

  • export KEY_COUNTRY=”CN”
  • export KEY_PROVINCE=”JiangSu”
  • export KEY_CITY=”NanJing”
  • export KEY_ORG=”GreenStudio”
  • export KEY_EMAIL=”admin@njut.asia

之后使vars设置生效

1
2
source ./vars
./clean-all

生成证书

创建证书颁发机构(全部回车)

1
./build-ca server

创建服务器证书(全部回车,最后两个输入y)

1
./build-key-server server

创建客户端证书(全部回车,最后两个输入y,可创建多个名字不一样的客户端证书)

1
./build-key client

创建Hellman参数

1
./build-dh

配置OpenVPN

首先生成配置文件。

1
vim /etc/openvpn/server.conf

放入以下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
port 8080
proto udp6
dev tun
ca /etc/openvpn/easy-rsa/2.0/keys/ca.crt
cert /etc/openvpn/easy-rsa/2.0/keys/server.crt
key /etc/openvpn/easy-rsa/2.0/keys/server.key
dh /etc/openvpn/easy-rsa/2.0/keys/dh1024.pem
server 10.8.0.0 255.255.255.0
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 10.8.0.1"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
client-to-client
keepalive 10 120
comp-lzo
persist-key
persist-tun
cipher AES-128-CBC
verb 3

启用ipv4转发

1
sysctl -w net.ipv4.ip_forward=1

配置 iptables防火墙

1
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o venet0 -j MASQUERADE

开启OpenVPN服务

1
service openvpn start --config /etc/openvpn/server.conf

安装OpenVPN客户端

官网:https://openvpn.net/

使用pscp下载客户端证书

pscp下载:
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
下载后放到windows的system32文件夹下。

然后打开cmd,输入以下命令进行文件传送:

Windows –> Linux上传文件:

Linux –> Windows下载文件:

使用pscp将/etc/openvpn/easy-rsa/2.0/keys中的client.crt、client.key、ca.crt拷贝到客户端文件夹openvpn/config中,并新建**.ovpn文档,内容如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
client
dev tun
proto udp6
remote 服务器IPv6地址 8080
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert #用户名#.crt
key #用户名#.key
ns-cert-type server
comp-lzo
cipher AES-128-CBC
verb 3

最后打开客户端,链接,使用。

使用OpenVPN_只能_用于校园网免流量上网:)