跳转到内容

服务器快速开始

10 分钟内启动服务器。


  • 一台具有公网 IP 地址的机器(Linux、macOS 或 FreeBSD)
  • 防火墙/安全组中开放端口 443
  • Root 或 sudo 权限

通用安装脚本会处理所有步骤:

Terminal window
curl -fsSL https://assets.rvpn.org/install.sh | sudo bash -s -- --setup --server

它会自动检测你的平台,下载正确的二进制文件,验证校验和,并引导你完成服务器配置(密钥、TLS、TUN 模式等)。

或者手动安装:

Terminal window
# Linux x86_64 (most VPS)
curl -LO https://assets.rvpn.org/1.3.1/rvpn-server-x86_64-linux-gnu
chmod +x rvpn-server-x86_64-linux-gnu
sudo mv rvpn-server-x86_64-linux-gnu /usr/local/bin/rvpn-server
# Linux ARM64
curl -LO https://assets.rvpn.org/1.3.1/rvpn-server-aarch64-linux-gnu
chmod +x rvpn-server-aarch64-linux-gnu
sudo mv rvpn-server-aarch64-linux-gnu /usr/local/bin/rvpn-server
# FreeBSD
fetch https://assets.rvpn.org/1.3.1/rvpn-server-x86_64-freebsd
chmod +x rvpn-server-x86_64-freebsd
sudo mv rvpn-server-x86_64-freebsd /usr/local/bin/rvpn-server

查看 服务器安装 了解所有可用的二进制文件以及校验和验证方法。

验证是否正常工作:

Terminal window
rvpn-server --help

两个命令都会写入 server.toml 中配置的路径。先创建一份最小配置将它们指向 /etc/rvpn/,然后运行:

Terminal window
sudo mkdir -p /etc/rvpn
sudo 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 keygen
sudo 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.keyprekey-bundle.private.json。请备份它们。一旦丢失,客户端将需要新的预共享密钥包。


rvpn-server 可以使用 TLS-ALPN-01 挑战自行获取并续订 Let’s Encrypt 证书。同一个 :443 监听器,不需要 :80 端口,不需要 certbot,不需要外部定时器 — 整个状态机运行在 rvpn-server 进程内。

/etc/rvpn/server.toml 末尾追加:

[server.acme]
enabled = true
domains = ["your-domain.com"]
contacts = ["mailto:[email protected]"]
cache_dir = "/var/lib/rvpn/acme"

然后创建缓存目录(必须能跨重启保留,否则每次重启都会耗掉 Let’s Encrypt 的速率限制):

Terminal window
sudo mkdir -p /var/lib/rvpn/acme
sudo chmod 700 /var/lib/rvpn/acme

前置条件 — 启用前请确认:

  1. your-domain.com 必须解析(A/AAAA)到本服务器的公网 IP。
  2. 入站 TCP :443 必须能被 Let’s Encrypt 的验证器访问。
  3. 不能有其他服务绑定 :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 和静态证书互斥;两者同时设置服务器会拒绝启动。


rVPN 需要 IP 转发才能代表客户端路由流量:

Terminal window
echo "net.ipv4.ip_forward = 1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

Terminal window
sudo rvpn-server -c /etc/rvpn/server.toml

你应当看到类似输出:

INFO Starting rVPN Server on 0.0.0.0:443
INFO Server listening on wss://0.0.0.0:443
INFO WebSocket endpoint: /api/v1/ws
INFO WebSocket endpoint (desktop SOCKS): /api/v1/ws
INFO WebSocket endpoint (mobile TUN): /api/v1/ws/tun
INFO WebSocket endpoint (DNS proxy): /api/v1/ws/dns
INFO WebSocket endpoint (SOCKS5 mux): /api/v1/ws/mux

确认可用之后,将其配置为 systemd 服务 以便开机启动。


客户端需要 prekey-bundle.json 才能连接。请通过安全渠道(加密邮件、安全通讯软件等)发送给用户——此文件是公开的,不必保密,但必须是来自你服务器的真实文件。