红联Linux门户
Linux帮助

在Ubuntu VPS上安装VPN服务端及安装VPN客户端

发布时间:2015-03-31 22:34:46来源:imcn.me作者:imcn.me

这篇文章综合了两篇文章,亲身体验过了,非常不错,成功建立 VPN 专用通道!整个过程其实很简单,首先转载一下 LNMP 军哥的方法,先建立 VPN 服务器端。


一、安装服务器端

全文介绍了如何在 VPS 上建立 VPN 服务,且如何在 windows 系统上安装客户端并链接,按照军哥的方法,我也成功实现了 windows 链接 Ubuntu 上的 VPN 服务,这里我只讲讲在 Ubuntu VPS 上安装 VPN 服务端,根据自己的体验有一些小小改变:
1、安装
apt-get install openvpn udev lzop
2、使用easy-rsa生成服务端证书

将OpenVPN所需的配置文件复制到/etc/openvpn/下面:
cp -r /usr/share/doc/openvpn/examples/easy-rsa/ /etc/openvpn/

生产CA证书:
cd /etc/openvpn/easy-rsa/2.0
source vars
./clean-all
./build-ca

./build-ca时会提示输入一些信息,可以都直接回车按默认信息。

生成服务器端证书和密钥,server为名字可以自定义:
./build-key-server server

此步也是会提示输入一些信息,前面的信息直接回车按默认信息,提示Sign the certificate? [y/n]:时输入y(这里我在安装的时候提示不一样,只要出现了询问[y/n]时,输入 Y 就可以了,不用管前面的内容是否一致),提示1 out of 1 certificate requests certified, commit? [y/n] 也是输入y。

生成客户端证书和密钥,client为名字可以自定义,注意前面的./build-key-server与./build-key client输入的名字不能相同:
./build-key client

前面的信息直接回车按默认信息,提示Sign the certificate? [y/n]:时输入y(这里我在安装的时候提示也不一样,只要出现了询问[y/n]时,输入 Y 就可以了,不用管前面的内容是否一致),提示1 out of 1 certificate requests certified, commit? [y/n] 也是输入y

生成其他的客户端就是执行:./build-key 你想添加的客户端的名字,会有name:项设置,直接输入一下用户名,随便只要和服务器端不一样就可以。

生成的证书和密钥存放在/etc/openvpn/easy-rsa/2.0/keys/下面。

生成Diffie Hellman参数:
./build-dh
3、配置OpenVPN服务

编辑/etc/openvpn/server.conf 文件,如果没有可以创建一个,加入下面的内容:

local 服务器IP(这里要修改,其他可以不修改)
port 8080 #端口,需要与客户端配置保持一致
proto udp #使用协议,需要与客户端配置保持一致
dev tun #也可以选择tap模式

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
ifconfig-pool-persist ipp.txt

server 10.168.1.0 255.255.255.0 #给客户的分配的IP段,注意不要与客户端网段冲突!

push “redirect-gateway”
push “dhcp-option DNS 8.8.8.8″
push “dhcp-option DNS 8.8.4.4″

client-to-client
;duplicate-cn
keepalive 20 60

comp-lzo
max-clients 50

persist-key
persist-tun

status openvpn-status.log
log-append openvpn.log

verb 3
mute 20

按上述说明修改服务器IP,复制到VPS上是可以把注释信息删除。

安装iptables
apt-get install iptables   #如果已经安装可以跳过

设置IP转发
iptables -t nat -A POSTROUTING -s 10.168.0.0/16 -o eth0 -j MASQUERADE
iptables-save > /etc/iptables.rules

上面的eth0要替换为你的网卡标识,可以通过ifconfig查看。

在/etc/network/if-up.d/目录下创建iptables文件,内容如下:
#!/bin/sh
iptables-restore < /etc/iptables.rules

给脚本添加执行权限:
chmod +x /etc/network/if-up.d/iptables

