我原本期望 OpenVPN 在禁用加密时能够实现更高的速度,但事实却恰恰相反。
当将密码设置为 AES-128-GCM 时,我的两台计算机之间的速度为 580 到 613 Mbit/秒:
Mon Jun 15 11:46:06 2020 Data Channel: using negotiated cipher 'AES-128-GCM'
Mon Jun 15 11:46:06 2020 Outgoing Data Channel: Cipher 'AES-128-GCM' initialized with 128 bit key
Mon Jun 15 11:46:06 2020 Incoming Data Channel: Cipher 'AES-128-GCM' initialized with 128 bit key
当将密码设置为时none
,我的两台计算机之间的速度只有 460 - 490 Mbit/秒。
Mon Jun 15 11:45:11 2020 ******* WARNING *******: '--cipher none' was specified. This means NO encryption will be performed and tunnelled data WILL be transmitted in clear text over the network! PLEASE DO RECONSIDER THIS SETTING!
Mon Jun 15 11:45:11 2020 Outgoing Control Channel Encryption: Cipher 'AES-256-CTR' initialized with 256 bit key
Mon Jun 15 11:45:11 2020 Outgoing Control Channel Encryption: Using 256 bit message hash 'SHA256' for HMAC authentication
Mon Jun 15 11:45:11 2020 Incoming Control Channel Encryption: Cipher 'AES-256-CTR' initialized with 256 bit key
Mon Jun 15 11:45:11 2020 Incoming Control Channel Encryption: Using 256 bit message hash 'SHA256' for HMAC authentication
据我所知,“控制”通道仅用于非常小的数据包,而第二个“数据”通道用于真实信息。
我正在尝试通过 OpenVPN 达到千兆速度。即使将服务器的 CPU 调速器设置为performance
,在 AES-128-GCM 配置下,我能达到的最大速度也只有 613 Mbit/秒。我仍在努力本指南。
当我将 AES-128-GCM 配置的协议更改为 时proto udp
,速度会下降到 414 Mbit/秒……
在增加 tun-mtu 之后客户端和服务器,速度可达到 700 Mbit/秒。使用 AES-256 加密时,此更改仍会持续存在...
当我禁用时auth
,速度会上升到 818 Mbit/秒。
当我直接连接(不通过开放 vpn)时,速度大约为 914-980 Mbit/秒。
答案1
答案很简单:AES-128-GCM 比 SHA1 更快。如果没有 AEAD 密码,OpenVPN 仍将使用配置--auth
选项(默认sha1
)来验证数据包。