跳转至

服务器快速入门

在 Linux、macOS 或 FreeBSD 上不到 10 分钟即可启动服务器。


前置要求

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

1. 安装

通用安装脚本可以处理一切:

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

该脚本会自动检测您的平台,下载正确的二进制文件,验证校验和,并引导您完成服务器配置。

或者手动安装:

Linux x86_64(大多数 VPS):

curl -LO https://assets.rvpn.org/1.0.2/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.0.2/rvpn-server-aarch64-linux-gnu
chmod +x rvpn-server-aarch64-linux-gnu
sudo mv rvpn-server-aarch64-linux-gnu /usr/local/bin/rvpn-server

macOS:

curl -LO https://assets.rvpn.org/1.0.2/rvpn-server-macos-universal
chmod +x rvpn-server-macos-universal
sudo mv rvpn-server-macos-universal /usr/local/bin/rvpn-server
xattr -d com.apple.quarantine /usr/local/bin/rvpn-server

FreeBSD x86_64:

fetch https://assets.rvpn.org/1.0.2/rvpn-server-x86_64-freebsd
chmod +x rvpn-server-x86_64-freebsd
sudo mv rvpn-server-x86_64-freebsd /usr/local/bin/rvpn-server

请参阅服务器安装获取所有可用的二进制文件和校验和验证。

验证它是否工作:

rvpn-server --help


2. 创建工作目录

sudo mkdir -p /etc/rvpn
cd /etc/rvpn

3. 生成服务器密钥

sudo rvpn-server keygen
sudo rvpn-server prekey-bundle

这会创建三个文件:

文件 用途
server_identity.key 服务器的长期 Ed25519 身份密钥——保持私密
prekey-bundle.json 公共预密钥包——分发给客户端
prekey-bundle.private.json 私有预密钥材料——保持私密

**重要:**保持 server_identity.keyprekey-bundle.private.json 安全。备份它们。如果丢失,客户端将需要新的预密钥包。


4. 获取 TLS 证书

R-VPN 需要有效的 TLS 证书用于客户端连接的域名。

使用 Let's Encrypt(certbot):

sudo apt install certbot
sudo certbot certonly --standalone -d your-domain.com

您的证书文件将在: - /etc/letsencrypt/live/your-domain.com/fullchain.pem - /etc/letsencrypt/live/your-domain.com/privkey.pem


5. 创建服务器配置

sudo nano /etc/rvpn/server.toml

粘贴以下内容,更新为您的设置:

[server]
bind_address = "0.0.0.0:443"
tls_cert_file = "/etc/letsencrypt/live/your-domain.com/fullchain.pem"
tls_key_file  = "/etc/letsencrypt/live/your-domain.com/privkey.pem"
identity_key_file = "/etc/rvpn/server_identity.key"
websocket_path = "/api/v1/ws"

6. 启用 IP 转发

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

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

7. 启动服务器

首先手动测试:

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

您应该看到类似输出:

INFO  rvpn_server: Listening on 0.0.0.0:443
INFO  rvpn_server: WebSocket path: /api/v1/ws

确认工作正常后,将其设置为 systemd 服务以在启动时运行。


8. 分发预密钥包

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


后续步骤