服务器快速开始
10 分钟内启动服务器。
- 一台具有公网 IP 地址的机器(Linux、macOS 或 FreeBSD)
- 防火墙/安全组中开放端口 443
- Root 或 sudo 权限
通用安装脚本会处理所有步骤:
curl -fsSL https://assets.rvpn.org/install.sh | sudo bash -s -- --setup --server它会自动检测你的平台,下载正确的二进制文件,验证校验和,并引导你完成服务器配置(密钥、TLS、TUN 模式等)。
或者手动安装:
# Linux x86_64 (most VPS)curl -LO https://assets.rvpn.org/1.3.1/rvpn-server-x86_64-linux-gnuchmod +x rvpn-server-x86_64-linux-gnusudo mv rvpn-server-x86_64-linux-gnu /usr/local/bin/rvpn-server
# Linux ARM64curl -LO https://assets.rvpn.org/1.3.1/rvpn-server-aarch64-linux-gnuchmod +x rvpn-server-aarch64-linux-gnusudo mv rvpn-server-aarch64-linux-gnu /usr/local/bin/rvpn-server
# FreeBSDfetch 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-server查看 服务器安装 了解所有可用的二进制文件以及校验和验证方法。
验证是否正常工作:
rvpn-server --help2. 生成服务器密钥
Section titled “2. 生成服务器密钥”两个命令都会写入 server.toml 中配置的路径。先创建一份最小配置将它们指向 /etc/rvpn/,然后运行:
sudo mkdir -p /etc/rvpnsudo tee /etc/rvpn/server.toml <<'EOF' >/dev/null[server]identity_key_file = "/etc/rvpn/server_identity.key"prekey_bundle_file = "/etc/rvpn/prekey-bundle.json"EOF
sudo rvpn-server -c /etc/rvpn/server.toml keygensudo rvpn-server -c /etc/rvpn/server.toml prekey-bundle这会在 /etc/rvpn/ 下创建三个文件:
| 文件 | 用途 |
|---|---|
server_identity.key | 服务器的长期 Ed25519 身份密钥——需保密 |
prekey-bundle.json | 公共预共享密钥包——分发给客户端 |
prekey-bundle.private.json | 私有预共享密钥材料——需保密 |
不带 -c 参数时两个命令都会写入当前工作目录(server_identity.key / prekey-bundle.json),测试时无妨,但容易被遗忘。
重要: 妥善保管
server_identity.key和prekey-bundle.private.json。请备份它们。一旦丢失,客户端将需要新的预共享密钥包。
3. 启用自动 TLS
Section titled “3. 启用自动 TLS”rvpn-server 可以使用 TLS-ALPN-01 挑战自行获取并续订 Let’s Encrypt 证书。同一个 :443 监听器,不需要 :80 端口,不需要 certbot,不需要外部定时器 — 整个状态机运行在 rvpn-server 进程内。
在 /etc/rvpn/server.toml 末尾追加:
[server.acme]enabled = truedomains = ["your-domain.com"]cache_dir = "/var/lib/rvpn/acme"然后创建缓存目录(必须能跨重启保留,否则每次重启都会耗掉 Let’s Encrypt 的速率限制):
sudo mkdir -p /var/lib/rvpn/acmesudo chmod 700 /var/lib/rvpn/acme前置条件 — 启用前请确认:
your-domain.com必须解析(A/AAAA)到本服务器的公网 IP。- 入站 TCP
:443必须能被 Let’s Encrypt 的验证器访问。 - 不能有其他服务绑定
:443(挑战与正常流量共用监听器)。
首次配置? 首次启动请在 [server.acme] 里设 staging = true,先用 Let’s Encrypt 的 staging 环境跑通全流程 — staging 没有速率限制。日志出现 ACME event: CertCacheStore 后再改为 staging = false,并使用一个全新的 cache_dir 进入生产。完整流程、三个需要注意的 LE 速率限制以及续订节奏,请见 reference → [server.acme]。
想自带证书 — 比如已有 certbot 或反向代理签发的?跳过本节,按 reference → server-config 所述在 [server] 里设置 tls_cert_file / tls_key_file。ACME 和静态证书互斥;两者同时设置服务器会拒绝启动。
4. 启用 IP 转发
Section titled “4. 启用 IP 转发”rVPN 需要 IP 转发才能代表客户端路由流量:
echo "net.ipv4.ip_forward = 1" | sudo tee -a /etc/sysctl.confsudo sysctl -p5. 启动服务器
Section titled “5. 启动服务器”sudo rvpn-server -c /etc/rvpn/server.toml你应当看到类似输出:
INFO Starting rVPN Server on 0.0.0.0:443INFO Server listening on wss://0.0.0.0:443INFO WebSocket endpoint: /api/v1/wsINFO WebSocket endpoint (desktop SOCKS): /api/v1/wsINFO WebSocket endpoint (mobile TUN): /api/v1/ws/tunINFO WebSocket endpoint (DNS proxy): /api/v1/ws/dnsINFO WebSocket endpoint (SOCKS5 mux): /api/v1/ws/mux确认可用之后,将其配置为 systemd 服务 以便开机启动。
6. 分发预共享密钥包
Section titled “6. 分发预共享密钥包”客户端需要 prekey-bundle.json 才能连接。请通过安全渠道(加密邮件、安全通讯软件等)发送给用户——此文件是公开的,不必保密,但必须是来自你服务器的真实文件。
- 作为 systemd 服务运行
- 反向代理设置——Caddy、nginx、HAProxy、诱饵站点
- 服务器完整配置选项
- TUN 模式——带 NAT 的全隧道 VPN
- 使用场景 — 常见部署的实用指南
- 故障排查 — 常见问题的解决方案