SoftEther VPN 4.44 配置参数详解

vpn_server.config 逐段实测:listener/ServerConfiguration/GlobalParams/VirtualHUB/SecureNAT/IPsec/DDnsClient 全部核心参数(4.44),含配置持久化机制、DhcpSet 交互陷阱与生产配置模板。

SoftEther VPNVPN网络配置安全2026/10/20

SoftEther VPN 4.44 配置参数详解

目标:逐段讲清 SoftEther VPN Server 4.44(build 9807)核心配置文件 vpn_server.config 的结构与每个参数的含义、默认值与修改方式。本文所有参数值与命令回显均在 Ubuntu 22.04 实机逐项实测(实验全程通过 vpncmd 驱动,未经手工编辑),取证日期 2026-10-20。

一、环境信息

  • 操作系统:Ubuntu 22.04(x86_64)
  • 软件版本:SoftEther VPN Server 稳定版 4.44(build 9807,RTM),源码编译安装,安装目录 /usr/vpnserver/
  • 配置文件:/usr/vpnserver/vpn_server.config(服务首次启动自动生成,实测初始 391 行,完成本篇全部实验后 433 行)
  • 实验形态:单机部署默认虚拟 Hub DEFAULT + SecureNAT + TAP 本地桥接 + 客户端拨入全链路打通(实测 DHCP 分配 192.168.30.10、隧道内 ping 0% 丢包),参数解释均以该实测拓扑为背景
  • 修改方式:全部经 vpncmd 命令在线修改(自动持久化),实验含配置文件回读比对

二、前置条件

三、参数查看与修改方式

3.1 两条查看路径

路径一:vpncmd 在线查询(运行时事实,推荐)。每类对象都有对应查询命令,实测对照:

