跳转至

服务器配置 (Server Configuration - Chinese)

R-VPN 服务器配置选项的完整参考。

配置文件

默认位置:/etc/rvpn/server.toml 或通过 -c 标志指定。

主配置部分

[server]
# 网络绑定地址
bind_address = "0.0.0.0:443"

# TLS 配置
tls_cert_file = "certs/cert.pem"
tls_key_file = "certs/key.pem"

# 身份密钥
identity_key_file = "server_identity.key"

# X3DH 预密钥轮换周期(小时)
prekey_rotation_hours = 168    # 每周

# 一次性预密钥数量
one_time_prekey_count = 100

# WebSocket 路径
websocket_path = "/connect"

# HTTP 端口,用于 ACME 挑战(Let's Encrypt)
http_port = 80

# 将 HTTP 重定向到 HTTPS
redirect_http_to_https = true

# 伪装网站根目录(可选)
decoy_root = "/var/www/html"

# 预密钥包文件(可选)
prekey_bundle_file = "prekey-bundle.json"

HTTP 服务器

服务器内置 HTTP 服务器用于 ACME 挑战和提供伪装网站服务:

[server]
# HTTP 服务器端口(用于 ACME 和伪装网站)
# 设置为 null 可禁用 HTTP 服务器
http_port = 80

# 将 HTTP 重定向到 HTTPS
redirect_http_to_https = true

# 伪装网站根目录(在 80 端口提供服务)
decoy_root = "/var/www/html"

HTTP 服务器提供以下功能: - ACME 挑战 - 自动 Let's Encrypt 证书验证 - HTTP→HTTPS 重定向 - 将所有 HTTP 流量重定向到 HTTPS - 伪装网站 - 向未认证的访问者提供静态内容

伪装网站

R-VPN 包含多个伪装网站模板,可用于使您的服务器看起来像合法网站:

模板 描述 位置
博客 旅行/生活方式博客 decoy-sites/blog/
新闻 新闻出版物 decoy-sites/news/
电商 家居用品商店 decoy-sites/ecommerce/
作品集 创意代理 decoy-sites/portfolio/
文档 API 文档 decoy-sites/docs/

使用伪装网站的步骤: 1. 将所需模板复制到您的网站根目录 2. 在服务器配置中设置 decoy_root 3. 伪装网站将在 80 端口向未认证的访问者提供服务

速率限制

[server.rate_limit]
# 每个 IP 的最大连接数
max_connections_per_ip = 5

# 每个 IP 每分钟的最大握手次数
max_handshakes_per_minute = 10

网络配置

[server.network]
# 启用 NAT
nat_enabled = true

# 客户端 DHCP 地址范围
dhcp_range = "10.200.0.0/24"

# 客户端 DNS 服务器
dns_servers = ["1.1.1.1"]

日志配置

[server.logging]
# 日志级别:error, warn, info, debug, trace
level = "info"

# 日志文件(可选)
file = "/var/log/rvpn/server.log"

完整示例

[server]
bind_address = "0.0.0.0:443"
tls_cert_file = "/etc/rvpn/cert.pem"
tls_key_file = "/etc/rvpn/key.pem"
identity_key_file = "/etc/rvpn/server_identity.key"
prekey_rotation_hours = 168
one_time_prekey_count = 100
websocket_path = "/connect"
decoy_root = "/var/www/html"
http_port = 80
redirect_http_to_https = true

[server.rate_limit]
max_connections_per_ip = 5
max_handshakes_per_minute = 10

[server.network]
nat_enabled = true
dhcp_range = "10.200.0.0/24"
dns_servers = ["1.1.1.1"]

[server.logging]
level = "info"
file = "/var/log/rvpn/server.log"

命令行选项

# 使用自定义配置启动
rvpn-server -c /etc/rvpn/server.toml

# 自定义绑定地址
rvpn-server -b 0.0.0.0:8443

# 详细日志
rvpn-server -v
rvpn-server -vv

# 生成密钥
rvpn-server keygen

环境变量

变量 描述
RVPN_CONFIG 配置文件路径
RVPN_BIND 绑定地址覆盖
RVPN_LOG_LEVEL 日志级别

配置选项参考

选项 类型 默认值 描述
bind_address 字符串 0.0.0.0:443 绑定地址
tls_cert_file 路径 certs/cert.pem TLS 证书文件
tls_key_file 路径 certs/key.pem TLS 私钥文件
identity_key_file 路径 server_identity.key 服务器身份密钥文件
prekey_bundle_file 路径 null 预密钥包文件(可选)
prekey_rotation_hours u32 168 预密钥轮换间隔(小时)
one_time_prekey_count u32 100 一次性预密钥池大小
websocket_path 字符串 /connect WebSocket 端点路径
decoy_root 路径 null 伪装网站根目录(可选)
http_port u16 null ACME 和重定向的 HTTP 端口(可选)
redirect_http_to_https 布尔值 true 将 HTTP 重定向到 HTTPS

速率限制选项

选项 类型 默认值 描述
rate_limit.max_connections_per_ip u32 5 每个 IP 地址的最大连接数
rate_limit.max_handshakes_per_minute u32 10 每个 IP 每分钟的最大握手次数

网络选项

选项 类型 默认值 描述
network.nat_enabled 布尔值 true 为客户端流量启用 NAT
network.dhcp_range 字符串 10.200.0.0/24 VPN 客户端的 DHCP IP 范围
network.dns_servers 数组 ["1.1.1.1"] VPN 客户端的 DNS 服务器

日志选项

选项 类型 默认值 描述
logging.level 字符串 info 日志级别(error, warn, info, debug, trace)
logging.file 路径 null 日志文件路径(可选)

下一步

  • 安装 - 初始服务器安装
  • 部署 - 生产环境部署