LeNgHoSt的小窝

I did it my way, ‘Cause it’s my life!

2009年12月05日

BurstNET的VPS安装OpenVPN教程总结

今天在BurstNET的VPS上尝试安装OpenVPN成功,过程比较繁琐,在这里做个总结,留作以后备用,呵呵

安装之前,请先确认VPS已经开启tun/tap支持,并且加载了iptables支持NAT。BurstNET的VPS默认是不支持的,无法正常使用OpenVPN。

如何确认是否开启了tun/tap?
cat /dev/net/tun
如果返回信息为:cat: /dev/net/tun: File descriptor in bad state. 说明已经开启。

你可以直接给客服发个Ticket告诉他你要用OpenVPN,让他开启tun/tap就行了。
我是这样说的:(不知道语法对不对哈,反正客服能看懂意思就行了,嘿嘿)
Can you help me enable tun/tap?
I want to run openvpn, need tun/tap support.

不一会客服就回复说:
This has been added to your container. Have a good day.

确认开启了tun/tap后,就可以安装OpenVPN了。
我是用yum安装的,网上搜到的教程大部分都是直接下载源码,自己make install的,有点复杂。
但是用yum安装需要一个前提,因为OpenVPN不在CentOS默认的库里,直接运行yum install openvpn会失败,要先安装RPMForge,RPMForge是一个Linux社区的软件仓库,包含了支持CentOS或者Redhat的4000多个软件。软件是通过RPM包的形式提供,支持yum安装管理工具。

安装RPMForge:
下载rpmforge-release
i386: http://apt.sw.be/redhat/el5/en/i386/RPMS.dag/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
x86_64: http://apt.sw.be/redhat/el5/en/x86_64/RPMS.dag/rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm
导入KEY

rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt


安装
rpm -i rpmforge-release-0.3.6-1.el5.rf.*.rpm
测试
yum check-update

安装OpenVPN:
可能系统之前没有安装openssl相关组件,先安装下
yum install openssl openssl-devel -y
然后再安装openvpn
yum install openvpn -y
根据提示会下载几个相关的软件包,一路按y确定就可以了。

生成证书和key:
find / -name easy-rsa #搜索easy-rsa目录
#一般会在下面的目录中找到
cd /usr/share/doc/openvpn-2.0.9/easy-rsa
. vars #注意:点和vars之间有个空格
chmod 777 *
./clean-all
./build-ca #Common Name输入server,其他默认
./build-key-server server #Comman Name输入server,其他默认,最后按y生成证书
./build-key client01 #Comman Name输入client01,其他默认,最后按y生成证书
#如果需要多个客户端登录,依次生成其他客户端证书/key
./build-key client02
./build-key client03
……
#要注意,每个客户端的Comman Name必须不同
./build-dh
mkdir /etc/openvpn
cp keys /etc/openvpn -r #将keys文件夹复制到/etc/openvpn目录
tar -cf keys.tar keys #将打包好的keys.tar文件下载到本地

修改配置文件:
cd ..
cd sample-config-files
cp server.conf /usr/local/etc
vi /usr/local/etc/server.conf
服务端配置文件:

local 你VPS的IP地址
port 1194
proto tcp
dev tun
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/server.crt
key /etc/openvpn/keys/server.key
dh /etc/openvpn/keys/dh1024.pem
server 10.8.0.0 255.255.255.0
push “dhcp-option DNS 10.8.0.1″
push “dhcp-option DNS 208.67.222.222″
push “dhcp-option DNS 208.67.220.220″
client-to-client
keepalive 10 120
comp-lzo
persist-key
persist-tun
status /etc/openvpn/keys/openvpn-status.log
verb 4

cp client.conf /usr/local/etc
vi /usr/local/etc/client.conf
客户端配置文件:

client
dev tun
proto tcp
remote 你vps的ip 1194
persist-key
persist-tun
ca ca.crt
cert client01.crt
key client01.key
#这里的两个文件名必须和前面生成的证书文件名一样
ns-cert-type server
comp-lzo
verb 3
redirect-gateway def1

