Nov 20

搭建OpenVPN@VPS@OpenVZ 不指定

felix021 @ 2011-11-20 01:35 [IT » 网络] 评论(0) , 引用(0) , 阅读(7229) | Via 本站原创 | |
  上次说了,OpenVZ解决方案的VPS内核没有ppp模块, 不能搞PPTP;不过还好,很多服务商都提供tun(有些需要找客服发ticket,有些在管理后台就可以开,比如BurstNet的就在管理后台开),可以搞OpenVPN。据说OpenVPN效率比PPTP要高,不过PPTP的好处是各种OS直接集成(Windows7,iOS,Android……),而OpenVPN就相对折腾一点。

  闲话不说了,进入正题。

==== 首先坑的总结,下面特别注意下 ====

1. iptables规则执行完要输入完然后check一下是否规则已经添加
2. 21端口不靠谱
3. tcp协议不靠谱
4. 配置Server的时候不要一路按回车!有些是问[y/n]需要输入 y 的!


==== 服务器端的配置 ====

1. 开通tun,BurstNet的在“Info & Security”里面可以点“Enable Tun/Tap”,然后重启VPS即可。反正就是要确保 /dev/net/tun 存在。

2. 安装openvpn服务器程序
sudo apt-get install openvpn

3. 拷贝openvpn的配置脚本(下面全部用root执行吧 比较省事)
cp -R /usr/share/doc/openvpn/examples/easy-rsa /etc/openvpn

4. 配置Server,其中大部分提问都是默认回车就行,不过有一些(主要是后面3个)会问y/n,都要写y
cd /etc/openvpn/easy-rsa/2.0
source vars
./clean-all
./build-ca
./build-key-server server
./build-key username
./build-dh

5. 在rc.local中增加iptables规则,以实现转发(其实可以用iptables-save restore之类的,不过没折腾过)
vi /etc/rc.local
#在exit 0前面加入
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o venet0 -j MASQUERADE
这样在每次重启的时候会自动执行

6. 执行上面列出的iptables命令,然后 iptables -L -t nat 看看POSTROUTING里面是不是有了
target    prot opt source              destination
MASQUERADE  all  --  10.8.0.0/24          anywhere

7. 增加/etc/openvpn/openvpn.conf,内容如下
引用
dev tun
proto udp
port 8080

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

user nobody
group nogroup
server 10.8.0.0 255.255.255.0

persist-key
persist-tun

client-to-client
push "redirect-gateway def1"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"

comp-lzo

status openvpn-status.log
verb 3
可以自行修改端口、协议类型,但是
a) 发现tcp比udp慢、不靠谱
b) 发现tcp + 端口21 每次访问网页的时候会被reset(GFW真神奇!)

8. 启动Server
/etc/init.d/openvpn start


==== Windows客户端的设置 ====
1. 在这里下载最新版本的 openvpn 安装程序并安装
http://openvpn.net/index.php/open-source/downloads.html

2. 建立目录 username ,将服务器上的这三个文件拷贝进去:
/etc/openvpn/easy-rsa/2.0/keys/ca.crt
/etc/openvpn/easy-rsa/2.0/keys/username.crt
/etc/openvpn/easy-rsa/2.0/keys/username.key

3. 在这个目录下创建一个 username.ovpn 文件,内容为
引用
client
dev tun
proto udp

# 记得修改下面的域名和端口,跟服务器保持一致
remote vpn.example.com 8080

resolv-retry infinite
nobind

persist-key
persist-tun

ca ca.crt
cert username.crt
key username.key

comp-lzo
verb 3


4. 右键点击 username.ovpn ,选择“Start OpenVPN on this config file”
当出现“Initialization Sequence Completed”字样的时候说明连接成功了。

Enjoy~

==== 添加其他帐号 ====
cd /etc/openvpn/easy-rsa/2.0
source ./vars
./build-key another_user

以前一直以为会挺麻烦(的确挺麻烦的),但是自己动手试了一下,就好多了。

只要我们的铁骑继续前进,这些螳臂当车的困难怎么能够阻挡得了呢!

p.s. 本文参考并修改自 http://blog.stevenwang.name/vps-openvpn-124001.html  ,多谢czyhd同学的协助。



欢迎扫码关注:




转载请注明出自 ,如是转载文则注明原出处,谢谢:)
RSS订阅地址: https://www.felix021.com/blog/feed.php
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   *非必须
网址   电邮   [注册]