Nov
20
搭建OpenVPN@VPS@OpenVZ
上次说了,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,内容如下可以自行修改端口、协议类型,但是
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 文件,内容为
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 。
闲话不说了,进入正题。
==== 首先坑的总结,下面特别注意下 ====
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
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
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 。