很久之前就购买了一个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,看到你在哪里了木有??美国!!!终于。。。终于翻出去了!!!由此可见:自建梯子跳墙是多么不容易啊!!!
好。看到这里估计你都很累的了。谢谢各位看官阅读本文!!!
本文大部分内容摘自下面两篇文章,感谢他们的作者!!:
ovz是支持pptp-vpn的,我以前一个ovz的vps装过,开启TUN和PPP就可以了
哦哦。是这样的。。刚才查了一下。。新版本的openvz是支持pptp-vpn的。Burst.net里面给安装的是旧版本的openvz。所以就。。。不支持咯~~
前段时间vpsyou做活动,我又买了一个ovz的。。。
这个活动我也见过,就是不知道这个可不可靠。。。一直想找个快速点的vps。。。碍于昂贵的价格没买linode。。写博客就不浪费这么多钱在这里了。
buyvm的可以…
是呢。。。所以想买个试试。。。嘿嘿嘿。。
忙于工作,对于这些现在是完全看不懂了。
我也不懂。。都是跟着别人的步骤来做的。。能用就行啦。。嘿嘿嘿。。