服务器配置 (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 |
日志文件路径(可选) |