OpenV_X_N 2.5.x 配置文件选项详解

OpenV_X_N 2.5.x 配置文件选项详解

根据 OpenV_X_N 2.5.x 版本官方文档和实践经验,以下是服务端和客户端配置文件中可用的主要选项及其含义说明。


一、基础网络配置选项

选项 语法示例 含义说明
client client 声明此配置文件为客户端模式,告诉 Openvxn 这是一个客户端连接
dev dev tun 或 dev tap 指定虚拟设备类型。tun 是路由模式(三层),tap 是桥接模式(二层)。tun 更常用且效率更高
proto proto udp 或 proto tcp 指定传输协议。UDP 通常更快更稳定,TCP 穿透性更好但开销更大
port port 1194 指定服务端监听的端口号,默认是 1194
local local 192.168.1.100 指定服务端监听的本地 IP 地址(当服务器有多个网卡时使用)
remote remote your-server.com 1194 客户端指定要连接的服务端地址和端口
remote-random remote-random 当配置了多个 remote 时,随机选择一个连接

二、网络拓扑和地址分配选项

选项 语法示例 含义说明
server server 10.8.0.0 255.255.255.0 服务端配置 vxn 子网网段,客户端将从此网段获取 IP 地址
topology topology subnet Openvxn 2.5.x 推荐配置 。指定网络拓扑结构。subnet 模式让每个客户端获得一个子网内的独立 IP,比旧的 net30 模式更节省地址空间
ifconfig-pool-persist ifconfig-pool-persist ipp.txt 将客户端 IP 分配记录保存到文件中,使客户端重连时能获得相同的 IP 地址
client-to-client client-to-client 允许客户端之间相互通信。默认情况下客户端只能与服务器通信
duplicate-cn duplicate-cn 允许同一个证书或用户名的多个客户端同时连接(通常用于测试)

三、加密与安全选项(2.5.x 重要更新)

选项 语法示例 含义说明
data-ciphers data-ciphers AES-256-GCM:AES-256-CBC Openvxn 2.5.x 推荐使用。定义数据通道支持的加密算法列表,按优先级排序。客户端和服务端会协商选择共同支持的算法
data-ciphers-fallback data-ciphers-fallback AES-256-CBC Openvxn 2.5.x 推荐使用 。定义当客户端不支持 data-ciphers 协商时的备用加密算法,用于兼容旧版客户端
cipher cipher AES-256-CBC 旧版选项 。2.5.x 中仍可用但会产生弃用警告。建议改用 data-ciphers 和 data-ciphers-fallback
auth auth SHA256 指定数据通道的 HMAC 认证算法,用于确保数据包的完整性
tls-auth tls-auth ta.key 0 (服务端) / tls-auth ta.key 1 (客户端) TLS 认证密钥,用于防御 DoS 攻击和端口扫描。服务端用 0,客户端用 1
key-direction key-direction 0 配合 tls-auth 使用,指定密钥方向。服务端为 0,客户端为 1
remote-cert-tls remote-cert-tls server 客户端验证服务端证书是否具有服务器扩展密钥用法(推荐开启)
ns-cert-type ns-cert-type server 旧版选项,已弃用 。建议用 remote-cert-tls server 替代
auth-nocache auth-nocache 不缓存用户认证信息(用户名/密码),连接结束后立即从内存中清除
reneg-sec reneg-sec 3600 定期重新协商数据通道密钥的间隔时间(秒),默认 3600 秒

四、推送和路由选项

