客户端配置参考¶
client.toml 中所有字段的完整参考。
顶级字段¶
| 字段 | 类型 | 默认值 | 描述 |
|---|---|---|---|
server_address |
string | "wss://localhost:443/api/v1/ws" |
服务器的完整 WebSocket URL。必须包含协议(wss://)、主机名、端口和路径。 |
sni_hostname |
string | (来自 URL) | 覆盖握手期间发送的 TLS SNI 主机名。在通过 IP 地址或 CDN 连接时有用。 |
identity_key_file |
path | "identity.key" |
客户端身份密钥的路径。使用 rvpn keygen 生成。 |
prekey_bundle |
path | (无) | 服务器 prekey-bundle.json 的路径。首次设置时必需。 |
server_public_key |
string | (无) | 十六进制编码的服务器公钥。当您只有原始密钥时,作为 prekey_bundle 的替代方案。 |
tls_fingerprint |
string | "chrome" |
使用的 TLS ClientHello 指纹。选项:"chrome"、"firefox"、"safari"、"ios"、"android"、"edge"、"none"。使用 "chrome" 以获得最佳 DPI 抗性。 |
data_dir |
path | (平台默认) | 运行时数据(已知主机、统计信息)的目录。Linux 默认为 ~/.local/share/rvpn/,macOS 默认为 ~/Library/Application Support/rvpn/。 |
[socks5]¶
SOCKS5 代理设置。这些仅在 SOCKS5 模式下运行时适用(默认模式)。
| 字段 | 类型 | 默认值 | 描述 |
|---|---|---|---|
listen_address |
string | "127.0.0.1:1080" |
接受 SOCKS5 连接的地址和端口。使用 "0.0.0.0:1080" 与网络上的其他设备共享代理。 |
udp_associate |
bool | true |
启用 SOCKS5 UDP ASSOCIATE 命令(用于基于 UDP 的应用)。 |
auth_enabled |
bool | false |
要求 SOCKS5 客户端使用用户名/密码身份验证。 |
auth_username |
string | (无) | 当 auth_enabled = true 时的用户名。 |
auth_password |
string | (无) | 当 auth_enabled = true 时的密码。 |
[socks5]
listen_address = "127.0.0.1:1080"
auth_enabled = true
auth_username = "alice"
auth_password = "hunter2"
[dns_proxy]¶
通过加密隧道路由 DNS 查询,以防止 SOCKS5 模式下的 DNS 泄漏。默认禁用。
启用后,客户端在 listen_address 上监听 UDP DNS 查询,并使用与常规流量相同的 X3DH + Double Ratchet 加密将它们转发到服务器的 /dns WebSocket 端点。分流隧道规则会被遵守:被绕过的域名在本地解析,被拦截的广告/追踪器域名立即返回 NXDOMAIN。
| 字段 | 类型 | 默认值 | 描述 |
|---|---|---|---|
enabled |
bool | false |
启动本地 DNS 代理以及 SOCKS5 代理。 |
listen_address |
string | "127.0.0.1:5353" |
DNS 代理的 UDP 地址和端口。使用端口 53 以获得系统级兼容性(需要 root 或 CAP_NET_BIND_SERVICE)。 |
请参阅 DNS 代理设置 获取将系统 DNS 指向此地址的说明。
[tun]¶
TUN 接口设置。通过设置 enabled = true 启用 TUN 模式。客户端 IP 地址、网关 IP 和 DNS 服务器由服务器通过 VirtualIp 消息动态分配——请勿手动设置。
| 字段 | 类型 | 默认值 | 描述 |
|---|---|---|---|
enabled |
bool | false |
启用全隧道(TUN)模式。所有 IP 流量通过 VPN 路由。 |
interface_name |
string | (自动) | TUN 接口名称。在 macOS 上操作系统分配类似 utunN 的名称。在 Linux 上默认为 rvpn0。可选——省略则使用操作系统分配的名称。 |
routes |
list | ["0.0.0.0/0"] |
通过隧道发送的路由。默认路由所有流量。指定单个 CIDR 以进行分流路由。 |
mtu |
integer | 1420 |
TUN 接口的 MTU。较低的值可减少高延迟链路上的分片。 |
[split_tunnel]¶
控制哪些流量绕过 VPN,哪些被强制通过。
| 字段 | 类型 | 默认值 | 描述 |
|---|---|---|---|
enabled |
bool | false |
启用分流隧道。其他分流隧道设置必须 enabled = true 才能生效。 |
builtin_bypass_countries |
list | ["CN"] |
其 IP 范围自动绕过的国家代码。使用 APNIC 数据。支持:"CN"、"HK"、"TW"、"RU" 等。设置为 [] 以禁用。 |
bypass_networks_file |
path | (无) | CIDR 网络文件路径(每行一个),直接连接,绕过 VPN。 |
bypass_domains_file |
path | (无) | 域名文件路径(每行一个),直接连接。 |
tunnel_networks_file |
path | (无) | 强制通过 VPN 的 CIDR 网络文件路径(覆盖绕过规则)。 |
tunnel_domains_file |
path | (无) | 强制通过 VPN 的域名文件路径。 |
bypass_networks |
list | [] |
内联 CIDR 网络列表以绕过。与 bypass_networks_file 相同,但直接在配置中定义。 |
auto_reload_interval |
integer | 86400 |
重新加载绕过/隧道文件的频率(秒)。设置为 0 以禁用自动重新加载。 |
block_ads |
bool | false |
在 DNS 层面拦截已知广告和追踪器域名。不向被拦截的域名发送任何字节。 |
ad_block_file |
path | (无) | 自定义广告拦截列表路径(每行一个域名)。当 block_ads = true 时与内置列表一起使用。 |
[split_tunnel]
enabled = true
builtin_bypass_countries = ["CN"]
block_ads = true
bypass_networks_file = "~/.config/rvpn/bypass-networks.txt"
[network]¶
客户端网络行为。
| 字段 | 类型 | 默认值 | 描述 |
|---|---|---|---|
ipv6_enabled |
bool | true |
启用通过代理的 IPv6 连接。 |
prefer_ipv4 |
bool | true |
当 IPv4 和 IPv6 都可用时,优先使用 IPv4。在大多数网络上减少延迟。 |
dns_cache_enabled |
bool | true |
缓存 DNS 响应以减少重复查询。 |
dns_cache_ttl |
integer | 300 |
DNS 条目缓存的时间(秒)。 |
dns_cache_size |
integer | 1000 |
DNS 缓存中的最大条目数。 |
dns_servers |
list | [] |
覆盖系统 DNS 服务器。留空以使用系统默认值。 |
[server_identity]¶
通过验证服务器的 X3DH 密钥指纹来防止服务器伪装。
| 字段 | 类型 | 默认值 | 描述 |
|---|---|---|---|
fingerprint |
string | (无) | 服务器 Ed25519 身份密钥的预期十六进制指纹。如果设置,客户端将拒绝服务器密钥不匹配的连接。 |
trust_on_first_use |
bool | true |
在首次连接时接受任何服务器身份,并为其固定以便将来验证(SSH 风格的 TOFU)。 |
known_hosts_file |
path | "known_hosts.json" |
存储固定服务器身份的位置。 |
strict |
bool | true |
如果为 true,在指纹不匹配时中止连接。如果为 false,仅记录警告。 |
[performance]¶
高吞吐量或资源受限环境的调优。
| 字段 | 类型 | 默认值 | 描述 |
|---|---|---|---|
worker_threads |
integer | 4 |
异步工作线程数。在高核心服务器上增加。 |
recv_buffer_size |
integer | 262144 |
TCP 接收缓冲区大小(字节)(256 KB)。 |
send_buffer_size |
integer | 262144 |
TCP 发送缓冲区大小(字节)(256 KB)。 |
crypto_worker_count |
integer | 4 |
专用于加密/解密的线程数。在重并发负载下提高吞吐量。 |
完整示例¶
server_address = "wss://your.server.com/api/v1/ws"
identity_key_file = "~/.config/rvpn/identity.key"
prekey_bundle = "~/.config/rvpn/prekey-bundle.json"
tls_fingerprint = "chrome"
[socks5]
listen_address = "127.0.0.1:1080"
[tun]
enabled = true
mtu = 1420
routes = ["0.0.0.0/0"]
[dns_proxy]
enabled = true
listen_address = "127.0.0.1:53"
[split_tunnel]
enabled = true
builtin_bypass_countries = ["CN"]
block_ads = true
[network]
prefer_ipv4 = true
dns_cache_enabled = true
[server_identity]
trust_on_first_use = true
strict = true