提高OpenVPN性能

我一直在努力提高我的OpenVPN性能,这是我目前的设置:

cat /etc/openvpn/server.conf port 443 #- port proto tcp #- protocol dev tun #tun-mtu 1500 tun-mtu-extra 32 #mssfix 1450 tun-mtu 64800 mssfix 1440 reneg-sec 0 ca /etc/openvpn/easy-rsa/2.0/keys/ca.crt cert /etc/openvpn/easy-rsa/2.0/keys/server.crt key /etc/openvpn/easy-rsa/2.0/keys/server.key dh /etc/openvpn/easy-rsa/2.0/keys/dh1024.pem plugin /etc/openvpn/openvpn-auth-pam.so /etc/pam.d/login #plugin /usr/share/openvpn/plugin/lib/openvpn-auth-pam.so /etc/pam.d/login #- Comment this line if you are using FreeRADIUS #plugin /etc/openvpn/radiusplugin.so /etc/openvpn/radiusplugin.cnf #- Uncomment this line if you are using FreeRADIUS client-to-client client-cert-not-required username-as-common-name server 10.8.0.0 255.255.255.0 push "redirect-gateway def1" push "dhcp-option DNS 8.8.8.8" push "dhcp-option DNS 8.8.4.4" keepalive 5 30 comp-lzo persist-key persist-tun status 1194.log verb 3 

客户:

 client dev tun proto tcp remote 18.4.26.8 443 resolv-retry infinite nobind tun-mtu 64800 tun-mtu-extra 32 mssfix 1440 persist-key persist-tun auth-user-pass comp-lzo verb 3 

我从网上find的MTU和MSSF​​IX做了一些修改。

我可以做什么内核修改? 这是一个CentOS 6.x盒子。 我发现一些基于BSD的东西,但没有任何工作的Linux。

我知道TCP比UDP慢,但我需要能够看起来像SSLstream量通过networking上的防火墙。

其他想法?

PING到我RDP进入的networking上的另一个客户端。

 Pinging 10.8.0.6 with 32 bytes of data: Reply from 10.8.0.6: bytes=32 time=152ms TTL=128 Reply from 10.8.0.6: bytes=32 time=565ms TTL=128 Reply from 10.8.0.6: bytes=32 time=152ms TTL=128 Reply from 10.8.0.6: bytes=32 time=782ms TTL=128 Ping statistics for 10.8.0.6: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 152ms, Maximum = 782ms, Average = 412ms 

有没有什么方法来提高性能,或者降低一些ping?

编辑:将设置碎片设置帮助一些?

简短的回答:禁用comp-lzo

我意识到这是一个旧的post,但我也遭受了糟糕的OpenVPN性能。 我已经尝试了一切,调整MTU,更改snd和rcv缓冲区,mss夹紧,你的名字。 CPU负载可以忽略不计。

一时兴起,我禁用了压缩(从客户端和服务器上删除了comp-lzo ),性能提高了2-4倍。

所以,使用comp-lzo我的最大性能是25-30 Mbit / s左右,没有它,我达到了120 Mbit / s(我的互联网连接速度)。

服务器是Xeon E5-2650,客户端是Core i5-3320M。 运行OpenVPN 2.3.10,AES-256-CBC,SHA512。 我的英特尔Chromebook也超出了我的网速。 性能在我的Android客户端(14 Mbit / s – > 30 Mbit / s)上翻了一番,与IKEv2隧道速度相匹配。

由于TCP-over-TCP问题, TCP将比UDP更慢/更慢。 基本上,TCP依赖于数据包丢弃/拥塞来识别连接参数,而您的TCP-over-OpenVPN连接不会遇到这两种情况。 但是你说这不是一个select。

您也可以尝试mtu-disc选项来自动发现连接的最佳MTU设置。 在不同的地方有轻微的不匹配,比如OpenVPN的MTU设置,包括以太网头的大小。 [ 1 ]

你的tun-mtu设置很大,因为一个65KB的数据包在互联网上会有很多延迟问题(IPv4巨型数据包的大小约为9000个字节,大部分是在本地networking上工作)。 尝试一下1460,而不是像1300,看看MTU是否是你的问题。

即使这可能有点迟,你可以尝试我所做的:

删除所有mss,mtu等相关选项

在您的机构进行端口扫描并select一个UDP端口,一般应该打开53个GRE / 123 NDP端口:

将这些行添加到您的服务器configuration(参考这里 )

 #possible bandwidth increase sndbuf 393216 rcvbuf 393216 push "sndbuf 393216" push "rcvbuf 393216" 

我不完全了解这些设置,但他们确实有帮助,有人说这有助于很多,根据我的经验,它增加了我的吞吐量+/- 30%

在其中一个端口上启动服务器,你应该很好的去:P

希望这可以帮助!

sndbuf和rcvbuf从拨号日更正linux / unix / openvpn中的ANCIENT设置,以优化较慢的设置,即使操作系统针对更快的设置进行了优化

sndbuf / rcvbuf设置为0将简单地使用操作系统的设置

推是用来确保客户端设置正确,但在那里你需要一个值。