一、介绍

Pritunl是一款图形化的OpenVPN软件,提供一个友好的图形界面,免去传统的OpenVPN安装之苦,并且通过图形界面可以进行简单的人员管理,参数配置,非常方便。

原理
原理也是非常简单,我们使用公网连接到OpenVPN实例之后,会在本地创建一个虚拟接口,指定网段的流量会通过这个虚拟接口连接到OpenVPN实例。连接到网络之后,OpenVPN会进行转发,将你的流量转发到自己所在网络中。

Tunneling Split俗称隧道分离,就是能够让你指定的网段通过OpenVPN建立的隧道进行访问,而未指定的则通过你所在的网络进行访问。这样能够大幅度节省你在云上的带宽,也能提高用户体验,还能保证安全

二、安装

官方文档

Pritunl基本上是一键式安装,期间可能遇到些许众所周知的网络问题,自己解决下就好,底层依赖于一个MongoDB进行用户的管理以及OpenVPN模版的渲染。

2.1、配置mongodb需要的源

cat >> /etc/yum.repos.d/mongodb.repo  << EOF
[mngodb-org]
name=MongoDB Repository
baseurl=http://mirrors.aliyun.com/mongodb/yum/redhat/7Server/mongodb-org/4.0/x86_64/
gpgcheck=0
enabled=1
EOF

2.2、配置pritunl需要的源

cat >> /etc/yum.repos.d/pritunl.repo << EOF
[pritunl]
name=Pritunl Repository
baseurl=https://repo.pritunl.com/stable/yum/centos/7/
gpgcheck=1
enabled=1
EOF

更新缓存

yum makecache

导入GPG签名公钥

gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 7568D9BB55FF9E5287D586017AE645C0CF8E292A
gpg --armor --export 7568D9BB55FF9E5287D586017AE645C0CF8E292A > key.tmp; sudo rpm --import key.tmp; rm -f key.tmp

2.3、安装pritunl和mongodb

yum install epel-release mongodb-org --skip-broken  pritunl --nogpgcheck -y

启动服务并设置开机自启

systemctl enable mongod pritunl --now

查看端口是否齐全

netstat -lntup

image-20231024113220726

注意:如果是公网服务器的话防火墙或者安全组要将上面标注的端口打开。安装之后打开服务器IP或者域名就可以使用了,需要在服务器上初始化一个key才可以使用,运行pritunl setup-key即可。配置好之后就可以使用了,更多的使用方式可以参考官方文档,记得为自己的MongoDB 配置密码

2.4、生成初始设置密钥(初次登录需要)

[root@web01 ~]# pritunl setup-key
75f716f91094467aa765e8680dca2fb2

浏览器访问:10.0.0.7(把上一步生成的密钥填入下图第一栏),点击“save”)

image-20231024113933739

image-20231024114050276

[root@web01 ~]#  pritunl default-password
[local][2023-10-24 11:41:26,531][INFO] Getting default administrator password
Administrator default password:
  username: "pritunl"
  password: "h9p4DYQ9k3wg"

登录以后根据提示可以先设置用户名和密码:

image-20231024114511526

三、用户创建

根据如下顺序操作

3.1、添加组织

image-20231024115213000

image-20231024115228004

3.2、添加用户

image-20231024115351084

image-20231024115535738

注意:上面的Pin是连接VPN的密码要自己设置并记住;

image-20231024115616446

3.3、添加服务器

image-20231024115702868

image-20231024120010458

注意:如果是公网服务器的话防火墙或者安全组要把上面udp的端口要打开

3.4、将组织附加到服务器

image-20231024120040887

image-20231024120105485

3.5、启动服务器

image-20231024120139620

再回来用户点击右侧链接图标选择个人资料用浏览器打开

image-20231024120404743

打开链接后先点一下最下面的“show more”,然后会显示如下页面:第一行下载VPN客户端安装包,第二处标红是VPN连接证书,第三处是个人初始密码和修改后的密码(可不修改),最后一处标红是修改密码之后确认(默认密码是6-8为的数字):

image-20231024121028479

点击“Down Client”选择如下

image-20231024122440406

“Download Profiles”下载到本地后要解压,然后把下载好的pritunl客户端连接软件打开点击“Improt ”导入刚刚解压的vpn证书,然后再点击右上角“connect”并输入密码点击“OK”登录,过程如下:

image-20231024122545091

image-20231024122743601

image-20231024122818937

image-20231024122906407

image-20231024123058845

客户端连接延时失败,原因是我虚拟机用的nat连接方式,我改成桥接模式(修改桥接可参考:https://jiujiu.tj.cn/?p=339),然后把虚拟机外网地址改成虚拟机自身IP(如果在有公网IP的云主机上就不会出现这个问题),设置如下

image-20231024125126062

多用户连接要在服务器里设置:
注意:修改之前要先“stop server”,否则会报错:Server must be offline to modify settings.

image-20231024125608049

image-20231024125749221

还可以修改默认虚拟网络,客户端连接IP段

image-20231024125838342

修改完成要再一次“start server”。启动完成后,客户端再次尝试连接。注:如果是修改了虚拟机为桥接模式,VPN证书需重新下载解压导入

image-20231024133424244

由红变绿,并有详细的连接描述

image-20231024133529155

验证本地IP与客户端分配给的IP是否一致

image-20231024133703640