对象查询命令对应配置段
监听端口ListenerListListenerList
服务器全局ServerStatusGet / ServerInfoGetServerConfiguration(只读部分)
加密算法ServerCipherGetCipherName
虚拟 HubHubList / StatusGetVirtualHUB/<名字>
Hub 管理上限ExtOptionListAdminOption
SecureNATNatGet / DhcpGet / SecureNatHostGetSecureNAT/*
日志LogGetLogSetting
IPsecIPsecGetIPsec
动态 DNSDynamicDnsGetStatusDDnsClient

路径二:配置文件直读(完整事实)。cat /usr/vpnserver/vpn_server.config 即可全文审读;但运行期间服务会自动回写(实测 AutoSaveConfigSpan 300,即每 300 秒),手工编辑前必须停服——文件头注释原文:"You may edit this file when the VPN Server / Client / Bridge program is not running. If you edit this file while the program is running, all changes will be lost."

3.2 修改原则

  • 在线改:一律用 vpncmd 对应 Set/Create/Delete 命令,实时生效、自动持久化(实测每条 Set 后配置文件 ConfigRevision 递增,从 1 到 15 与实验操作次数吻合)
  • 离线改:确需手工编辑时,先 systemctl stop softether-vpnserver,改完 systemctl start;改前备份 cp vpn_server.config{,.bak}
  • 配置文件是纯文本树结构,类型前缀(bool/uint/int64/byte/string)不可省略,字符串内的空格以 $20 转义(实测 RealName SoftEther$20Admin 对应界面输入 "SoftEther Admin")

四、配置文件结构总览

vpn_server.config 是单根声明式树,实测顶层结构(行号为实测文件位置):

declare root
{
        uint ConfigRevision 15                  # 配置版本号,每次修改自动 +1
        bool IPsecMessageDisplayed false
        string Region CN
        declare DDnsClient { ... }              # 内置动态 DNS 客户端
        declare IPsec { ... }                   # IPsec/L2TP 服务端全局开关
        declare ListenerList { Listener0..3 }   # TCP 监听端口列表
        declare LocalBridgeList { LocalBridge0 }# 本地桥接(物理网卡/TAP)
        declare ServerConfiguration             # 服务器全局配置(约 50 项)
        {
                declare GlobalParams { ... }    # 内核级调优参数(21 项)
                declare ServerTraffic { ... }   # 累计流量统计
                declare SyslogSettings { ... }  # 外发 syslog 设置
        }
        declare VirtualHUB                      # 全部虚拟 Hub(每 Hub 一棵子树)
        {
                declare DEFAULT
                {
                        declare AdminOption     # Hub 管理员权限上限(41 项)
                        declare AccessList {}   # 包过滤/带宽规则
                        declare CascadeList {}  # 级联连接
                        declare LogSetting      # 日志开关与轮转
                        declare Option          # Hub 行为选项(约 60 项)
                        declare SecureNAT       # 虚拟主机/DHCP/NAT 三件套
                        declare SecurityAccountDatabase  # 用户/组/证书/CRL/IP-ACL
                        declare Traffic         # Hub 流量统计
                }
        }
        declare VirtualLayer3SwitchList {}      # 虚拟三层交换机
}

以下按"全局 → Hub → 内嵌功能"顺序逐段详解,全部取值为实测回读。

五、核心参数分类详解

5.1 ListenerList:监听端口

实测(ListenerList 命令与配置文件一致):

Port Number|Status
-----------+---------
TCP 443    |Listening
TCP 992    |Listening
TCP 1194   |Listening
TCP 5555   |Listening
参数实测值说明
Port443 / 992 / 1194 / 5555默认四端口。443 复用 HTTPS 形态穿透严格防火墙;5555 是 vpncmd 传统默认端口;1194 兼容 OpenVPN 客户端
Enabledtruefalse 时该端口保留配置但不监听
DisableDosfalse禁用该端口的 DoS 检测(误报时可关)

修改:ListenerCreate 8151 / ListenerDelete 8151(实测回显见安装篇 8.3,新端口立即 Listening)。端口冲突时状态为 Error 且不影响其他端口。

5.2 ServerConfiguration:服务器全局参数

实测关键项(全部为默认值,除 CipherName 为实验改为 AES256-GCM-SHA384):

参数实测值说明与建议
CipherNameAES256-GCM-SHA384隧道加密算法。默认 AES128-SHA;ServerCipherSet 可改,实测可用列表 23 项(从 RC4-MD5 到 ECDHE-RSA-CHACHA20-POLY1305),生产建议 AES256-GCM 或 CHACHA20-POLY1305
HashedPassword(口令哈希)服务器管理员口令哈希,ServerPasswordSet 生成,勿手工改
AcceptOnlyTlstrue仅接受 TLS 握手连接;老客户端(SSLv3)无法接入,有兼容需求才关
Tls_Disable1_0/1_1/1_2/1_3全部 false按协议版本禁用开关。生产建议置 Tls_Disable1_0 true、Tls_Disable1_1 true 收紧旧协议
MaxConnectionsPerIP256单 IP 最大并发连接,防单点滥用
MaxUnestablishedConnections1000半开连接上限,抗慢速攻击
AutoSaveConfigSpan300配置自动保存间隔(秒)
AutoDeleteCheckDiskFreeSpaceMin104857600磁盘剩余空间低于 100 MB 时自动清理日志,防写满
AutoDeleteCheckIntervalSecs300上述检查周期
UseKeepConnect / KeepConnectHost / KeepConnectPort / KeepConnectProtocol / KeepConnectIntervaltrue / keepalive.softether.org / 80 / 1(UDP) / 50NAT 保活心跳:每 50 秒向目标发一个 UDP 包防公网映射老化。纯内网部署可 KeepDisable 关闭
EnableVpnOverIcmp / EnableVpnOverDnsfalse / falseICMP/DNS 隧道穿透(VpnOverIcmpDnsGet 实测确认默认关)。仅在最受限网络启用,性能开销大
EnableVpnAzurefalse官方 Azure 中继穿透,启用后获得 *.vpnazure.net 域名
DisableOpenVPNServer / DisableSSTPServerfalse / false各协议网关开关。不用某协议时置 true 缩小暴露面(如关闭 MS-SSTP 可减少一个攻击面)
OpenVPN_UdpPortList1194OpenVPN 克隆功能监听的 UDP 端口列表(逗号分隔多个)
DisableIPsecAggressiveModefalse关闭 IPsec 野蛮模式(更安全,兼容性下降)
DisableJsonRpcWebApi / UseWebUIfalse / falseJSON-RPC API 默认开、HTML5 管理台默认关。生产建议 DisableJsonRpcWebApi true(不编程就关 API)
DisableIPv6Listenerfalse关闭后仅监听 IPv4(实测默认 IPv4+IPv6 双栈各四端口)
ServerType00=独立运行;集群模式改为控制器/成员(ClusterSettingStandalone 等命令管理)
ServerLogSwitchType4服务器日志轮转粒度:0=秒 1=分 2=时 3=日 4=月(值越大文件越少)
CurrentBuild9807构建号,只读标识

5.3 ServerConfiguration/GlobalParams:内核调优参数

实测 21 项(全部默认值,不需要动,列出高频调优项):

参数实测值说明
MAX_MAC_TABLES / MAC_TABLE_EXPIRE_TIME65536 / 600000MAC 表容量与老化时间(毫秒,默认 10 分钟)。大二层网络(>1000 终端)适当加大容量
MAX_IP_TABLES / IP_TABLE_EXPIRE_TIME65536 / 60000IP 会话表容量与老化(默认 1 分钟;DHCP 地址老化 300 秒单独控制)
MAX_BUFFERING_PACKET_SIZE / MAX_SEND_SOCKET_QUEUE_SIZE2560000 / 2560000每会话缓冲与发送队列字节上限,突发流量丢包时加大
STORM_DISCARD_VALUE_START / STORM_DISCARD_VALUE_END3 / 1024广播风暴检测阈值:500ms 窗口(STORM_CHECK_SPAN)内包数超起点开始丢弃、超终点全丢

5.4 VirtualHUB/<Hub名>:Hub 级参数

LogSetting(实测,LogGet 命令同源):

参数实测值说明
SaveSecurityLog / SecurityLogSwitchTypetrue / 4安全日志(登录、用户操作)保存与轮转(4=按月)
SavePacketLog / PacketLogSwitchTypetrue / 4包日志保存与轮转
PACKET_LOG_TCP_CONN / PACKET_LOG_DHCP1 / 1记录等级:0=不记 1=仅头 2=含载荷。默认只记 TCP 连接与 DHCP 头,其余 0,兼顾取证与磁盘

AdminOption(Hub 管理员权限上限,实测 41 项全 0=不限制;AdminOptionList/AdminOptionSet 命令同源,实测 AdminOptionSet deny_empty_password /VALUE:1 后回读 Value |1)。高频项:

参数含义
max_sessions / max_sessions_client / max_sessions_bridgeHub 总/客户端/桥接会话数上限(0=不限)
max_users / max_groups / max_accesslists用户数/组数/ACL 规则数上限
max_multilogins_per_user单用户同时登录数(0=不限;做一人一号管控时设 1)
deny_bridge / no_cascade禁止桥接/级联形态接入
no_securenat / no_securenat_enabledhcp / no_securenat_enablenat禁止 Hub 管理员动 SecureNAT
deny_empty_password禁止空密码用户

Option(Hub 行为选项,实测 60 项;ExtOptionList/ExtOptionSet 命令同源,实测列出 59 个可管理项,高频项):

参数实测值说明
MaxSession0与 AdminOption 重复的会话上限(0=不限)
NoMacAddressLogtrue不把 MAC 地址变化写入安全日志(减噪)
ManageOnlyPrivateIPtrue包日志仅记私有 IP
NoDhcpPacketLogOutsideHubtrueDHCP 包日志仅记 Hub 外发部分
RemoveDefGwOnDhcpForLocalhosttrue服务器本机拨入时不接受 DHCP 下发的默认网关(防回环)
DisableUdpAccelerationfalseUDP 加速开关(实测会话中 UDP Acceleration is Active: Yes)
BroadcastStormDetectionThreshold0广播风暴检测阈值(0=关)

5.5 SecureNAT:虚拟主机 / DHCP / NAT

启用方式:SecureNatEnable(实测回显 "The command completed successfully",配置文件 SecureNAT/Disabled 由 true 变 false)。三块子段实测值:

VirtualHost(虚拟网关主机):

参数实测值说明
VirtualHostIp192.168.30.1虚拟网关地址,即隧道内网关(实测客户端 ping 通)
VirtualHostIpSubnetMask255.255.255.0虚拟网段掩码
VirtualHostMacAddress5E-DE-79-AF-89-AC随机生成,勿手工改

VirtualDhcpServer(虚拟 DHCP,DhcpGet 命令同源):

参数实测值说明
DhcpEnabledtrue总开关
DhcpSubnetMask255.255.255.0分配网段
DhcpLeaseIPStart / DhcpLeaseIPEnd192.168.30.10 / 192.168.30.200地址池(实测首地址 .10 分配给拨入客户端)
DhcpExpireTimeSpan7200租期 7200 秒
DhcpGatewayAddress192.168.30.1下发网关(指向 VirtualHost 即走 NAT)
DhcpDnsServerAddress192.168.30.1下发 DNS(默认指向虚拟主机,由 NAT 代理解析)
DhcpPushRoutes$追加路由($ 为空)。站点互联场景用于下发内网路由

VirtualRouter(NAT 路由,NatGet 命令同源):

参数实测值说明
NatEnabledtrueNAT 总开关(只做 DHCP 时可关)
NatMtu1500虚拟路由 MTU
NatTcpTimeout / NatUdpTimeout1800 / 60TCP/UDP 会话超时(秒)

5.6 IPsec:L2TP/IPsec 网关

实测(IPsecEnable /L2TP:yes /L2TPRAW:no /ETHERIP:no /PSK:q1w2e3r4 /DEFAULTHUB:DEFAULT 后回读):

IPsecGet command - Get the IPsec VPN Server Settings
Item                                   |Value
---------------------------------------+-----------------------
L2TP Server Function Enabled           |Yes
L2TP over IPsec Server Function Enabled|Yes
EtherIP / L2TPv3 over IPsec Enabled    |No
IPsec Pre-Shared Key Text              |q1w2e3r4
Default Virtual Hub for L2TP Session   |DEFAULT
参数实测值说明
L2TP_IPsectrue标准 L2TP over IPsec(手机系统 VPN 用)
L2TP_Rawfalse不加 IPsec 的裸 L2TP(仅调试用)
EtherIP_IPsecfalseEtherIP/L2TPv3 站点接入开关
IPsec_Secretq1w2e3r4预共享密钥,生产必改强口令
L2TP_DefaultHubDEFAULTL2TP 用户名不带 "@Hub名" 后缀时归入的 Hub

5.7 DDnsClient:内置动态域名

实测(服务启动即自动启用):

DynamicDnsGetStatus command - Show Current Status of Dynamic DNS Function
Item                  |Value
----------------------+-----------------------
DDNS Hostname         |se-server.softether.net
Global IPv4 Address   |182.54.113.29
参数实测值说明
Disabledfalse总开关(DynamicDnsSetEnable false 关闭)
LocalHostnamese-server前缀,完整域名 <前缀>.softether.net
Key(哈希)身份标识,换机器恢复配置时保留可继承域名
ProxyType/ProxyHostName/ProxyPort0 / $ / 0更新请求走代理的设置

六、生产配置模板

以下为经本篇实测验证的最小生产模板(命令式,逐条可执行;假定域名 vpn.example.com、网段 10.8.0.0/24):

# 1) 收紧加密
vpncmd 127.0.0.1:5555 /SERVER /PASSWORD:q1w2e3r4 /CMD ServerCipherSet AES256-GCM-SHA384
# 2) 监听端口按需增删(443 被占用示例)
vpncmd 127.0.0.1:5555 /SERVER /PASSWORD:q1w2e3r4 /CMD ListenerCreate 8151
vpncmd 127.0.0.1:5555 /SERVER /PASSWORD:q1w2e3r4 /CMD ListenerDelete 1194            # 不提供 OpenVPN 时
# 3) 业务 Hub 与地址池(DhcpSet 交互项:域名空行、日志 yes、推送路由空行)
vpncmd 127.0.0.1:5555 /SERVER /PASSWORD:q1w2e3r4 /CMD HubCreate CORP /Password:q1w2e3r4
vpncmd 127.0.0.1:5555 /SERVER /PASSWORD:q1w2e3r4 /ADMINHUB:CORP /CMD SecureNatEnable
printf "\nyes\n\n" | vpncmd 127.0.0.1:5555 /SERVER /PASSWORD:q1w2e3r4 /ADMINHUB:CORP /CMD DhcpSet /START:10.8.0.10 /END:10.8.0.200 /MASK:255.255.255.0 /EXPIRE:7200 /GW:10.8.0.1 /DNS:10.8.0.1 /DNS2:0.0.0.0
# 4) 会话与账号管控(AdminOptionSet 逐项实测可用)
vpncmd 127.0.0.1:5555 /SERVER /PASSWORD:q1w2e3r4 /ADMINHUB:CORP /CMD AdminOptionSet max_multilogins_per_user /VALUE:1
vpncmd 127.0.0.1:5555 /SERVER /PASSWORD:q1w2e3r4 /ADMINHUB:CORP /CMD AdminOptionSet deny_empty_password /VALUE:1

💡 说明:DisableJsonRpcWebApi、UseWebUI、DisableSSTPServer 等 ServerConfiguration 级开关在 4.44 的 vpncmd 命令树中无对应命令(实测 OptionsSet、DisableSstpServer 均报 "Command not found"),需停服离线编辑配置文件实现。

要点: 改前 cp vpn_server.config{,.bak}; 改后 ServerStatusGet + ListenerList 双验证; 配置文件仅审读,所有变更走 vpncmd(自动持久化,ConfigRevision 自增)。

七、常见问题

Q1:手工改了配置文件不生效/被改回? 服务运行期间每 300 秒(AutoSaveConfigSpan 实测)回写一次,覆盖手工编辑。必须停服后再改,或直接改用 vpncmd 在线改。

Q2:SecureNAT 与物理网段冲突怎么办? 实测默认 192.168.30.0/24;若与内网路由冲突,用 DhcpSet 换段(如 10.8.0.0/24)并保持 DhcpGatewayAddress 指向同段 VirtualHostIp。跨站点场景不要让两个 Hub 的 SecureNAT 使用同段。

Q3:包日志把磁盘写满了? 默认仅记 TCP 连接与 DHCP 头(实测 PACKET_LOG_TCP_CONN 1、其余 0)。仍不够可 LogSet 关闭 SavePacketLog,或调大 AutoDeleteCheckDiskFreeSpaceMin 阈值让系统提前清理。

Q4:改了加密算法会断现有连接吗? ServerCipherSet 对新会话生效;实测改动后已建立的会话保持原算法(本实验会话仍显示 TLS_AES_256_GCM_SHA384 旧值),客户端重连后切换。

Q5:怎么确认某条配置最终写进了文件? 改完等一个自动保存周期或触发一次变更,再 cat /usr/vpnserver/vpn_server.config | grep 参数名 核对;注意字符串空格转义为 $20(实测 RealName SoftEther$20Admin)。

八、参考链接

  1. 本地配置文件:/usr/vpnserver/vpn_server.config(头部自带编辑警告注释)
  2. 命令级帮助:vpncmd ... /CMD <命令> /HELP(如 IPsecEnable /HELP)
  3. 姊妹篇:《Ubuntu 22.04 安装 SoftEther VPN 指南》《SoftEther VPN 4.44 常用 CLI 命令详解》《SoftEther VPN 4.44 介绍与选型指南》
  4. 官方文档:https://www.softether.org/4-docs/1-manual