选项 语法示例 含义说明
push push "redirect-gateway def1 bypass-dhcp" 服务端向客户端推送配置指令,例如推送路由、DNS 等
redirect-gateway push "redirect-gateway def1 bypass-dhcp" 推送默认网关重定向,让客户端所有流量都走 vxn 通道。def1 使用更具体的路由覆盖默认网关
push "dhcp-option DNS" push "dhcp-option DNS 8.8.8.8" 向客户端推送 DNS 服务器地址
push "route" push "route 192.168.1.0 255.255.255.0" 向客户端推送指定网段的路由,使客户端能访问这些网络
route route 192.168.1.0 255.255.255.0 服务端配置本地路由,或客户端配置静态路由
route-nopull route-nopull 客户端拒绝接受服务端推送的路由,只使用本地配置的路由
client-nat client-nat dnat 192.168.0.0 255.255.0.0 在客户端侧配置 NAT 规则

五、保持连接和超时选项

选项 语法示例 含义说明
keepalive keepalive 10 120 每 10 秒发送 ping 包,如果 120 秒内没有收到响应则判断连接断开
ping-restart ping-restart 60 如果 60 秒内没有收到 ping 响应,重启连接
ping-exit ping-exit 60 如果 60 秒内没有收到 ping 响应,退出连接
inactive inactive 3600 如果 3600 秒内没有数据流量,断开连接
resolv-retry resolv-retry infinite 客户端 DNS 解析失败时无限重试,或指定重试次数

六、证书和密钥文件选项

选项 语法示例 含义说明
ca ca ca.crt CA 根证书文件路径,用于验证对方证书的签名链
cert cert server.crt 本端的证书文件路径
key key server.key 本端的私钥文件路径(需要严格保密)
dh dh dh.pem Diffie-Hellman 参数交换文件,仅服务端需要
tls-crypt tls-crypt ta.key 新版 TLS 加密方式,比 tls-auth 更安全,同时提供加密和认证
pkcs12 pkcs12 client.p12 使用 PKCS#12 格式的证书文件(包含证书和私钥)
crl-verify crl-verify crl.pem 证书吊销列表文件,用于验证证书未被吊销

内联配置方式 (2.5.x 支持):

可以将证书内容直接嵌入配置文件,使用 <ca>、</ca> 标签包裹:

复制代码
<ca>
-----BEGIN CERTIFICATE-----
...(CA证书内容)...
-----END CERTIFICATE-----
</ca>

七、压缩选项(注意变化)

选项 语法示例 含义说明
compress compress lz4-v2 启用 LZ4 压缩(v2 版本),2.5.x 推荐使用
comp-lzo comp-lzo no 旧版选项,已弃用。LZO 压缩存在安全风险(VORAL 攻击),建议避免使用

重要说明:Openvxn 2.5.x 中压缩功能默认不启用。如需使用压缩,服务端和客户端必须配置完全一致的压缩选项。出于安全考虑,现代配置通常不启用压缩。


八、脚本和钩子选项

选项 语法示例 含义说明
script-security script-security 2 设置脚本执行的安全级别。2 表示允许执行用户自定义脚本
client-connect client-connect /path/to/script.sh 客户端成功连接后执行指定脚本
client-disconnect client-disconnect /path/to/script.sh 客户端断开连接时执行指定脚本
up up /path/to/script.sh vxn 连接建立(TUN/TAP 设备可用)后执行脚本
down down /path/to/script.sh vxn 连接关闭前执行脚本
learn-address learn-address /path/to/script.sh 学习到新的客户端地址时执行脚本
auth-user-pass-verify auth-user-pass-verify check.sh via-file 验证客户端用户名密码的脚本

九、认证相关选项(用户名/密码)

选项 语法示例 含义说明
auth-user-pass-verify auth-user-pass-verify /path/to/script via-file 通过外部脚本验证用户名/密码
verify-client-cert verify-client-cert none 2.5.x 推荐使用 。设置客户端证书验证要求:none(不要求)、optional(可选)、require(必须)
client-cert-not-required client-cert-not-required 旧版选项,已弃用 。2.5.x 中应使用 verify-client-cert none 替代
username-as-common-name username-as-common-name 将客户端认证的用户名作为证书的 CN(通用名称)使用
auth-user-pass auth-user-pass 或 auth-user-pass pass.txt 客户端启用用户名/密码认证。不加参数时交互式输入,加文件名时从文件读取

