目录
1 Pritunl介绍
1.1 介绍
当今市场上有几种 VPN 服务器。pritun VPN 是 Pulse Secure 和 Aviatrix 等可用商业产品的最佳开源替代品之一。除了简单易用的图形界面。它提供了更多令人惊叹的功能,例如:
- 无需注册即可免费使用。
- 安装和配置简单
- 它支持多种协议,因为它为客户端提供了与 OpenVPN 或 Wireguard 连接的选项
- 它有一个 REST API,可以轻松地将 Pritunl 与其他服务集成和配置
- 通过对客户端和服务器之间的所有流量进行加密,提供更高的安全性。还有一个可选的 Google 身份验证器两步验证。
- 通过 VPC 对等连接支持多云站点到站点链接。VPC 对等连接适用于 AWS、Google Cloud、Azure 和 Oracle Cloud。
- Pritunl 基于 MongoDB 构建,MongoDB 是一种可靠且可扩展的数据库,可以快速部署
1.2 Pritunl VPN 架构
Pritunl VPN 旨在在云中提供高度分布式和可扩展的基础设施,无需昂贵的硬件。Pritunl 使用客户端-服务器架构,其中服务器具有所有必需的 VPN 配置,并且客户端配置为使用客户端配置文件连接到它。
Pritunl VPN 可以作为单个服务器或多个服务器运行以实现高可用性和冗余系统以实现自动故障转移。此部署中的所有服务器都是相等的,没有主服务器,并且也可以在其他实例发生故障时独立运行。
下图表示一个简单的 Pritunl 架构
1.3 背景
服务端选择:pritunl (Linux)
客户端选择:openvpn (Windows)
openvpn的服务端限制为两个免费连接,而且下载有点麻烦。而pritunl 作为开源软件提供了与 OpenVPN 或 Wireguard 连接的选项,是一个很好的替代工具。
2 安装
2.1 安装Pritunl
1、Ubuntu apt安装
# 1、添加 Pritunl 和 MongoDB 存储库和公钥
## 现在在 Ubuntu 22.04 上添加 Pritunl 存储库。
sudo tee /etc/apt/sources.list.d/pritunl.list << EOF
deb https://repo.pritunl.com/stable/apt jammy main
EOF
## 为存储库添加 GPG 密钥:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com --recv 7568D9BB55FF9E5287D586017AE645C0CF8E292A
## 在 Ubuntu 22.04 上添加 MongoDB 存储库。
curl -fsSL https://www.mongodb.org/static/pgp/server-6.0.asc|sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/mongodb-6.gpg
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
# 2、安装 Pritunl 和 MongoDB
## 使用上面添加的存储库,我们可以轻松地在 Ubuntu 22.04 上安装 Pritunl 和 MongoDB。实现此目的的命令如下所示:
sudo apt update && sudo apt install pritunl mongodb-org
安装完成后,启动并启用 Pritunl 和 MongoDB 服务:
sudo systemctl restart pritunl mongod
sudo systemctl enable pritunl mongod
# 获取密码,把密码填入上述图片中
sudo pritunl setup-key
# 更新之后出现如下界面:
# 使用如下命令生成用户名密码
sudo pritunl default-password
[local][2024-08-27 16:00:24,966][INFO] Getting default administrator password
Administrator default password:
username: "pritunl"
password: "XhZZtgt9Rzzs"
2、Docker安装
需要保证已经安装好 docker 和 docker-compose
# 1、为安装创建 docker-compose 文件。
cat > docker-compose.yml << EOF
version: '3'
services:
mongo:
image: mongo:latest
container_name: pritunldb
hostname: pritunldb
volumes:
- /usr/local/pritunl/db:/data/db
ports:
- 27017:27017
pritunl:
image: goofball222/pritunl:latest
container_name: pritunl
hostname: pritunl
depends_on:
- mongo
privileged: true
sysctls:
- net.ipv6.conf.all.disable_ipv6=0
links:
- mongo
volumes:
- /etc/localtime:/etc/localtime:ro
ports:
- 80:80
- 443:443
- 1194:1194
- 1194:1194/udp
- 1195:1195/udp
environment:
- TZ=EAT
EOF
mkdir -p /usr/local/pritunl/db
docker-compose up -d
docker-compose ps
# 2、管理 Pritunl 和 MongoDB 容器
为了让上述容器在系统启动时自动启动,我们需要创建一个 systemd 服务文件。
sudo vim /etc/systemd/system/pritunl_container.service
[Unit]
Description=Pritunl and MongoDB
Requires=docker.service
After=docker.service
[Service]
Type=oneshot
ExecStart=/usr/local/bin/docker-compose -f /usr/local/pritunl/docker-compose.yml up -d
ExecStop=/usr/local/bin/docker-compose -f /usr/local/pritunl/docker-compose.yml stop
StandardOutput=syslog
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
# 3、重新加载系统守护程序。
sudo systemctl daemon-reload
# 启动并使服务能够在启动时自动运行。
sudo systemctl start pritunl_container
sudo systemctl enable pritunl_container
# 4、登录
# 获取密码
docker exec pritunl pritunl default-password
[local][2024-08-27 06:05:24,685][INFO] Getting default administrator password
Administrator default password:
username: "pritunl"
password: "QFQhI7Xou9NC"
3 使用
3.1 添加server
移除路由:0.0.0.0/0 是为了防止该vpn劫持所有网络。如果需要劫持所有流量,那就不要删除
3.2 添加路由
3.3 添加user
需要先添加 Organization
如果在添加路由时选了:Enable Google Authenticator ,在添加用户时需要填 Pin, 可以认为是用户的密码
3.4 在server中添加organization
相当于把 server 和用户绑定
记得一定要打开server
3.5 使用
1、下载 user文件
2、安装openvpn
下载后直接安装即可
3、部署vpn配置文件
上面下载user文件后就是需要的vpn配置文件
双击配置文件,并点击确认
发起连接并连接成功