VPN已经成为企业和开发者的刚需,但生成证书、更改配置、配置下发这些高频操作,全靠命令行手搓,效率低还容易出错。更麻烦的是,OpenVPN和WireGuard各有千秋——前者成熟稳定但配置繁琐,后者性能强劲却缺少管理界面,选哪个都纠结。

Pritunl 就是来终结这种痛苦的。它是一款开源的企业级VPN管理平台,提供直观的图形化Web界面,将服务端配置、用户管理、证书吊销、配置下发等操作全部简化到“点点鼠标”就能完成。最香的是,它同时支持OpenVPN和WireGuard两种协议——追求稳定选OpenVPN,追求速度选WireGuard,一套系统两种体验,小孩子才做选择,成年人全都要。

Docker Compose 极简部署

新建项目目录,写入以下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
services:
pritunl:
image: ghcr.io/jippi/docker-pritunl:latest
container_name: pritunl-server
privileged: true
ports:
- "443:443"
- "1194:1194/udp"
environment:
- TZ=Asia/Shanghai
volumes:
- ./data/pritunl:/var/lib/pritunl # 持久化 pritunl 数据
- ./data/mongodb:/var/lib/mongodb # 持久化内置 MongoDB 数据
- ./data/pritunl.conf:/etc/pritunl.conf # 确保宿主文件存在
restart: unless-stopped
Warning

Pritunl的运行强制依赖MongoDB数据库。jippi 的镜像内置了MongoDB,因此文章中的部署可以工作,但更标准、更健壮的生产环境部署方式是使用独立的MongoDB

启动容器

1
docker-compose up -d

🔥 进阶技巧:改用443端口绕过防火墙限制

很多网络环境下默认封禁UDP 1194端口,导致连接失败。Pritunl支持修改端口,改用443端口可大幅提高连接成功率。

需要同步修改docker-compose.yml中的端口映射。

初始化与首次登录

获取Setup Key

容器启动后,执行以下命令获取初始化密钥:

1
docker exec pritunl-server pritunl setup-key

访问Web界面

浏览器打开 https://你的服务器IP:9443,粘贴Setup Key完成初始化。

获取默认管理员密码

1
docker exec pritunl-server pritunl default-password

登录后请立即修改密码!

Web后台配置VPN服务

1. 创建组织(Organization)

点击 Users → Add Organization,例如 Dev_Team

2. 添加用户(User)

在组织右侧点击 Add User,填写用户名(如 zhangsan),可选设置PIN码。

3. 创建服务器(Server)

点击 Servers → Add Server

  • Name:如 Office-VPN
  • Protocol:选择OpenVPN或WireGuard
  • Port:建议改为443(避开防火墙限制)
  • Virtual Network:默认 10.1.0.0/24 即可

协议怎么选? 追求极致速度和低延迟选WireGuard;需要TCP模式穿透严苛防火墙选OpenVPN。你也可以同时创建两个Server,让用户按需切换。

关联并启动

在Server卡片上点击 Attach Organization,选择你的组织,然后点击 Start Server,状态变绿即成功。

客户端连接

Pritunl 提供跨平台客户端,下载地址:client.pritunl.com,支持 Windows、macOS、Linux、iOS、Android。

在Web后台点击用户 → Download Profile,下载对应协议的配置文件(OpenVPN为.ovpn,WireGuard为.conf),导入客户端即可连接。

避坑指南 💡

坑1:默认路由导致全局代理

Pritunl添加Server后默认带有一条 0.0.0.0/0 路由,若不删除,客户端所有流量都将经过VPN,可能造成不必要的带宽消耗。
✅ 在Server配置中删除默认路由,按需添加需要访问的内网网段即可。

坑2:UDP 1194端口易被封

很多网络环境封禁UDP 1194,建议改用443端口。
✅ 修改端口映射为 "443:443/udp",同时在Web后台将Server端口设为443。

坑3:客户端时间不同步

OpenVPN证书有效期校验依赖系统时间,若客户端时间与服务器偏差过大,连接会失败。
✅ 同步客户端时间:Linux执行 ntpdate pool.ntp.org,Windows在设置中同步。

证书管理

Pritunl的Web界面可以直接查看和管理所有用户证书,无需命令行操作。在 Users 页面,每个用户状态一目了然,点击 Revoke 即可一键吊销,立即生效。

Pritunl支持一键导出所有配置和数据库的加密备份,建议定期备份。

写在最后

从手写OpenVPN配置文件到Web可视化操作,从单一协议到OpenVPN与WireGuard双剑合璧,Pritunl让VPN运维从“高门槛”变成“零门槛”。配合Docker,5分钟内即可部署一套企业级远程办公环境。