BurstNET VPS上搭建OpenVPN

2,552 views 三月 28, 10 by Timothy

俺的VPS是基于OpenVZ的,因而不支持PPTP VPN,唯一的办法,是搭建OpenVPN。和PPTP VPN相比,OpenVPN的搭建要稍微麻烦一些。并且服务端和客户端需要生成证书,以及修改配置文件。下面把BurstNET VPS上,Ubuntu系统中搭建OpenVPS的流水账记录一下,供日后参考:

1.前期工作,OpenVPN,需要TUN支持,默认情况下,是没有开启的,需要到后台管理平台中,点击Enable Tun/Tap即可开通。开通后,用命令

1
cat /dev/net/tun

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

另外,需要iptables_nat模块支持,用命令

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

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

2.安装OpenVPN,这个最简单不过了:

1
sudo apt-get install openvpn

安装好后,默认的路径在 /usr/share/openvpn,进入 /usr/share/openvpn/easy-rsa/2.0 目录,用vim修改vars文件,加入自己的信息,这些信息在生成证书的时候会用到,下面是示例:

1
2
3
4
5
export KEY_COUNTRY="CN"
export KEY_PROVINCE="SC"
export KEY_CITY="ChengDu"
export KEY_ORG="FreedomUnion"
export KEY_EMAIL="admin@xiaozhou.net"

修改好后,保存文件,用命令 . ./var运行,注意两个点之间有个空格。运行后,会设置好变量,接下来按照下面顺序,运行命令,生成证书:

1
2
3
4
./build-ca
./build-key-server timothy-vps
./build-key ClientName
./build-dh

./build-key-server 用来生成服务端证书,./build-key用来生成客户端证书,有几个客户端,就需要生成几个。

生成好后,接下来需要配置服务端配置文件,把/usr/share/openvpn/easy-rsa/2.0/keys目录下所有生成好的证书文件,拷贝到 /etc/openvpn/keys,接下来,编辑服务端配置文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
cd /etc/openvpn
vim server.conf
 
#输入以下内容到配置文件
port 1194
proto tcp
dev tun
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/timothy-vps.crt
key /etc/openvpn/keys/timothy-vps.key
dh /etc/openvpn/keys/dh1024.pem
server 10.8.0.0 255.255.255.0
push "redirect-gateway def1"
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
verb 3

编辑好后,保存文件,用vim编辑 /etc/sysctl.conf,把net.ipv4.ip_forward=0改成 net.ipv4.ip_forward = 1,运行 sysctl -p命令,编辑/etc/init.d/iptables,加入以下规则:

/sbin/iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT –to-source Your-VPS-IP

接下来,服务端配置基本结束,运行命令,启动OpenVPN客户端:

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

如果需要开机启动,把上面命令加入到/etc/rc.local即可

服务端启动成功截图

image

接下来,配置客户端了,Windows下使用OpenVPN,需要下载最新版的OpenVPN安装程序。安装好后,将在VPS上生成好的证书文件,下载到客户端,包括ca.crt证书,以及客户端证书:timothy.crt  timothy.key,将它们统统拷贝到OpenVPS安装目录下的config目录,编写客户端文件,保存为client.ovpn,内容如下:

client
dev tun
proto tcp
remote Your-VPS-IP 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert timothy.crt
key timothy.key
ns-cert-type server
comp-lzo
verb 3

保存好后,右键点击client.ovpn,选择“Start OpenVPN on this config file”,建立VPN连接,建立好后,命令行会有如下提示: Initialization Sequence Completed,表示连接成功,这下,可以VPN上网了。去ip138.com,看看你的IP,应该是VPS的IP了:

image

分享到:

声明: 此Blog中的文章和随笔仅代表作者在某一特定时间内的观点和结论,对其完全的正确不做任何担保或假设
本站文章均采用 知识共享署名-相同方式共享3.0 协议进行授权,除非注明,本站文章均为原创,转载请注明转自 Timothy's Space 并应以链接形式标明本文地址!

你可能也对下列文章感兴趣


42 Responses to "BurstNET VPS上搭建OpenVPN"

  1. lonkil CHINA Google Chrome Windows 说道:

    爆一下被和谐掉的IP:173.212.229.16
    让DDOS来的更猛烈一些吧。

  2. Allen CHINA Google Chrome Linux 说道:


    竟然搜到了你的文……

  3. Allen CHINA Google Chrome Linux 说道:

    cat: /dev/net/tun: File descriptor in cad stat 改为cat: /dev/net/tun: File descriptor in bad stat

  4. Allen Google Chrome Windows 说道:

    我查到iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o venet0 -j MASQUERADE 如果不是xen的主机,MASQUERADE不能用的;OpenVZ要用iptables -t nat -A POSTROUTING -s 10.0.0.0/8 -o venet0 -j SNAT –to your_ip
    但是好像里面的参数venet0这个似乎每个人都不一样?

    求解……

  5. zwwooooo CHINA Google Chrome Windows 说道:

    你太诱惑我了

  6. Allen CHINA Safari Linux 说道:

    你啥时候搞个监控宝?我这弄snmp都头大了

  7. Allen Google Chrome Windows 说道:

    哈哈,我自己好像搞定了net-snmp,一会儿弄监控宝看看。
    PS:用Android上的Chrome-Lite被你识别为Safari 530.17

  8. Blinux AUSTRALIA Google Chrome Windows 说道:

    BurstNET 的VPS很实惠的,等godaddy这头过期了,我也换个VPS.hoho

  9. blueandhack CHINA Internet Explorer Windows 说道:

    话说你买的是什么套餐是5刀每个月的吗?

  10. letmego CHINA Internet Explorer Windows 说道:

    timothy,你的博客很精彩,我正在建这个openvpn,能告诉我怎么样在ssh中下载文件到本地吗?
    我不知道怎么把那些Key下载到本地 使用命令以后 我找不到keys包(命令我不太了解什么意思)
    我本地是windowsxp.请指教,谢谢了

    我的QQ:877395988

    • Timothy UNITED STATES Mozilla Firefox Windows 说道:

      @letmego: 最简单的,就是用scp命令,google一下吧。我一半用SSH客户端的Z-modem功能,服务端也需要装个组件,使用起来很方便。


Leave a Reply

 您已输入0

(Ctrl+Enter)