OpenVPN Durchsatz optimieren

OpenVPN ist eine sehr gute Lösung, um von außerhalb des eigenen Netzwerks auf heimische Ressourcen zugreifen zu können. Über den VPN Tunnel wird eine gesicherte verschlüsselte Kommunikation ermöglicht. Je nach Konfiguration kann es jedoch vorkommen, dass der OpenVPN Durchsatz eher überschaubar ist. Grundsätzlich steht als Downloadrate der maximal verfügbare Upload des VPN Servers zur Verfügung. Hat als Beispiel der private Internetanschluss an dem auch der OpenVPN Server betrieben wird eine maximale Upload Rate von 10 Mbit/s steht diese auch als maximale Downloadrate für den VPN Tunnel zur Verfügung.


Wird diese Bandbreite nicht ansatzweise erreicht, kann dies ggf. mit ein paar kleinen Konfigurationsanpassungen geändert werden. Dazu wird ein Zugriff auf die Server Konfigurationsdatei von OpenVPN benötigt.

sudo nano /etc/openvpn/server.conf

Der erste Versuch den OpenVPN Durchsatz zu optimieren besteht darin, die Größe des Zwischenspeichers der Pakete anzupassen. Dabei muss unterschieden werden, ob der Tunnel über TCP oder über UDP aufgebaut wird. Bei TCP kann das Betriebssystem des Servers die Größe entscheiden. Daher werden folgende Zeilen in die Server Konfigurationsdatei eingefügt.

sndbuf 0
rcvbuf 0
push "sndbuf 393216"
push "rcvbuf 393216"

Wird UDP als Protokoll verwendet, sollte mit einer fest eingestellten Größe ein besseres Ergebnis erzielt werden.

sndbuf 393216
rcvbuf 393216
push "sndbuf 393216"
push "rcvbuf 393216"

Die Push Optionen bei beiden Varianten können optional auch entfallen und direkt in die Client Konfigurationsdatei eingetragen werden. Sollte sich durch den geänderten Buffer der Durchsatz noch nicht verbessert haben, kann auch mit den MTU Einstellungen experimentiert werden. Standardmäßig wird ein Wert von 1500 verwendet. Dieser sollte auch nur dann geändert werden, wenn wirklich klar ist was passiert. Eher lassen sich die Einstellungen mit den Werten „Fragmentation“ und „mssfix“ verändern. Dazu werden folgende Einstellungen in die Server Datei hinzugefügt. Der Parameter „Fragmentation“ kann nicht verwendet werden, wenn ein Zugriff per iOS erfolgen soll. Im dortigen Client wird diese Konfiguration nicht unterstützt und sorgt dafür, dass Surfen nicht mehr möglich ist.

tun-mtu 1500
fragmentation 1300
mssfix 1300
push "tun-mtu 1500"
push "fragmentation 1300"

OpenVPN Durchsatz Bandbreite

Die beiden Push Einträge können alternativ auch wieder in die Client Konfigurationsdatei eingetragen werden. Nach den Anpassungen muss der OpenVPN Dienst einmal neu durchgestartet werden.

sudo systemctl restart openvpn.service

Ab jetzt sollte der Durchsatz innerhalb des VPN Tunnels deutlich besser laufen. Für Fragen und Anregungen können gerne die Kommentare verwendet werden.