客户端配置 (Chinese Translation)¶
R-VPN 客户端通过 TOML 配置文件进行配置。
配置文件位置¶
默认位置(按顺序检查):
1. 通过 --config 参数指定的路径
2. 当前目录下的 client.toml
3. ~/.config/rvpn/client.toml
配置参考¶
Server 配置节¶
[server] 节用于配置与 VPN 服务器的连接。
[server]
# 服务器 WebSocket URL(默认:"wss://localhost:443/connect")
server_address = "wss://vpn.example.com/connect"
# TLS SNI 主机名,用于隐蔽连接(可选)
sni_hostname = "www.example.com"
# 身份密钥文件路径(默认:"identity.key")
identity_key_file = "identity.key"
# 服务器公钥,用于额外认证(可选)
server_public_key = "base64encodedkey..."
# 服务器预密钥包 JSON 文件路径(可选)
prekey_bundle = "prekey-bundle.json"
| 选项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
server_address |
字符串 | "wss://localhost:443/connect" |
VPN 服务器的 WebSocket URL |
sni_hostname |
字符串 | (无) | TLS SNI 主机名,用于隐蔽连接 |
identity_key_file |
字符串 | "identity.key" |
客户端身份密钥文件路径 |
server_public_key |
字符串 | (无) | 服务器公钥,用于认证 |
prekey_bundle |
字符串 | (无) | 预密钥包 JSON 文件路径 |
SOCKS5 配置节¶
[socks5] 节用于配置 SOCKS5 代理服务器。
[socks5]
# SOCKS5 代理监听地址(默认:"127.0.0.1:1080")
listen_address = "127.0.0.1:1080"
# 启用 UDP 关联支持(默认:true)
udp_associate = true
# 启用认证(默认:false)
auth_enabled = false
# 认证用户名(auth_enabled = true 时必需)
auth_username = "user"
# 认证密码(auth_enabled = true 时必需)
auth_password = "password"
| 选项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
listen_address |
字符串 | "127.0.0.1:1080" |
SOCKS5 服务器绑定地址 |
udp_associate |
布尔值 | true |
启用 UDP 关联支持 |
auth_enabled |
布尔值 | false |
需要认证 |
auth_username |
字符串 | (无) | 认证用户名 |
auth_password |
字符串 | (无) | 认证密码 |
TUN 配置节¶
[tun] 节用于配置全 VPN 模式的 TUN 设备。
[tun]
# 接口名称(默认:"rvpn0")
interface_name = "rvpn0"
# 虚拟 IP 地址,CIDR 表示法(默认:"10.200.0.2/24")
ip_address = "10.200.0.2/24"
# DNS 服务器(默认:["1.1.1.1", "8.8.8.8"])
dns_servers = ["1.1.1.1", "8.8.8.8"]
# 通过 VPN 路由的网络(默认:["0.0.0.0/0"])
routes = ["0.0.0.0/0"]
# MTU - 最大传输单元(默认:1420)
mtu = 1420
| 选项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
interface_name |
字符串 | "rvpn0" |
TUN 接口名称 |
ip_address |
字符串 | "10.200.0.2/24" |
虚拟 IP 地址(CIDR 表示法) |
dns_servers |
数组 | ["1.1.1.1", "8.8.8.8"] |
要使用的 DNS 服务器 |
routes |
数组 | ["0.0.0.0/0"] |
通过 VPN 路由的网络(CIDR) |
mtu |
整数 | 1420 |
最大传输单元 |
Performance 配置节¶
[performance] 节用于调整性能参数。
[performance]
# 工作线程数(默认:4)
worker_threads = 4
# 接收缓冲区大小,字节(默认:262144)
recv_buffer_size = 262144
# 发送缓冲区大小,字节(默认:262144)
send_buffer_size = 262144
| 选项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
worker_threads |
整数 | 4 |
异步工作线程数 |
recv_buffer_size |
整数 | 262144 |
套接字接收缓冲区大小(字节) |
send_buffer_size |
整数 | 262144 |
套接字发送缓冲区大小(字节) |
Split Tunnel 配置节¶
[split_tunnel] 节用于配置分流隧道行为。
[split_tunnel]
# 启用分流隧道(默认:false)
enabled = true
# 绕过网络的文件路径,CIDR 格式(可选)
bypass_networks_file = "bypass_networks.txt"
# 绕过域名的文件路径(可选)
bypass_domains_file = "bypass_domains.txt"
# 强制走 VPN 的网络文件路径,CIDR 格式(可选)
tunnel_networks_file = "tunnel_networks.txt"
# 强制走 VPN 的域名文件路径(可选)
tunnel_domains_file = "tunnel_domains.txt"
# 自动重载间隔,秒,0 表示禁用(默认:300)
auto_reload_interval = 300
# 内置绕过国家(默认:["CN"])
builtin_bypass_countries = ["CN", "HK"]
# 启用广告拦截(默认:false)
block_ads = false
# 自定义广告拦截列表文件路径(可选)
ad_block_file = "ad_block.txt"
| 选项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
enabled |
布尔值 | false |
启用分流隧道 |
bypass_networks_file |
字符串 | (无) | 绕过 VPN 的网络文件 |
bypass_domains_file |
字符串 | (无) | 绕过 VPN 的域名文件 |
tunnel_networks_file |
字符串 | (无) | 强制走 VPN 的网络文件 |
tunnel_domains_file |
字符串 | (无) | 强制走 VPN 的域名文件 |
auto_reload_interval |
整数 | 300 |
自动重载间隔,秒(0 = 禁用) |
builtin_bypass_countries |
数组 | ["CN"] |
内置绕过的国家代码 |
block_ads |
布尔值 | false |
启用内置广告拦截 |
ad_block_file |
字符串 | (无) | 自定义广告拦截列表文件 |
详见 Split Tunneling 文档。
Network 配置节¶
[network] 节用于配置网络行为。
[network]
# 启用 IPv6 支持(默认:true)
ipv6_enabled = true
# 优先使用 IPv4 而非 IPv6(默认:true)
prefer_ipv4 = true
# 启用 DNS 缓存(默认:true)
dns_cache_enabled = true
# DNS 缓存 TTL,秒(默认:300)
dns_cache_ttl = 300
# 最大 DNS 缓存条目数(默认:1000)
dns_cache_size = 1000
# 自定义 DNS 服务器,覆盖系统默认(可选)
dns_servers = ["1.1.1.1", "8.8.8.8"]
| 选项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
ipv6_enabled |
布尔值 | true |
启用 IPv6 支持 |
prefer_ipv4 |
布尔值 | true |
优先使用 IPv4 |
dns_cache_enabled |
布尔值 | true |
启用 DNS 缓存 |
dns_cache_ttl |
整数 | 300 |
DNS 缓存 TTL,秒 |
dns_cache_size |
整数 | 1000 |
最大 DNS 缓存条目数 |
dns_servers |
数组 | [] |
自定义 DNS 服务器(覆盖系统设置) |
完整示例¶
# 服务器连接
[server]
server_address = "wss://vpn.example.com/connect"
identity_key_file = "identity.key"
prekey_bundle = "prekey-bundle.json"
# SOCKS5 代理模式
[socks5]
listen_address = "127.0.0.1:1080"
udp_associate = true
# TUN 设备配置
[tun]
interface_name = "rvpn0"
ip_address = "10.200.0.2/24"
dns_servers = ["1.1.1.1", "8.8.8.8"]
routes = ["0.0.0.0/0"]
mtu = 1420
# 中国/香港流量分流隧道
[split_tunnel]
enabled = true
builtin_bypass_countries = ["CN", "HK"]
auto_reload_interval = 300
# 性能调整
[performance]
worker_threads = 4
recv_buffer_size = 262144
send_buffer_size = 262144
# 网络设置
[network]
ipv6_enabled = true
prefer_ipv4 = true
dns_cache_enabled = true
dns_cache_ttl = 300
命令行选项¶
# 使用自定义配置连接
rvpn --config /path/to/config.toml
# 连接到指定服务器(覆盖配置)
rvpn --server wss://vpn.example.com/connect
# 指定预密钥包(覆盖配置)
rvpn --bundle /path/to/prekey-bundle.json
# 以 TUN 模式运行(默认是 SOCKS5)
rvpn --tun
# 详细输出
rvpn -v # 调试级别
rvpn -vv # 跟踪级别
# 显示帮助
rvpn --help
# 显示版本
rvpn --version
环境变量¶
| 变量 | 说明 |
|---|---|
RVPN_CONFIG |
配置文件路径 |
RVPN_LOG |
日志级别(error, warn, info, debug, trace) |
配置优先级¶
配置按以下顺序应用(后者覆盖前者):
- 默认值
- 配置文件
- 环境变量
- 命令行参数
下一步¶
- Split Tunneling - 将本地流量路由到 VPN 外
- SOCKS5 Mode - 使用 SOCKS5 代理模式
- TUN Mode - 使用完整 VPN 模式
- Key Management - 管理身份密钥