OpenVZ VPS 下 CentOS 安装 OpenVPN 详细教程

2012年8月2日 | 分类: 翻墙相关 | 标签: , ,

博主声明:本文参考自亿旭网的这篇OPENVZ VPS CENTOS 下安装OPENVPN 零起点专用教程,经过博主亲试,确实可用,并且没有转发问题,可以放心使用~

第一步:检查 OpenVPN 所需环境

1.检测虚拟网卡(TUN/TAP)支持

cat /dev/net/tun

如果返回信息为:cat: /dev/net/tun: File descriptor in bad state 说明正常

2.检测iptables_nat模块

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

如果返回信息为:iptables: Unknown error 4294967295 说明正常

说明:如果上面两步,返回信息有一个不正常,那么你需要发个ticket让客服帮忙开通。因为没有这两项支持OpenVZ主机将无法顺利安装 OpenVPN !

第二步:安装 OpenVPN

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

1.默认情况下 CentOS 的 yum 源没有 OpenVPN 的,先安装 EPEL 这个东西(代码如下)

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

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

yum install openvpn

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

3.找一下安装到哪去了,命令如下:

find / -name easy-rsa

找出来了,原来在这里:/usr/share/openvpn/easy-rsa 大家应该都是一样的

第三步:配置 OpenVPN

1.把easy-rsa这个文件夹移出来

cp -R /usr/share/openvpn/easy-rsa /etc/openvpn/

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

cd /etc/openvpn/easy-rsa/2.0
vi vars

根据实际情况修改,保存。这里涉及到编辑器vi的用法,如果有机会我会整理一篇有关的教程。

export KEY_COUNTRY=”CN”
export KEY_PROVINCE=”TJ”
export KEY_CITY=”TJ”
export KEY_ORG=”liukangxu.info”
export KEY_EMAIL=”admin@liukangxu.info”

3.保存后把. vars设置生效。

source ./vars
./clean-all

第四步:生成证书

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

./build-ca server

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

./build-key-server server

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

 ./build-key vpn1

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

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

./build-dh

第五步:设置OpenVPN参数

1.新建 server.conf

vi /etc/openvpn/server.conf

2.放入如下内容:(port 1996 是监听端口 proto udp 可以是 udp 或 tcp  推荐使用 udp)

port 1996
proto 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/dh1024.pem
server 10.8.0.0 255.255.255.0
push “redirect-gateway def1″
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
verb 3

第六步:启用 ipv4 转发

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 那一行

4.配置 iptables
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source 你的服务器IP地址
/etc/init.d/iptables save
/etc/init.d/iptables restart
第七步:启动 OpenVPN

1.启动 OpenVPN

service openvpn start

2.检查 OpenVPN

netstat -anup | grep 1996
如出现如下字样表示成功,OpenVPN 已经打开
udp 0 0 0.0.0.0:1996 0.0.0.0:*
3907/openvpn
3.设置 OpenVPN 开机启动
chkconfig openvpn on

第八步:OpenVPN 客户端

1.下载客户端: http://swupdate.openvpn.org/community/releases/openvpn-2.2.1-install.exe

2.使用 SFTP 软件把客户端所需文件下载到本地,服务器路径为:/etc/openvpn/easy-rsa/2.0/keys 中5个文件的:

vpn1.crt
vpn1.csr
vpn1.key
ca.crt
ca.key

将上述5个文件下载到 C:Program FilesOpenVPNconfig

3、C:Program FilesOpenVPNconfig 文件夹下,新建 vpn1.ovpn,输入以下内容

client
dev tun
proto udp
remote 服务器IP地址 1996
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert vpn1.crt
key vpn1.key
ns-cert-type server
comp-lzo
verb 3

第九步:恭喜你大功告成

1.在开始菜单里面找到OpenVPN GUI并运行,Vista和Win7下需要管理员身份运行。点Connect后等一下,出现本地连接2,搞定!

2.在服务器上你可以用 service openvpn start | stop | restart 来控制

3.另外在此推荐一个自动区分国内国外线路的项目 chnroutes ,不但能够加快国内网站的访问速度,还能节省 VPN 的流量,一举两得哦亲~

来源http://blog.liukangxu.info/?p=104

  1. ryo
    2012年8月23日13:35

    iptable的命令写有问题,提示参数错误

    • iGFW
      2012年8月23日14:41

      哦,那你多找几篇教程比对一下

  2. hehe
    2012年8月5日21:00

    可以参考一下 linux network cookbook

  3. hehe
    2012年8月5日20:59

    可以参考一下 oreilly

  4. hehe
    2012年8月5日20:58

    可以参考一下 oreilly <>

  5. macvpn
    2012年8月4日09:57

    很详细