运行OpenVPN:

/usr/sbin/openvpn --config /usr/local/etc/server.conf &

配置iptables转发规则:

/sbin/iptables -t nat -A POSTROUTING -s 10.8.0.0/255.255.255.0 -j SNAT --to-source 你vps的ip


/etc/init.d/iptables save
/etc/init.d/iptables restart
开启ip-forward:
运行:sysctl -a | grep for

net.ipv6.conf.lo.force_mld_version = 0
net.ipv6.conf.lo.forwarding = 1
net.ipv6.conf.default.force_mld_version = 0
net.ipv6.conf.default.forwarding = 1
net.ipv6.conf.all.force_mld_version = 0
net.ipv6.conf.all.forwarding = 1
net.ipv4.ip_forward = 1
net.ipv4.conf.tun0.force_igmp_version = 0
net.ipv4.conf.tun0.mc_forwarding = 0
net.ipv4.conf.tun0.forwarding = 1
net.ipv4.conf.venet0.force_igmp_version = 0
net.ipv4.conf.venet0.mc_forwarding = 0
net.ipv4.conf.venet0.forwarding = 1
net.ipv4.conf.lo.force_igmp_version = 0
net.ipv4.conf.lo.mc_forwarding = 0
net.ipv4.conf.lo.forwarding = 1
net.ipv4.conf.default.force_igmp_version = 0
net.ipv4.conf.default.mc_forwarding = 0
net.ipv4.conf.default.forwarding = 1
net.ipv4.conf.all.force_igmp_version = 0
net.ipv4.conf.all.mc_forwarding = 0
net.ipv4.conf.all.forwarding = 1

如果你的主机上列数值不是为1, 则要将其改成1
例如:sysctl -w net.ipv4.ip_forward=1

设置OpenVPN开机自动运行:
vi /etc/rc.local
在最后面加入此行:

/usr/sbin/openvpn --config /usr/local/etc/server.conf > /dev/null 2>&1 &

Windows下客户端的安装配置:
下载OpenVPN GUI For Windows

http://openvpn.se/files/install_packages/openvpn-2.0.9-gui-1.0.3-install.exe

依屏幕指示安装OpenVPN GUI
安装结束后,进入安装文件夹的config目录,将之前在VPS上建立的client.conf文件下载到该目录,并更名为client.ovpn
把之前打包的keys.tar也解压到config目录里。
然后右键点击client.ovpn选择Start OpenVPN on this config file
或者从开始菜单里运行OpenVPN GUI,在右下角图标上点右键选Connect

成功连接后,右下角的OpenVPN GUI图标会由红色变为绿色
这时打开www.ip138.com查看当前IP地址就会显示你VPS的IP了

标签:, , , ,

相关日志