修改/etc/sysctl.conf的内容为,这里有两条上面没有,直接添加就可以了,其他项目主要是去掉注释,其实你也可以直接把下面的内容复制到配置文件中:
net.ipv4.ip_forward = 1
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0

重新载入/etc/sysctl.conf使其生效,执行如下命令:
sysctl -p

重启OpenVPN及网络:
/etc/init.d/openvpn restart
/etc/init.d/networking restart


二、客服端安装配置:

直接转发,原文的图片问Gnome 2的界面,我这里的截图为 Unity 7,系统版本为 Ubuntu 14.04:
为 NetworkManager 安装OpenVPN

网络实用工具NetworkManager可以让你你打开或者关闭VPN连接,默认安装在Ubuntu内,你可以在你屏幕的通知区域找到它,挨着系统时钟。

下一步,从Ubuntu软件中心(Ubuntu Software Center)找到可以与NetworkManager一起工作的OpenVPN扩展。

在屏幕左上方应用程序菜单(Applications menu)打开Ubuntu软件中心(Ubuntu Software Center)
在Ubuntu VPS上安装VPN服务端及安装VPN客户端
Ubuntu软件中心(Ubuntu Software Center)可以让你搜索、安装和卸载软件。点击窗口右上方的搜索框。
在Ubuntu VPS上安装VPN服务端及安装VPN客户端
在搜索框输入”network-manager-openvpn-gnome”(可以启动OpenVPN的NetworkManager扩展)。程序包包含了你需要成功建立VPN连接的所有文件,包括OpenVPN客户端。点击安装(Install)
在Ubuntu VPS上安装VPN服务端及安装VPN客户端

在Ubuntu VPS上安装VPN服务端及安装VPN客户端

Ubuntu可能提示你需要安装软件的额外权限。如果这样的话,输入你的密码点击验证(Authenticate)。程序包安装好后,你可以关闭Ubuntu软件中心(Ubuntu Software Center)。
在Ubuntu VPS上安装VPN服务端及安装VPN客户端
检查OpenVPN是否已正确安装,点击NetworkManager(图标在系统时钟的左边),选择VPN连接(VPN Connections )> 设置VPN (Configure VPN)。
在Ubuntu VPS上安装VPN服务端及安装VPN客户端
在VPN选项卡上点击添加(Add)。
在Ubuntu VPS上安装VPN服务端及安装VPN客户端
如果你能看到OpenVPN选项,这意味着你已成功在Ubuntu上安装OpenVPN客户端。点击取消(cancel),关闭NetworkManager。
在Ubuntu VPS上安装VPN服务端及安装VPN客户端

在Ubuntu VPS上安装VPN服务端及安装VPN客户端

在Ubuntu VPS上安装VPN服务端及安装VPN客户端

点击“新建”,在弹出框中选择已经配置好的.ovpn文件:
在Ubuntu VPS上安装VPN服务端及安装VPN客户端

在Ubuntu VPS上安装VPN服务端及安装VPN客户端

点击“保存”就设置好了


三、使用你新的VPN连接

现在你配置NetworkManager使用VPN客户端连接VPN服务,你可以使用新的VPN连接绕开网络审查。按照下面的步骤开始:

1.在NetworkManager菜单,从VPN 连接中选择新的连接。
在Ubuntu VPS上安装VPN服务端及安装VPN客户端

2.等待VPN连接建立。当连接时,一个小挂锁的图标将会紧挨在NetworkManager图标的右边,显示你正在使用一个安全的连接。把光标移到图标上,确认VPN连接已连上。
在Ubuntu VPS上安装VPN服务端及安装VPN客户端

注:以上图片上传到红联Linux系统教程频道中。

3.你也可以访问http://www.ipchicken.com.,检查连接的现状。这个免费的IP查询工具确认你正在使用airvpn.org的一个服务器。

另外下载openvpn地址:http://openvpn.ustc.edu.cn/