Server Installation
Quick Install
Section titled “Quick Install”The universal installer handles everything:
curl -fsSL https://assets.rvpn.org/install.sh | sudo bash -s -- --setup --serverAvailable Binaries
Section titled “Available Binaries”| Binary | Platform |
|---|---|
rvpn-server-x86_64-linux-gnu | Linux x86_64 (glibc, most VPS) |
rvpn-server-aarch64-linux-gnu | Linux ARM64 (glibc) |
rvpn-server-armv7-linux | Linux ARMv7 (Raspberry Pi etc.) |
rvpn-server-x86_64-linux-static | Linux x86_64 (static/musl) |
rvpn-server-aarch64-linux-static | Linux ARM64 (static/musl) |
rvpn-server-x86_64-freebsd | FreeBSD x86_64 |
rvpn-server-macos-universal | macOS Universal (arm64 + x86_64) |
If you’re unsure which to use on Linux, start with x86_64-linux-gnu. Use the -static variant if you encounter glibc version errors.
Manual Install
Section titled “Manual Install”Linux (x86_64)
Section titled “Linux (x86_64)”curl -LO https://assets.rvpn.org/1.3.1/rvpn-server-x86_64-linux-gnucurl -LO https://assets.rvpn.org/1.3.1/rvpn-server-x86_64-linux-gnu.sha256sha256sum -c rvpn-server-x86_64-linux-gnu.sha256chmod +x rvpn-server-x86_64-linux-gnusudo mv rvpn-server-x86_64-linux-gnu /usr/local/bin/rvpn-serverFreeBSD
Section titled “FreeBSD”fetch https://assets.rvpn.org/1.3.1/rvpn-server-x86_64-freebsdchmod +x rvpn-server-x86_64-freebsdsudo mv rvpn-server-x86_64-freebsd /usr/local/bin/rvpn-servercurl -LO https://assets.rvpn.org/1.3.1/rvpn-server-macos-universalchmod +x rvpn-server-macos-universalsudo mv rvpn-server-macos-universal /usr/local/bin/rvpn-serverxattr -d com.apple.quarantine /usr/local/bin/rvpn-serverSecurity note: Official macOS binaries are signed by PDG Global Limited. If you download a binary from another source that is not signed by us, do not use it.
System Requirements
Section titled “System Requirements”Port Access
Section titled “Port Access”rVPN listens on port 443 by default:
# UFWsudo ufw allow 443/tcp
# iptablessudo iptables -A INPUT -p tcp --dport 443 -j ACCEPTIP Forwarding
Section titled “IP Forwarding”Required for TUN full-tunnel mode:
echo "net.ipv4.ip_forward = 1" | sudo tee -a /etc/sysctl.confsudo sysctl -pNAT Configuration (TUN Mode)
Section titled “NAT Configuration (TUN Mode)”For TUN mode (full-tunnel VPN), the server acts as a NAT gateway for client traffic:
Linux (iptables)
Section titled “Linux (iptables)”sudo sysctl -w net.ipv4.ip_forward=1# -s should match [server.network].dhcp_range in server.tomlsudo iptables -t nat -A POSTROUTING -s 10.200.0.0/24 -o eth0 -j MASQUERADEsudo iptables -A FORWARD -i tun0 -o eth0 -j ACCEPTsudo iptables -A FORWARD -i eth0 -o tun0 -m state --state RELATED,ESTABLISHED -j ACCEPTFreeBSD (pf)
Section titled “FreeBSD (pf)”# Enable IP forwardingsudo sysctl -w net.inet.ip.forwarding=1
# Add to /etc/pf.conf:# nat on vtnet0 from 10.200.0.0/24 to any -> (vtnet0)macOS does not support server-side NAT for VPN tunnels. For macOS servers, use SOCKS5 mode or run rvpn-server inside a Linux VM.