OpenVPN 上的 Samba——速度非常慢

OpenVPN 上的 Samba——速度非常慢

我已经设置了一个服务器来运行 OpenVPN,目的是让客户端远程访问 Samba 共享。

服务器运行的是 CentOS 5.6,四核 Xeon CPU 不错,内存充足。我测试的客户端是 Windows 7 x64 机器,配置也相当高。

结果是客户端的上传和下载速度大约为 60KB/s。我知道 Samba 的重复传输方式非常低效,但即便如此,客户端的下行带宽为 50Mbps,上行带宽为 4Mbps。即使客户端的上传速度是瓶颈,它的速度也比这个速度慢了 9 倍。

传输过程中服务器和客户端的 CPU 使用率可以忽略不计,因此这必须排除密码速度。

服务器和客户端上都打开了适当的 OpenVPN 端口;OpenVPN 密码是带有 160 位 SHA1 HMAC 的 AES-128-CBC;还使用了 TLS 密钥和 comp-lzo 压缩。

知道这是怎么回事吗?我知道 Samba 很慢……但这肯定不对!

答案1

确保您的 OpenVPN 隧道使用的是 UDP,而不是 TCP。此外,通过在两端的 OpenVPN 配置文件中使用“comp-lzo”指令,确保隧道使用压缩。

最后,可能值得为隧道设置 MTU 和 MSS 限制值,但这取决于您使用的互联网连接类型,如果设置不正确,通常会导致超时而不是传输缓慢。

tun-mtu 1500
mssfix 1212

对于 PPP 连接本身,MSS 限制也需要设置为比 OpenVPN 低一级的 1300 之类的值。但是,正如我所说,我不知道您使用的是哪种类型的连接 - MSS 限制仅在非以太网网络上有用,例如 ADSL 等。

答案2

就我而言(OpenMediaVault NAS,基于 Debian),我遇到了同样的问题。在 Synology NAS 上使用 PPTP VPN 也遇到了同样的问题。

除了 MTU 设置之外,我的解决方案是配置 VPN 服务器通过其 DHCP 发送 DNS 服务器地址

此后,我就可以使用我的全部带宽了。

希望这对您和其他人有帮助!

答案3

您是否将 openvpn 设置为使用 TCP?这可能会导致您看到的问题。您应该使用 UDP。

正如 ErikA 所说,为了进行比较,您应该进行 SCP(或 ftp)传输(通过互联网和 VPN)。

答案4

我意识到这个答案有点晚了,但是除了明显的传输问题(UDP 与 TCP)之外,密码、MSS、MTU 和分片方法也发挥了作用。

OpenVPN wiki 上有一篇非常好的文章如何最大限度地发挥千兆网络的性能。即使在千兆速度以下,那里提供的事实也非常有见地。

主要发现

  • 河豚密码允许最佳整体速度。最佳最大传输单元在千兆网络上48000
  • 即使AES-256 密码你可以使用以下方法来提高速度MTU 24000而不是默认的。

相关内容