校园网免流量之基于IPV6的OPENVPN搭建

2013年10月8日1,4460

五花八门的免大家都知道ipv6现在是免流量的。因此五花八门的免流量上网方式都出现了。最好的当然后goagent,毕竟免费嘛。但是goagent使用的是google app engine 每个月每个应用只有1G流量,10个应用只有10G流量这个流量对于很多人来说还是不够用。同时使用goagent代理并不是全局的而且做不到全局(不是技术原因,因为goagent并不是一个真正的http代理程序),同时goagent代理还有一个致命的缺点不能登录qq(这个技术上的问题就不说了),goagent有个最大的bug就是出口ip并不是不变的,所以常常会出现某些网站不能登录或者登录之后不停的掉线这样的问题。

因此使用openvpn建立ipv6是我们最好的选择

为什么不选pptp —-因为不支持ipv6。

为什么不选l2tp—-openvz的vps不支持加密。毕竟我们选便宜的vps搭建~~~

其他~~~代理不能全局,其他vpn方法需要大微软技术的支持,作为廉洁解决方案基本不可能完成。

关于openvpn对于ipv6的支持情况,在openvpn2.3版本之前使用ipv6需要打补丁但是2.3版本开始就不需要了。记住windows版和linux server都要选择2.3。ipv6与ipv4配置上的区别就一点 udp改成udp6就ok了。是不是很简单。。。。。。。

另外关于openvpn注意openvpn connector是商业软件,免费两个许可证连接而且不支持ipv6。我们使用的是社区版,下载客户端时候注意。

说了好多废话现在开始安装openvpn

安装 OpenVPN

环境准备好之后,我们正式开始安装 OpenVPN 了。这里使用的是 yum 来进行安装。
CentOS5用户执行

wget http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm

rpm -Uvh epel-release-5-4.noarch.rpm
CentOS6用户执行
wget wget http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm

rpm -Uvh epel-release-6-8.noarch.rpm

如果你看到这篇文章时你都已经用上centos7了那你就去http://dl.fedoraproject.org/pub/epel里面找吧

成功后 yum 源里面就有 OpenVPN 了,直接使用命令安装

yum install openvpn

说明:这里就体现了 yum 安装的好处,比如 OpenVPN 需要 lzo 支持,安装的时候会检测系统,没有的组件会自动安装进去。

安装easy-rsa–由于最新的OpenVPN不自带easy-rsa,需要手工安装。

wget https://github.com/OpenVPN/easy-rsa/archive/master.zip

unzip master.zip

配置 OpenVPN

easy-rsa这个文件夹移至 /etc/openvpn/
cp -R easy-rsa-master/easy-rsa /etc/openvpn/ #位置根据自己的情况看啊

进入然后/etc/openvpn/easy-rsa/2.0目录,用vi vars来编辑环境变量。
cd /etc/openvpn/easy-rsa/2.0
vi vars

根据实际情况修改

export KEY_COUNTRY="CN"
export KEY_PROVINCE="JiangSu"
export KEY_CITY="NanJing"
export KEY_ORG="GreenStudio"
export KEY_EMAIL="[email protected]"

更改文件夹内文件属性防止Access Denied
cd ..;chmod -R 777 2.0;

保存后把. vars设置生效。
source ./vars
./clean-all

生成证书

创建证书颁发机构(系统出现提示操作时,直接全部回车)

./build-ca server

创建CA之后来生成服务器证书(系统出现提示操作时,前面直接全部回车 最后2个按y)

./build-key-server server

服务器证书生成完了,我们来生成客户端证书,理论上每个OpenVPN用户都有独立的证书。(系统出现提示操作时,前面直接全部回车 最后2个按y)

./build-key greenstudio

说明:这里的greenstudio是客户端名称,如果你再生成第二个随便换成别的名字就可以如:./build-key zts1993)

最后生成Diffie Hellman参数,这个需要一小点时间

./build-dh

设置OpenVPN参数新建 server.conf

vi /etc/openvpn/server.conf

放入如下内容:

port 8080 #这个端口一般不敢封
proto udp6 #这个是ipv6的设置如果是ipv4是udp就可以了,可以用tcp这里我用udp了
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/dh2048.pem
server 10.8.0.0 255.255.255.0
push "redirect-gateway def1"
push "dhcp-option DNS 8.8.8.8" #设个DNS吧
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 转发(理论上ipv6用户可以忽视这段)
1.编辑/etc/sysctl.conf
vi /etc/sysctl.conf

2.找到net.ipv4.ip_forward = 0改成net.ipv4.ip_forward = 1保存
3.让更改生效
sysctl -p
说明:如果此时出现错误 error: “Operation not permitted” setting key “net.ipv4.tcp_syncookies” ,就编辑 /etc/sysctl.conf,注释掉 net.ipv4.tcp_syncookies 那一行

配置 iptables
如果你跟偶一样很多类型VPN,很多NAT的话直接
xen和kvm用户
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

openvz用户
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o venet0 -j MASQUERADE

启动 OpenVPN

service openvpn start

检查 OpenVPN

netstat -anup | grep 8080 # 8080是端口

如出现如下字样表示成功,OpenVPN 已经打开
udp 0 0 0.0.0.0:8080 0.0.0.0:*
8179/openvpn

设置 OpenVPN 开机启动

chkconfig openvpn on

OpenVPN 客户端

下载客户端: 被墙了,各位各显神通吧。
http://openvpn.net/index.php/open-source/downloads.html

使用 SFTP 软件把客户端所需文件下载到本地

#用户名就是你刚才生成证书时候的名字啊~~~~
服务器路径为:/etc/openvpn/easy-rsa/2.0/keys 中5个文件的:
用户名.crt
用户名.key
ca.crt

将上述3个文件下载到 C:Program FilesOpenVPNconfig(总之是你安装目录了)

上面那个文件夹下,新建 #用户名#.ovpn,输入以下内容

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 GUI并运行,Vista和Win7下需要管理员身份运行。点Connect后等一下,出现本地连接2,搞定!

千万注意,需要Administrator权限!

在服务器上你可以用 service openvpn start | stop | restart 来控制
流量上网方式都出现了。最好的当然后goagent,毕竟免费嘛。但是goagent使用的

0 0