单机部署需先安装并启动 MongoDB,否则服务无法运行;源码安装需手动设置 VERSION 环境变量为具体版本号,脚本中为占位符 X.XX.XXXX.XX;需自行编译安装 Python 3.12.15 与 Go 1.27.2,并额外 go install pritunl-web 和 pritunl-dns 两个组件。

sudo dnf -y install mongodb-org
sudo dnf --allowerasing -y install pritunl-openvpn 硬件要求按 README 说明
README 未说明 CPU、内存或 GPU 要求;安装脚本针对 x86_64 架构(使用 go1.27.2.linux-amd64 与 -march=x86-64-v2),未提及 GPU 或显存。
基于 OpenVPN 协议的分布式企业 VPN 服务器,用于搭建集中管理的远程接入网络
基于 Python 的企业级 VPN 服务器,支持 OpenVPN 与 WireGuard 协议,提供 Web 管理界面和集中式用户认证,适合团队搭建自托管远程访问网络。
核心能力
- 基于 OpenVPN 协议提供企业级 VPN 接入
- 支持分布式多节点部署架构
- 内置 Web 管理服务 pritunl-web 与 DNS 服务 pritunl-dns
- 可选 ndppd 组件支持 IPv6 NDP 代理
- 提供 SELinux 策略模块以加固服务运行
容易踩的坑
内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README
- 1.34.4803.56pritunl v1.34.4803.56最新正式版2026-11-06 · 2026-11-06 13:28 UTC
- Fix host settings modification
- 1.34.4763.45pritunl v1.34.4763.452026-09-27 · 2026-09-27 10:50 UTC
查看更新说明
- Add OpenVPN mobile sso support
- Add local otp admin authentication
- Fix IP pool issues
- Improve routing options
- 1.34.4681.89pritunl v1.34.4681.892026-07-07 · 2026-07-07 21:30 UTC
查看更新说明
- Web interface improvements
- Update libraries
- 1.34.4649.96pritunl v1.34.4649.962026-06-05 · 2026-06-05 23:05 UTC
查看更新说明
- Fix ipaddress migration
- 1.34.4646.94pritunl v1.34.4646.942026-06-02 · 2026-06-02 22:34 UTC
查看更新说明
- Update libraries
用户点评
登录用户的真实使用记录,可按版本和硬件筛选共 0 条
还没有人点评。第一个说出真实体验的人最有价值。
pritunl: enterprise vpn server
Pritunl is a distributed enterprise vpn server built using the OpenVPN protocol. Documentation and more information can be found at the home page pritunl.com
Install From Source
# Install MongoDB if running single host configuration
sudo tee /etc/yum.repos.d/mongodb-org.repo << EOF
[mongodb-org]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/10/mongodb-org/9.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-9.asc
EOF
sudo dnf -y install mongodb-org
sudo systemctl start mongod
sudo systemctl enable mongod
# Install OpenVPN
sudo tee /etc/yum.repos.d/pritunl.repo << EOF
[pritunl]
name=Pritunl Repository
baseurl=https://repo.pritunl.com/stable/yum/almalinux/10/
gpgcheck=1
enabled=1
gpgkey=https://raw.githubusercontent.com/pritunl/pgp/master/pritunl_repo_pub.asc
EOF
sudo dnf --allowerasing -y install pritunl-openvpn
# [Optional] Install ndppd for IPv6 NDP proxying
sudo dnf -y install pritunl-ndppd
# Set current pritunl version X.XX.XXXX.XX
export VERSION="X.XX.XXXX.XX"
sudo dnf -y install gcc git-core wget rsync openssl-devel bzip2-devel libffi-devel sqlite-devel xz-devel zlib-devel selinux-policy selinux-policy-devel policycoreutils-python-utils python3 net-tools openssl iptables ipset ca-certificates psmisc
wget https://www.python.org/ftp/python/3.12.15/Python-3.12.15.tgz
echo "de1a241a519e0a3374fea98988d0b52c886743f9d953f23be8269cc7b59c5fab Python-3.12.15.tgz" | sha256sum -c - && tar xf Python-3.12.15.tgz
rm Python-3.12.15.tgz
cd "./Python-3.12.15"
gcc_major=$(gcc -dumpversion | cut -d. -f1)
base_cflags="-fstack-protector-strong -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -Werror=format-security -mtune=generic -grecord-gcc-switches"
if [ "$gcc_major" -ge 7 ]; then
gcc7_flags="-fno-semantic-interposition"
cflags="$base_cflags $gcc7_flags"
ldflags="-fno-semantic-interposition"
else
cflags="$base_cflags"
ldflags=""
fi
if [ "$gcc_major" -ge 8 ]; then
gcc8_flags="-fstack-clash-protection -fcf-protection"
cflags="$cflags $gcc8_flags"
fi
if [ "$gcc_major" -ge 11 ]; then
arch_flags="-march=x86-64-v2"
cflags="$cflags $arch_flags"
fi
export CFLAGS_NODIST="$cflags"
export LDFLAGS_NODIST="$ldflags"
sudo rm -rf /usr/lib/pritunl
sudo mkdir /usr/lib/pritunl
./configure --prefix=/usr/lib/pritunl/usr --libdir=/usr/lib/pritunl/usr/lib --enable-optimizations --enable-ipv6 --enable-loadable-sqlite-extensions --disable-shared --with-lto --with-computed-gotos=yes --with-platlibdir=lib
sudo make ENSUREPIP=no install
sudo /usr/lib/pritunl/usr/bin/python3 -m ensurepip
cd ../
sudo rm -rf ./Python-3.12.15
sudo rm -rf /usr/local/go
wget https://go.dev/dl/go1.27.2.linux-amd64.tar.gz
echo "ecbadb99091a3f46e31f5f934b068b1864eafa7995211b39eaddf76996045fe5 go1.27.2.linux-amd64.tar.gz" | sha256sum -c - && sudo tar -C /usr/local -xf go1.27.2.linux-amd64.tar.gz
rm -f go1.27.2.linux-amd64.tar.gz
tee -a ~/.bashrc << 'EOF'
export GOPATH=$HOME/go
export GOROOT=/usr/local/go
export PATH=/usr/local/go/bin:$PATH
EOF
source ~/.bashrc
sudo systemctl stop pritunl || true
sudo mkdir -p /var/lib/pritunl
go install -v github.com/pritunl/pritunl-web@latest
go install -v github.com/pritunl/pritunl-dns@latest
sudo rm -f /usr/bin/pritunl-dns
sudo rm -f /usr/bin/pritunl-web
sudo cp -f ~/go/bin/pritunl-dns /usr/bin/pritunl-dns
sudo cp -f ~/go/bin/pritunl-web /usr/bin/pritunl-web
wget https://github.com/pritunl/pritunl/archive/refs/tags/$VERSION.tar.gz
tar xf $VERSION.tar.gz
rm $VERSION.tar.gz
cd ./pritunl-$VERSION
sudo /usr/lib/pritunl/usr/bin/pip3 install --require-hashes -r requirements-build.txt
sudo /usr/lib/pritunl/usr/bin/pip3 install --require-hashes -r requirements.txt
/usr/lib/pritunl/usr/bin/python3 setup.py build
sudo /usr/lib/pritunl/usr/bin/python3 setup.py install
sudo ln -sf /usr/lib/pritunl/usr/bin/pritunl /usr/bin/pritunl
sudo groupadd -r pritunl-web || true
sudo useradd -r -g pritunl-web -s /sbin/nologin -c 'Pritunl web server' pritunl-web || true
# [Optional] SELinux profile
cd selinux9
ln -s /usr/share/selinux/devel/Makefile
make
sudo make load
sudo cp pritunl.pp /usr/share/selinux/packages/pritunl.pp
sudo cp pritunl_dns.pp /usr/share/selinux/packages/pritunl_dns.pp
sudo cp pritunl_web.pp /usr/share/selinux/packages/pritunl_web.pp
sudo semodule -i /usr/share/selinux/packages/pritunl.pp /usr/share/selinux/packages/pritunl_dns.pp /usr/share/selinux/packages/pritunl_web.pp
sudo restorecon -v -R /tmp/pritunl* || true
sudo restorecon -v -R /run/pritunl* || true
sudo restorecon -v /etc/systemd/system/pritunl.service || true
sudo restorecon -v /usr/lib/systemd/system/pritunl.service || true
sudo restorecon -v /etc/systemd/system/pritunl-web.service || true
sudo restorecon -v /usr/lib/systemd/system/pritunl-web.service || true
sudo restorecon -v /usr/lib/pritunl/bin/pritunl || true
sudo restorecon -v /usr/lib/pritunl/bin/python || true
sudo restorecon -v /usr/lib/pritunl/bin/python3 || true
sudo restorecon -v /usr/lib/pritunl/bin/python3.6 || true
sudo restorecon -v /usr/lib/pritunl/bin/python3.9 || true
sudo restorecon -v /usr/lib/pritunl/usr/bin/pritunl || true
sudo restorecon -v /usr/lib/pritunl/usr/bin/python || true
sudo restorecon -v /usr/lib/pritunl/usr/bin/python3 || true
sudo restorecon -v /usr/lib/pritunl/usr/bin/python3.6 || true
sudo restorecon -v /usr/lib/pritunl/usr/bin/python3.9 || true
sudo restorecon -v /usr/bin/pritunl-web || true
sudo restorecon -v /usr/bin/pritunl-dns || true
sudo restorecon -v -R /var/lib/pritunl || true
sudo restorecon -v /var/log/pritunl* || true
cd ../../
sudo rm -rf ./pritunl-$VERSION
sudo systemctl daemon-reload
sudo systemctl start pritunl
sudo systemctl enable pritunl
License
Please refer to the LICENSE file for a copy of the license.
