Der Raspberry Pi 3 ist ein echtes Multitalent. Ob Smart-Home-Zentrale, Mediaserver oder Retro-Gaming-Konsole – der kleine Einplatinencomputer hat sich über Jahre bewährt. Viele nutzen ihn auch als preisgünstigen Server für ein Virtual Private Network (VPN), und hier kommt oft WireGuard ins Spiel. WireGuard ist bekannt für seine schlanke Architektur, hohe Sicherheit und beeindruckende Geschwindigkeit. Doch wer WireGuard auf einem Raspberry Pi 3 betreibt, stößt schnell an eine scheinbare Grenze: Oft sind es nicht mehr als 30 bis 50 Mbit/s, die durch die Leitung fließen. Frustrierend, wenn die eigene Internetverbindung viel mehr hergibt!
Doch keine Sorge: Diese Leistungsgrenze ist nicht in Stein gemeißelt. Mit den richtigen Optimierungen können Sie deutlich mehr aus Ihrem Raspberry Pi 3 herausholen und die WireGuard-Bremse lösen. In diesem umfassenden Artikel zeigen wir Ihnen, wie Sie die Performance Ihres WireGuard-Servers auf dem Raspberry Pi 3 drastisch verbessern und die 50 Mbit/s-Marke locker knacken können. Machen Sie sich bereit, das volle Potenzial Ihres kleinen Kraftpakets zu entfesseln!
Das Nadelöhr verstehen: Warum ist der Raspberry Pi 3 mit WireGuard so „langsam”?
Bevor wir in die Lösungsansätze eintauchen, ist es wichtig zu verstehen, warum Ihr Raspberry Pi 3 überhaupt ins Schwitzen kommt. Die scheinbaren Leistungsgrenzen sind keine magische Barriere, sondern das Ergebnis spezifischer Hardware- und Software-Einschränkungen:
- Die CPU: Der Broadcom BCM2837 Chip im Raspberry Pi 3 ist ein Quad-Core ARM Cortex-A53 Prozessor mit 1,2 GHz (oder 1,4 GHz in der B+-Version). Obwohl es ein Quad-Core-Prozessor ist, sind kryptografische Operationen, wie sie WireGuard intensiv nutzt (insbesondere der ChaCha20-Poly1305 Algorithmus), oft nicht optimal über mehrere Kerne verteilt und können einen einzelnen Kern stark belasten. Dieser Kern wird dann zum primären Flaschenhals.
- Der RAM: Mit 1 GB LPDDR2 RAM ist der Arbeitsspeicher für WireGuard an sich ausreichend dimensioniert, stellt aber bei reiner VPN-Durchsatzbetrachtung selten das primäre Problem dar.
- Der Netzwerk-Port: Dies ist ein kritischer Punkt. Der Raspberry Pi 3 verfügt über einen 10/100 Mbit/s Ethernet-Port. Das bedeutet, selbst wenn Ihr Pi und Ihr Internetanschluss mehr hergeben würden, ist die physische Netzwerkschnittstelle auf maximal 100 Mbit/s beschränkt. Das ist eine absolute Obergrenze, die Sie niemals überschreiten können.
- Kernel-Implementation: WireGuard ist exzellent direkt in den Linux-Kernel integriert, was die Effizienz maximiert. Dennoch stößt auch die effizienteste Software an die Grenzen der zugrunde liegenden Hardware.
Die 30-50 Mbit/s, die Sie möglicherweise erleben, sind oft das Ergebnis einer Kombination aus CPU-Limitierung bei der Verschlüsselung und der Bandbreitenbegrenzung durch den 100 Mbit/s Ethernet-Port, wobei die CPU der Hauptschuldige für die *unter* 100 Mbit/s liegende Leistung ist.
Baseline-Messung: Wissen, wo Sie stehen
Bevor wir Änderungen vornehmen, ist es entscheidend, eine Ausgangsbasis zu haben. So können Sie später den Erfolg Ihrer Optimierungsmaßnahmen quantifizieren. Wir nutzen dafür iperf3
, ein bewährtes Tool zur Messung der Netzwerkdurchsatzrate.
Vorbereitung:
iperf3
auf dem Raspberry Pi installieren:sudo apt update sudo apt install iperf3
iperf3
auf einem Client installieren: Installieren Sieiperf3
auch auf einem Rechner in Ihrem lokalen Netzwerk (LAN), der mit Gigabit-Ethernet und einer schnellen CPU ausgestattet ist. Dieser Client wird die Tests initiieren.
Durchführung der Messung:
- Starten Sie den
iperf3
Server auf dem Raspberry Pi:iperf3 -s
- Führen Sie den Test vom Client aus durch: Verbinden Sie Ihren Client über WireGuard mit Ihrem Raspberry Pi. Sobald die VPN-Verbindung steht, öffnen Sie ein Terminal auf dem Client und führen Sie den Test aus. Ersetzen Sie
<IP_DES_RASPI_IM_WG_NETZ>
durch die WireGuard-IP-Adresse Ihres Raspberry Pi (z.B. 10.6.0.1):iperf3 -c <IP_DES_RASPI_IM_WG_NETZ> -P 8 -t 30
-P 8
: Verwendet 8 parallele Streams, um die maximale Bandbreite zu testen.-t 30
: Führt den Test für 30 Sekunden durch.
Notieren Sie sich die Ergebnisse. Das ist Ihre Ausgangsleistung, die wir jetzt verbessern wollen!
Die WireGuard-Bremse lösen: Schritt für Schritt zur höheren Leistung
Jetzt geht es ans Eingemachte! Wir werden verschiedene Bereiche optimieren, um die Performance Ihres Raspberry Pi 3 zu maximieren.
1. Software-Grundlagen optimieren:
a) Betriebssystem und Kernel auf dem neuesten Stand halten
Ein aktuelles System ist das A und O für Stabilität und Performance. Neuere Kernel-Versionen enthalten oft Optimierungen für Kryptografie-Operationen und bessere Hardware-Unterstützung. Nutzen Sie am besten eine „Lite”-Version von Raspberry Pi OS, da eine grafische Oberfläche unnötige Ressourcen verbraucht.
sudo apt update
sudo apt upgrade -y
sudo apt full-upgrade -y
sudo rpi-update # Optional, für den allerneuesten Kernel, kann aber zu Instabilität führen. Nur nutzen, wenn Probleme auftreten.
sudo reboot
Achtung bei rpi-update
: Dieser Befehl installiert den neuesten (oft experimentellen) Kernel. Im Normalfall ist apt upgrade
ausreichend. Nur wenn Sie wirklich die allerneuesten Kernel-Optimierungen benötigen und bereit sind, eventuelle Instabilitäten zu tolerieren, sollten Sie rpi-update
verwenden.
b) Unnötige Dienste deaktivieren
Jeder Dienst, der im Hintergrund läuft, verbraucht CPU-Zyklen und RAM. Schalten Sie alles ab, was Sie nicht benötigen. Zum Beispiel Bluetooth oder WLAN, wenn Sie ausschließlich Ethernet nutzen.
sudo systemctl disable bluetooth.service
sudo systemctl disable hciuart.service # Für Bluetooth
sudo systemctl disable whatever_service_you_dont_need.service # Beispiel: apache2, nginx, samba, ...
Seien Sie hier vorsichtig und deaktivieren Sie nur Dienste, bei denen Sie sicher sind, dass sie nicht für den stabilen Betrieb Ihres WireGuard-Servers oder anderer essenzieller Funktionen benötigt werden.
2. Hardware-Leistung ausreizen: CPU-Overclocking
Dies ist eine der effektivsten Maßnahmen, um die CPU-Leistung zu steigern, da die Verschlüsselung stark CPU-abhängig ist. Standardmäßig läuft der Raspberry Pi 3 mit 1,2 GHz (oder 1,4 GHz für den B+). Mit Overclocking können Sie diese Taktrate erhöhen.
Wichtiger Hinweis: Overclocking kann die Lebensdauer Ihres Raspberry Pi verkürzen und zu Instabilität führen, wenn nicht ausreichend gekühlt wird. Gehen Sie schrittweise vor und überwachen Sie die Temperatur!
a) Den Raspberry Pi übertakten:
- Öffnen Sie das Konfigurationstool:
sudo raspi-config
- Navigieren Sie zu „3 Performance Options”.
- Wählen Sie „P2 Overclock”.
- Wählen Sie einen höheren Takt. Für den Raspberry Pi 3 B ist ein stabiler Wert oft
1300 MHz
(von Standard 1200 MHz). Für den Raspberry Pi 3 B+ können Sie versuchen, von 1400 MHz auf1450 MHz
oder1500 MHz
zu gehen. - Bestätigen Sie und beenden Sie
raspi-config
. Starten Sie neu, wenn Sie dazu aufgefordert werden.
b) Kühlung sicherstellen:
Wenn Sie übertakten, ist eine effektive Kühlung unerlässlich. Passive Kühlkörper sind ein Minimum, ein kleiner Lüfter ist bei Overclocking sehr zu empfehlen, um thermisches Throttling zu verhindern (bei dem die CPU ihre Leistung drosselt, um Überhitzung zu vermeiden). Überwachen Sie die Temperatur mit:
vcgencmd measure_temp
Die CPU-Temperatur sollte idealerweise unter 70-75°C bleiben, besonders unter Last.
3. Netzwerk-Parameter anpassen: sysctl-Tweaks
Das Linux-Kernel-Netzwerk-Subsystem bietet zahlreiche Parameter, die über sysctl
angepasst werden können. Einige davon können die Netzwerk-Performance positiv beeinflussen, indem sie zum Beispiel die Puffergrößen erhöhen.
- Öffnen Sie die
sysctl.conf
-Datei:sudo nano /etc/sysctl.conf
- Fügen Sie am Ende der Datei die folgenden Zeilen hinzu (oder ändern Sie sie, falls vorhanden):
# Erhöhen der maximalen Puffergrößen für Sockets net.core.rmem_default = 262144 net.core.rmem_max = 8388608 net.core.wmem_default = 262144 net.core.wmem_max = 8388608 # Erhöhen der TCP-Puffergrößen net.ipv4.tcp_rmem = 4096 87380 8388608 net.ipv4.tcp_wmem = 4096 65536 8388608 # Erhöhen der UDP-Puffergrößen (relevant für WireGuard) net.ipv4.udp_mem = 65536 131072 262144 # Anpassung des TCP-Congestion-Control-Algorithmus # BBR ist oft eine gute Wahl für WAN-Verbindungen mit hoher Latenz/Paketverlust # Prüfen, ob BBR verfügbar ist: ls /lib/modules/$(uname -r)/kernel/net/ipv4 # Wenn nicht, kann es mit 'sudo modprobe tcp_bbr' geladen werden net.core.default_qdisc = fq net.ipv4.tcp_congestion_control = bbr # Optional: Disable ECN (Explicit Congestion Notification) if it causes issues # net.ipv4.tcp_ecn = 0 # net.ipv4.udp_ecn = 0
- Speichern und schließen Sie die Datei (
Strg+O
,Enter
,Strg+X
). - Laden Sie die neuen sysctl-Einstellungen:
sudo sysctl -p
Diese Einstellungen erhöhen die Puffer für eingehende und ausgehende Datenströme, was besonders bei schnellen Verbindungen und höheren Latenzen helfen kann, Stauungen zu vermeiden und den Durchsatz zu verbessern. Der BBR-Algorithmus (Bottleneck Bandwidth and RTT) für TCP-Staukontrolle kann die Performance über das Internet verbessern, auch wenn WireGuard UDP nutzt, da viele nachgelagerte Verbindungen TCP verwenden.
4. WireGuard-spezifische Einstellungen: MTU anpassen
Die Maximum Transmission Unit (MTU) ist die größte Paketgröße, die über ein Netzwerk gesendet werden kann, ohne fragmentiert zu werden. WireGuard hat eine Standard-MTU von 1420 Bytes (1500 Bytes Ethernet-MTU abzüglich 80 Bytes WireGuard-Overhead). Eine nicht optimale MTU kann zu Fragmentierung und damit zu Leistungseinbußen führen.
- Experimentieren Sie mit der MTU: Die optimale MTU kann je nach Ihrem Internetanbieter variieren. Werte wie
1380
oder1420
sind gängig.- Um die MTU zu testen, können Sie sie direkt im
[Interface]
-Abschnitt Ihrerwg0.conf
auf dem Raspberry Pi anpassen:[Interface] ... MTU = 1380 # Oder 1420, etc. ...
- Nach der Änderung müssen Sie den WireGuard-Dienst neu starten:
sudo systemctl restart wg-quick@wg0
- Um die MTU zu testen, können Sie sie direkt im
- Überprüfen Sie die aktuelle MTU:
ip link show wg0
Experimentieren Sie mit verschiedenen Werten und führen Sie nach jeder Änderung einen iperf3
-Test durch, um die Auswirkungen zu messen. Beachten Sie, dass eine zu kleine MTU zu Overhead führt, eine zu große zu Fragmentierung, beides senkt die Performance.
5. DNS-Optimierung
Auch wenn es nicht direkt den Durchsatz beeinflusst, kann ein schneller und zuverlässiger DNS-Server die allgemeine Wahrnehmung der Geschwindigkeit verbessern und Latenzen reduzieren. Verwenden Sie schnelle öffentliche DNS-Server wie die von Google (8.8.8.8, 8.8.4.4) oder Cloudflare (1.1.1.1, 1.0.0.1) in Ihrer WireGuard-Konfiguration oder direkt im Raspberry Pi.
6. Hardware-Überlegungen: Die Stromversorgung
Ein oft übersehener Faktor ist die Stromversorgung. Ein instabiles oder unterdimensioniertes Netzteil kann zu Leistungsproblemen führen, insbesondere wenn der Pi unter Last läuft oder übertaktet wird. Stellen Sie sicher, dass Sie ein hochwertiges Netzteil verwenden, das mindestens 2.5A (für den Pi 3 B) oder 3.0A (für den Pi 3 B+) bei 5V liefern kann. Offizielle Raspberry Pi Netzteile sind hier immer eine gute Wahl.
Erneute Messung und Erwartungen
Nachdem Sie all diese Optimierungen vorgenommen haben, ist es Zeit für einen erneuten iperf3
-Test. Führen Sie die Messung genauso durch wie zuvor:
iperf3 -s # auf dem Pi
iperf3 -c <IP_DES_RASPI_IM_WG_NETZ> -P 8 -t 30 # auf dem Client
Vergleichen Sie die Ergebnisse mit Ihrer Baseline. Sie sollten eine deutliche Steigerung sehen! Realistischerweise können Sie mit diesen Maßnahmen auf einem Raspberry Pi 3 B/B+ stabil 70-90 Mbit/s erreichen. Einige Nutzer berichten sogar von Spitzenwerten nahe der 100 Mbit/s-Grenze des Ethernet-Ports, auch wenn dies möglicherweise nicht dauerhaft stabil ist.
Wichtige Einschränkung: Der 100 Mbit/s Ethernet-Port des Raspberry Pi 3 ist eine harte physische Grenze. Sie werden niemals dauerhaft über diese Grenze hinauskommen. Wenn Sie Gigabit-Geschwindigkeiten benötigen, ist ein Umstieg auf einen Raspberry Pi 4 (oder neuer) unumgänglich, da dieser über einen echten Gigabit-Ethernet-Port und eine wesentlich leistungsstärkere CPU verfügt.
Fazit: Das Maximum aus dem Raspberry Pi 3 herausholen
Der Raspberry Pi 3 mag nicht mehr das neueste Modell sein, aber er ist nach wie vor ein äußerst fähiges Gerät. Durch gezieltes Verständnis der Engpässe und konsequente Optimierung – von Software-Updates über Overclocking bis hin zu sysctl-Tweaks – können Sie die WireGuard-Performance drastisch steigern. Die Zeiten, in denen 50 Mbit/s ein unüberwindbares Hindernis schienen, sind vorbei.
Sie haben gelernt, wie Sie die CPU entlasten, die Netzwerkparameter feinabstimmen und eine solide Basis für maximale Leistung schaffen. Auch wenn Sie keine Gigabit-Geschwindigkeiten erreichen werden, ist eine stabile Verbindung mit 70-90 Mbit/s für viele Anwendungsfälle – wie sicheres Surfen, Streaming und Remote-Arbeit – mehr als ausreichend. Ihr „alter” Raspberry Pi 3 kann immer noch ein hervorragender, schneller WireGuard-Server sein.
Experimentieren Sie mit den Einstellungen, finden Sie die besten Werte für Ihr Setup und genießen Sie die freigeschaltete Geschwindigkeit. Teilen Sie Ihre Erfolge und Tipps in den Kommentaren!