11条评论

  1. salang | 十二月5日, 2009 | 发表新评论

    太厉害了···能不能教我做那个··你知道的那个··

    回复该评论

  2. tony | 十二月12日, 2009 | 发表新评论

    为什么我运行iptables会出错呢
    /sbin/iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o venet0 -j MASQUERADE

    显示iptables: Unknown error 4294967295

    回复该评论

    LeNgHoSt 回复:

    提示这个就是正常了

    回复该评论

    tony 回复:

    看来是对的,不过我照这个流程下去发现不太对啊

    回复该评论

    LeNgHoSt 回复:

    你到那个地方出问题了?

  3. pugwoo | 十二月31日, 2009 | 发表新评论

    client.conf中的IP地址要换成自己VPS的IP地址,其它没问题,我试过了

    回复该评论

  4. 圈叔 | 一月24日, 2010 | 发表新评论

    /etc/init.d/iptables save
    偶是在debian里搭建的
    这里卡住了
    求助。。>3<

    回复该评论

    LeNgHoSt 回复:

    什么提示呢?是不是没安装iptables

    回复该评论

  5. haohao | 二月23日, 2010 | 发表新评论

    安装完成,只能访问VPS的主机IP,别的全部PING不通。请问为何?

    回复该评论

    LeNgHoSt 回复:

    可能是iptables的问题

    回复该评论

  6. haohao | 二月24日, 2010 | 发表新评论

    iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j SNAT –to-source MYvpsIP

    显示iptables: Unknown error 4294967295

    这2条都已经做到了。
    俺已经重装5次了,这。。

    回复该评论

  7. Eureka | 二月27日, 2010 | 发表新评论

    太感谢了!在您的教程指导下,反复弄了好久终于搞定了,谢谢!

    回复该评论

  8. Eureka | 二月27日, 2010 | 发表新评论

    您好 按照您的文章我终于配置好了 但是链接效果转瞬即逝 就是说刚刚连上openvpn时可以打开网页 片刻之后就什么都打不开了 这是怎么回事?
    我用的也是BurstNET CentOS 5

    回复该评论

    LeNgHoSt 回复:

    不会吧,呵呵,我用的时候倒没碰到你说的这种情况,不过有时候网速不好,确实会打不开网页,但也是偶尔出现,不会一直打不开的。

    回复该评论

    Eureka 回复:

    您用burstnet访问twitter youtube正常吗 且不说openvpn 我直接用ssh tunnel代理也不太正常

    回复该评论

    LeNgHoSt 回复:

    Burst的速度不行,看youtube会卡:(

  9. PPStation | 二月28日, 2010 | 发表新评论

    我用的ubuntu9.04为啥在/etc/init.d中没有iptables?

    回复该评论

    LeNgHoSt 回复:

    iptables安装了吗?

    回复该评论

    PPStation 回复:

    装好了,/sbin/iptables -t nat -A POSTROUTING -s 10.8.0.0/255.255.255.0 -j SNAT –to-source 你vps的ip
    这条命令正常。

    回复该评论

  10. adigo | 六月22日, 2010 | 发表新评论

    請問一下我的openvpn連結有建立可是卻連不上internet
    我是用burst aps centos 5
    當我輸入
    /sbin/iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o venet0 -j MASQUERADE
    完全沒有錯誤訊息
    該怎麼辦呢?
    謝謝

    回复该评论

    LeNgHoSt 回复:

    试试这样呢?
    /sbin/iptables -t nat -A POSTROUTING -s 10.8.0.0/255.255.255.0 -j SNAT –to-source 你vps的ip

    回复该评论

  11. Aaliyah Wyatt | 七月24日, 2011 | 发表新评论

    Hej – brilliant web page. Any users of text message marketing 12stores.com @ California? i know they only cost nine dollars per month, however I have like to point out other local users of it 4 my company.

    回复该评论

11 Trackback(s)

  1. From ServerHitch VPS初用记录 « WebHosting Coupon | 一 1, 2010
  2. From 在OpenVZ下的VPS安装OpenVPN(CentOS 5) - 醉爱PHP | 三 3, 2010
  3. From res0w » Blog Archive » VPS上搭建OpenVPN手册 | 三 7, 2010
  4. From VPS上搭建OpenVPN手册 - 技术生活 - res0w | 三 11, 2010
  5. From 伪鸟居 » 用BurstNet的VPS搭建OpenVPN的总结 | 四 20, 2010
  6. From OpenVPN Start Error | 我的那些花儿 | 五 18, 2010
  7. From 在OpenVZ下的VPS安装OpenVPN(CentOS 5) : 冷兵器时代 | 六 17, 2010
  8. From BurstNET VPS安装OpenVPN详细教程 | BurstNET中文站 - 分享Burst VPS、独服优惠码|测评|帮助信息|代购服务 | 八 24, 2011
  9. From 翻墙了 | blog.followshake.com | 九 7, 2011
  10. From Burst VPS教程+遇到的问题+KLOXO 6.1.7 汉化版 一键安装+优化包+详细教程 — 王鹏森的个人网站 | 十二 20, 2011
  11. From Burst VPS教程+遇到的问题+KLOXO 6.1.7 汉化版 一键安装+优化包+详细教程 – 王鹏森的个人网站 - 王鹏森的全拼域名网站(wangpengsen.com) | 十二 22, 2011

发表评论