十、日志和调试选项

选项 语法示例 含义说明
verb verb 3 日志详细程度,0-11 级。3 为默认级别,推荐用于生产环境
log log /var/log/openvxn.log 覆盖模式日志文件路径
log-append log-append /var/log/openvxn.log 追加模式日志文件路径
status status openvxn-status.log 状态文件路径,定期写入当前连接状态
mute mute 20 相同日志消息重复 20 次后静默,防止日志泛滥
mute-replay-warnings mute-replay-warnings 静默重放攻击警告信息

十一、权限和持久化选项

选项 语法示例 含义说明
user user nobody Linux 系统下降低守护进程权限到指定用户
group group nogroup Linux 系统下降低守护进程权限到指定组
persist-key persist-key 重启时保持私钥文件不重新读取,避免权限问题
persist-tun persist-tun 重启时保持 TUN/TAP 设备不关闭,避免权限问题
nobind nobind 客户端不绑定本地端口,使用随机源端口
float float 允许服务端从非远程配置指定的 IP 地址接收数据包(多网卡/NAT 场景)

十二、IPv6 相关选项

选项 语法示例 含义说明
server-ipv6 server-ipv6 2001:db8::/64 服务端配置 IPv6 地址池
push-ipv6 push "route-ipv6 2001:db8::/64" 推送 IPv6 路由到客户端
tun-ipv6 tun-ipv6 启用 IPv6 隧道模式
ifconfig-ipv6 ifconfig-ipv6 2001:db8::1/64 2001:db8::2 配置 IPv6 地址(客户端)

十三、性能调优选项

选项 语法示例 含义说明
sndbuf sndbuf 262144 设置发送缓冲区大小(字节)
rcvbuf rcvbuf 262144 设置接收缓冲区大小(字节)
txqueuelen txqueuelen 1000 设置 TUN/TAP 设备的发送队列长度
fragment fragment 1400 设置数据包分片大小
mssfix mssfix 1400 设置 MSS(最大分片大小)以优化 MTU

十四、OpenVXN 2.5.x 重要变化总结

  1. 加密配置 :推荐使用 data-ciphers + data-ciphers-fallback 替代单独的 cipher
  2. TLS 认证 :推荐使用 verify-client-cert none 替代 client-cert-not-required
  3. 拓扑模式 :推荐使用 topology subnet 改善 IP 地址利用率
  4. 压缩安全 :避免使用 comp-lzo,改用 compress 或不使用压缩
  5. 内联配置:支持将证书/密钥内容直接嵌入配置文件

相关推荐
_upupup9 小时前
Linux的调试工具——gdb/cgdb
linux·服务器
JeJe同学9 小时前
Docker镜像导入、容器启动
linux·运维·docker
Jason_zhao_MR9 小时前
Linux与实时控制如何兼得
linux·嵌入式硬件·机器人·工业控制
闲云野鹤在人间10 小时前
MySQL|从理论、安装、备份到主从复制、MHA高可用详解
linux·运维·数据库·mysql·云计算
一个风轻云淡11 小时前
GCC 和 GDB命令简单解读
java·linux·前端
H.莓飛11 小时前
【数据结构】二叉树_OJ题
linux·开发语言·数据结构·算法
资料库0112 小时前
Linux 8个常见运维故障排查
java·linux·运维
零基础12312 小时前
Ubuntu 常用命令汇总
linux·运维·开发语言
Android系统攻城狮13 小时前
Linux Gstreamer深度解析之gst_audio_sink_get_type调用流程与实战(六十五)
linux·运维·服务器·音视频·gstreamer音视频·音视频进阶·gstreamer音视频进阶
xiaoqiMikko13 小时前
Linux 实战(一):CentOS 7、Rocky 9、Ubuntu 24.04 三台真机实测 —— 认清系统、换源、装包的版本坑
linux·centos