很久之前就购买了一个VPS了,是在burst.net上面买的。一直想在上面搭建个VPN。

不过,这个vps是基于openVZ,不支持PPTP VPN,只能搭建OpenVPN了,相比于pptp VPN来说,OpenVPN的搭建要麻烦一些,需要在服务端和客户端生成证书等等。

下面把搭建过程叙说一下,系统是ubuntu 11.10 X86的版本的。

I、前期工作:开启 Tun/Tap 。

这个得说一下的是不少系统是Centos的,要是你Reload了系统的话,就得重新开启这个 Tun/Tap 。

开通之后,用命令

cat /dev/net/tun

如果返回 cat: /dev/net/tun: File descriptor in bad stat,表明已经成功启用TUN支持。

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

检查,如果返回iptables: Unknown error 4294967295,表明系统还不支持,需要联系客服开通。

II、安装 OpenVPN

输入以下命令:

apt-get install openvpn

回车,输入 “y”,再回车。

III、移动 easy-rsa 文件夹

输入以下命令:

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

回车完成将 easy-rsa 文件夹复制到 OpenVPN 根目录的操作。

IV、生成加密文件(这里注意了!看清楚每一步再执行)

一行一行地输入以下命令,每行都要回车,在出现 “y/n” 问题的地方输入 “y” 再回车:

注意:那个“. ./vars” 中,点与点之间是有空格的!!别漏打了呀!!

cd /etc/openvpn/easy-rsa/2.0
. ./vars
./clean-all
./build-ca
./build-key-server server
./build-key client
./build-dh

小技巧:你可以将 “client” 改成任意的名字,但是下面的步骤也要跟着改。这个其实是客户端的keys,要是你有多个客户的话,就逐一逐一生成key。

V、应用 iptables 规则

这个步骤将使你的 OpenVPN 连接到互联网:

1、转发 IP

输入以下命令:

vi /etc/sysctl.conf

回车,找到 “#net.ipv4.ip_forward=1” 这一行,按 “x” 键删除那个 “#” 号,然后输入 “:wq” 保存。

2、使转发生效

输入以下命令:

sysctl -p

如果一切正常,你将只会看到以下结果:

net.ipv4.ip_forward=1

3、创建 iptables 规则

输入以下命令:

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j SNAT --to 178.18.17.142

记得将 “178.18.17.142” 改为你 VPS 的 IP 地址。

小技巧:如果是 OpenVZ 类型的 VPS,则需要将 “eth0” 替换成 “venet0″。我的vps是OpenVZ类型的,得改!!

VI、创建 VPS 上的 OpenVPN 配置文件

输入以下命令:

 vi /etc/openvpn/server.conf

回车,按下 “i” 键(记得按i啊!!不然修改不到的!!),然后粘贴以下内容:

port 1194
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
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
client-to-client
duplicate-cn
keepalive 10 120
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
log /var/log/openvpn.log
verb 3

按下 “esc” 键退出插入模式,输入 “:wq” 保存文件。

小技巧:你也可以将 8.8.8.8 和 8.8.4.4 分别替换成 208.67.222.222 和 208.67.220.220。

VII、启动 OpenVPN

输入以下命令:

/etc/init.d/openvpn start

回车,这个时候就会启动openvpn了,成功的话会出现”[OK]”字样的提示,要是没出现的话,就证明刚才你刚才的步骤做错了,仔细检查一遍,重做上面的步骤吧。

VIII、创建电脑上的 OpenVPN 配置文件

输入以下命令:

vi /etc/openvpn/easy-rsa/2.0/keys/client.conf

回车,按下 “i” 键,并粘贴以下内容:

client
dev tun
proto udp
remote 178.18.17.142 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
comp-lzo
verb 3
redirect-gateway
script-security 2

注意!记得将 “178.18.17.142” 换成你 VPS 的 IP 地址。完了之后,按下 “esc” 键退出插入模式,输入 “:wq” 保存。

IX、重启

为了避免 VPS 重启后重新设置一遍 iptables 规则,你可以输入以下命令:

vi /etc/rc.local

回车,按下 “i” 键,并将以下内容粘贴到 “exit 0” 这一行的上面:

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j SNAT --to 178.18.17.142
openvpn /etc/openvpn/server.conf

这里还是要提醒——>记得将 “178.18.17.142″ 替换成你 VPS 的 IP 地址,完了之后,按下 “esc” 键退出插入模式,然后输入 “:wq” 保存。

小技巧:以上的命令是针对 Xen 类型的 VPS,如果是 OpenVZ 类型的,则需要将 “eth0” 替换成 “venet0″。

X、将配置文件下载到电脑里

1、进入文件所在的目录,打包文件,把文件移动到www文件夹里面以方便下载。执行以下命令:

cd /etc/openvpn/easy-rsa/2.0/
tar -rf keys.tar keys
mv keys.tar /var/www/

2、下载文件

在浏览器地址栏上输入http://178.18.17.142/keys.tar回车, 把keys下载下来之后(注意!记得将 “178.18.17.142″ 替换成你 VPS的IP地址。)。

挑选下面四个OpenVPN的客户端配置文件,其他多出来的文件不需要理会,删掉就可以。。

client.conf
ca.crt
client.crt
client.key

3.清理掉服务器上面打包的keys.tar。

刚才我们把keys放到了www下面,当我们下载了之后,记得要删掉它哦!不然的话,别人也可以下载到你的keys了。删除的命令是:

rm /var/www/keys.tar

XI、OpenVPN的使用

首先是需要下载一个openvpn客户端安装,建议到http://openvpn.ustc.edu.cn/下载一个2.1.1的版本,其他地方下载的可能连不上哦。

然后是安装,安装的时候记下你的安装路径,完之后,把刚才挑选的那四个配置文件扔到,openvpn安装目录下面的config文件夹下面,把其中的client.conf的后缀改为client.ovpn。

启动openvpn-gui,在电脑托盘右下角啦!!看到木有!!!鼠标右击它,然后点击connect!!!bingo!!!!变成绿色了!!有木有!!

打开浏览器,输入ip138.com,看到你在哪里了木有??美国!!!终于。。。终于翻出去了!!!由此可见:自建梯子跳墙是多么不容易啊!!!

好。看到这里估计你都很累的了。谢谢各位看官阅读本文!!!

本文大部分内容摘自下面两篇文章,感谢他们的作者!!:

在 VPS 上搭建 OpenVPN 简易教程

BurstNET VPS上搭建OpenVPN 

藏剑山庄原创文章,未经允许,禁止转载!

原文链接:http://blog.yanwen.org/archives/1333.html