![编辑](https://linux22.com/image/670137/%E7%BC%96%E8%BE%91.png)
在我的 VPS(Ubuntu 14.04 - 64 位)上,安装了 OpenVPN 2.3.2 服务器,但性能令人失望。VPN 服务器使用 AES-128-CBC 密码进行加密,而且我没有安装防火墙。
问题是下载/上传速度相当低。在进行一些速度测试时,平均速度约为 45 Mbps。实际速度会下降到 20 Mbps,最高可达 50 Mbps。在进行这些测试时,CPU 和服务器负载似乎相当低。
我尝试过更改服务器和客户端上的 tun-mtu 值,使用不同的密码(blowfish 等),增加缓冲区大小等。不使用 VPN 连接时,我的下载速度约为 180 - 190 Mbps(我的 ISP 承诺 200 Mbps),上传速度为 10 Mbps。如您所见,差异相当大,我希望尽可能提高下载速度。
使用诸如 haveged 之类的程序来生成可用熵,似乎没有获得任何性能提升。我的可用熵始终存在700 – 800 位3000 已激活,足够了吗?
服务器本身有 1 Gbit 连接。对服务器的下载测试证实了这一速度(大约 800+ Mbps)。我还测试了从服务器下载一个随机的 1 GB 文件到其中一个 VPN 客户端(不使用 VPN 连接),平均下载速度为 180 Mbps(我的最大值)。
我在互联网上找不到太多关于使用 OpenVPN 服务器解决下载速度慢/低的问题的信息。让我担心的是 CPU 和服务器负载非常低(在进行速度测试时,只有一个核心的 CPU 使用率约为 16%(OpenVPN 不支持多线程/超线程?))。
如果您想了解有关我的设置或配置的更多信息或详细信息,请询问。
编辑2015-02-28:
我再次尝试使用只有三 (3) 个客户端的 OpenVPN 服务器。我再次遇到一个问题,即客户端的下载速度达不到我的互联网连接速度的最大值(甚至不到一半)。
我已经测试过在主机上安装 OpenVPN 服务器,结果相当不错!但是,我需要在 VPS(虚拟机)上使用 VPN 服务器,而不是在主机上。下载 10 GB 文件时,速度最高可达 10 MB/s(800 Mb/s),平均速度约为 7.5 MB/s(60 Mb/s)。客户端连接的互联网连接速度为 200 Mb/s。在没有 VPN 连接的情况下进行各种速度测试时,我的平均速度可以达到 180 Mb/s。通过 VPN 服务器(在 VPS 上!)连接时,速度还不到我应该获得的速度的一半。通过 VPN 服务器(在主机上!)连接时,我的速度最高可达 120 Mb/s。
两台服务器在执行测试时使用的 CPU 使用率大致相同,并且都支持 aesni 的 CPU。我使用 openssl 进行了一些速度测试,但这些测试似乎非常好,并且最大限度地利用了 CPU 核心。在执行这些测试时,我还运行了 watch -n 1 cat /proc/sys/kernel/random/entropy_avail,但在执行下载测试时,可用熵似乎没有太大变化。在主机和 VPS 上,它都在 850 - 900 左右。
我不知道为什么 VPS 服务器的速度与主机的速度相差这么大。可能是 Qemu (qemu-kvm) 虚拟化网络接口的问题吗?
答案1
每当我看到 VPS 上的某人提到加密或 SSL 性能问题时,我首先想到的就是他们正在耗尽随机池。
尝试安装“haveged”,看看是否能解决问题。如果能,请仔细阅读文档以及使用伪随机数生成器的注意事项及其安全隐患。
编辑
为什么要安装“haveged”?任何加密操作都严重依赖高质量的随机数。因此,您的吞吐量最终将受到您生成随机数的速率的限制。在 VPS 上,您可能没有像在裸机上那样拥有所有可用的熵源。这可能会耗尽池(尝试cat /proc/sys/kernel/random/entropy_avail
),导致您的程序阻塞,同时将更多随机性搅入池中。Haveged 使用 HAVEGE 算法,根据您的使用情况,该算法可能不太安全。由您决定是否值得承担可能适用于您的情况的风险。:) Haveged 是一个在后台运行的守护进程,用于保持内核熵池充满并搅动。除了可能需要重新启动您的 VPS(取决于您的设置)之外,不需要对您的软件进行任何更改。
答案2
通过 UDP 进行 OpenVPN
如果您通过 UDP 运行 OpenVPN,设置固定缓冲区值可能会获得更好的体验。尝试将这些行添加到您的客户端配置文件 (*.ovpn 或 *.conf) 中。
sndbuf 393216
rcvbuf 393216
push "sndbuf 393216"
push "rcvbuf 393216"
https://winaero.com/blog/speed-up-openvpn-and-get-faster-speed-over-its-channel/