DTLS
2025/10/29大约 1 分钟
DTLS
默认配置下,SSL VPN使用TCP来封装TLS,当SSL VPN封装的业务数据为TCP时,就形成了TCP-in-TCP流量。这种情况下性能可能比预期的要慢。
Datagram Transport Layer Security (DTLS) 允许SSL VPN使用TLS加密流量,并使用 UDP 作为传输层,而不是TCP。DTLS具有与SSL相同的安全性,但使用UDP而不是TCP。这可以显著提高性能,避免了在TCP-in-TCP中可能发生的重传问题。
配置步骤
FortiGate
通过如下CLI开启SSL VPN的DTLS。
config vpn ssl settings
set dtls-tunnel enable
endFortiClient
对应的FortiClient也需要开启DTLS功能。
重要
如果FortiClient连接到了EMS Server,这里的配置是无法修改的,需要管理员在EMS Server端进行修改。如果FortiClient未连接EMS Server,或使用的是FortiClient VPN only版本,需要点击FortiClient界面左下角的🔒图标解锁后,才可以继续配置。

- 开启“Preferred DTLS Tunnel”:FortiClient将在FortiGate上启用并成功建立隧道时使用DTLS。如果在FortiGate上未启用或隧道建立不成功,则使用TLS。DTLS隧道使用UDP而不是TCP,可以提高VPN的吞吐量。
- 关闭“Preferred DTLS Tunnel”:当禁用时,FortiClient将使用TLS,即使在FortiGate上启用了DTLS。
结果验证
FortiClient连接FortiGate的SSL VPN服务,查看FortiGate的sslvpnd进程debug信息,可以看到SSL VPN连接使用DTLS建立。
[321:root:5]DTLS established: DTLSv1 ECDHE-RSA-AES256-GCM-SHA384 from 192.168.100.110抓包查看SSL VPN协商与业务流量,可以看到SSL VPN协商与后续业务流量均使用DTLS封装。
