WireGuard ist der „neue“ VPN Server von Heute! Nicht das er als Open Source sowieso schon bei mir gewonnen hat, sondern er ist auch ein Leichtgewicht. Der schlanke SourceCode bringt ihm zusätzlich Performance, sodass wir alles an Board haben was wir brauchen.
Zusammengefasst, WireGuard ist ein sehr einfacher, sehr sicherer und sehr schneller VPN Server für alle möglichen Plattformen und Betriebssystemen.
Im nachfolgenden Video erkläre ich euch einiges zu WireGuard und installieren die Variante mit Client-to-Server Kommunikation.
Anleitung: WireGuard VPN Server
Schritt 1: Auf dem SERVER und CLIENTEN ausführen
sh -c "echo 'deb http://deb.debian.org/debian buster-backports main contrib non-free' > /etc/apt/sources.list.d/buster-backports.list" apt update apt install linux-headers-$(uname --kernel-release) apt install wireguard
nano /etc/sysctl.conf # <- entfernen bei der Zeile "net.ipv4.ip_forward=1" und speichern sysctl -p
cd /etc/wireguard/ umask 077; wg genkey | tee privatekey | wg pubkey > publickey cat privatekey cat publickey chmod 600 /etc/wireguard/privatekey
Schritt 2: Nur auf dem SERVER ausführen
Konfigurationsdatei anlegen
nano /etc/wireguard/wg0.conf
[Interface] PrivateKey = <Dein privater Schlüssel [privatekey SERVER]> Address = 172.31.0.1/32 SaveConfig = true PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE ListenPort = 51820
In den Zeilen PostUP & PostDown das Interface anpassen wie es zu eurem System passt. Hier steht jetzt eth0, das kann aber bei euch anders sein. Prüfen könnt Ihr das mit „ip a„
Schritt 3: Nur auf dem CLIENTEN ausführen
Konfigurationsdatei anlegen
nano /etc/wireguard/wg0.conf
[Interface] PrivateKey = <Dein privater Schlüssel [privatekey CLIENT]> Address = 172.31.0.2/32 ##DNS = 10.0.0.1 [Peer] PublicKey = <Öffentlicher Schlüssel des [SERVERS]> Endpoint = <ServerIP oder Domain/FQDN>:51820 AllowedIPs = 0.0.0.0/0 PersistentKeepalive = 25
Schritt 4: Nur auf dem SERVER ausführen
wg set wg0 peer <öffentlicher Schlüssel des CLIENTEN> allowed-ips 172.31.0.2/32
Schritt 5: Auf dem SERVER und CLIENTEN ausführen
wg-quick up wg0 wg ##Das zeigt dir den Status der Verbindung an
Schritt 6: Autostart
Wenn WireGuard automatisch mit dem System starten soll, dann folgenden Befehl absetzen.
systemctl enable wg-quick@wg0
Das könnte dich auch interessieren:
5 Tipps für mehr Besucher auf der Webseite
PfSense installieren & konfigurieren. Einfach erklärt. Wie gehe ich vor?!
Die ersten 1000 YouTube Abonnenten. Wie hab ich es geschafft?
3. Januar 2021 um 18:05 Uhr
Hallo Dennis,
eine super Anleitung für die Einrichtung von Wirequard.
Bin auf der Suche nach einer Lösung, um über den VPN-Server – Zugang zum kompletten Netzwerk hinter dem Client zu bekommen. Im Internet gibt es verschiedene Lösungen, aber trotzdem habe ich keine funktionierende Lösung gefunden.
Auf dem Client habe ich zusätzlich bei AllowedIPs noch das Netz 192.168.10.0/24 eingetragen.
Nun kann ich leider nicht mehr den Client erreichen.
Hast Du eine Lösung für das Problem?
Viele Grüße,
Oliver
4. Januar 2021 um 08:36 Uhr
Ich werde in kürze noch ein Video machen auf Youtube zu einer Site-To-Site VPN Verbindung. Da sollte dann deine Frage auch beantwortet werden.
15. September 2022 um 13:18 Uhr
Wireguard mit IPv6 wäre verdammt interessant
4. Januar 2021 um 16:50 Uhr
Du hast einen kleinen Fehler in deiner Server Config. Da muss die IP hin das ist Richtig aber das Subnetz muss größer als 32 sein, beim Client ist /32 richtig.
4. Januar 2021 um 20:46 Uhr
Hallo Dennis, großes Lob für deinen Content! Vielleicht noch eine Idee für deine Wireguard Reihe: Einbinden von Android/iOS Clients mittels generiertem QR Code.
Grüße
Thorsten
4. Januar 2021 um 22:15 Uhr
Vielen Dank für Dein Video zum Thema Site-To-Site VPN-Verbindung.
Das war die Lösung für mein Problem.
VPN-Server: vServer von Hetzner
Ein RaspberryPI vom Heim-Netz (192.168.10.0/24) stellt die Verbindung zum VPN-Server her.
Auf dem RaspberryPI ist IP-Forwarding aktiviert.
VPN-Server: AllowedIPs: 192.168.10.0/24, 172.31.0.0/24
RaspberryPI: AllowedIPs: 172.31.0.0/24
Aber eine statische Route musste ich dafür in meinem Router nicht einbauen.
Viele Grüße,
Oliver
4. Januar 2021 um 22:26 Uhr
Muss der Schritt 4 und 5 nicht getauscht werden. In Deinem Video zeigst Du den Befehl „wg set …“ erst nach dem Befehl „wg-quick up wg0“. Wenn „wg-quick up wg0“ vor dem „wg set …“ ausgeführt wird, bekam ich eine Fehlermeldung.
9. April 2021 um 14:27 Uhr
Schritt 4 und 5 müssten anders herum, richtig? Sonst wäre wg0 noch nicht verfügbar. Im Video ist es anders herum.
Da bin ich auch gerade darüber gestolpert.
23. April 2021 um 22:51 Uhr
Servus zusammen, vllt kann ja einer von euch mir helfen und zwar habe ich folgendes Problem:
wenn ich mit dem VPN eine Verbindung über Wlan (öffentliches Wlan oder Wlan der Freundin)zum Server aufbaue und verbunden bin komme ich ins Internet (bekomme auch die IP des VPN Servers) aber hab leider kein zugriff auf das Heimnetzwerk, verstehe nicht wo der Fehler ist. Über Mobilesnetz funktioniert alles ohne Probleme.
VG
8. Oktober 2021 um 17:03 Uhr
Weiß nicht, ob sich vielleicht mittlerweile was geändert hat, aber ich musste am Server auch einen peer eintrag machen.
meiner sieht so aus:
[Peer]
PublicKey = -Hier pubkey vom client
AllowedIPs = 192.168.61.2/32 #Das ist die ip, die ich im Client eingetragen hab
10. März 2022 um 14:39 Uhr
Hallo Dennis,
ich schaue mir immer gerne deinen Content an. Auch wenn ich es dann leicht anders verwende.
Ich versuche gerade Wireguard über mein Home Assistant zu machen. Adguard läuft dort auch schon super.
Jetzt habe ich noch einen GLINET Beryl. Aber ich schaffe es nicht meine beiden Systeme kommunizieren zu lassen.
Dies ist meine Konfig.
peers:
– name: Sebastian
addresses:
– 10.10.10.2
allowed_ips: []
client_allowed_ips:
– 10.10.10.0/24
– 192.168.178.0/24
server:
addresses:
– 10.10.10.1
dns:
– 1.1.1.1
host: blablabla.duckdns.org
log_level: info
Wo liegt denn der Fehler?
Auch ein Setup über ein Android per QR Code scheitert immer schon am Handshake.
Vielen Dank für deine Hilfe!
Sebastian
1. August 2022 um 17:37 Uhr
Moin,
ich habe versucht nach deinem Tutorial WireGuard auf einem vServer zu installieren.
Bei dem Command `wg-quick up wg0` bekomme ich aber folgende Fehlermeldung:
„““
[#] ip link add wg0 type wireguard
RTNETLINK answers: Operation not supported
Unable to access interface: Protocol not supported
[#] ip link delete dev wg0
Cannot find device „wg0“
„““
Die Linux-Headers sind meines Verständnisses nach installiert, jedoch nicht über den Weg des Tutorials, sondern standardmäßig.
Kann mir da wer helfen?
MfG
13. Oktober 2022 um 16:46 Uhr
Hi Dennis,
ich habe ein Anwendungsfall, bei dem ich nicht weiterkomme. Vielleicht hast du einen Tipp für mich. Ich beabsichtige folgendes: Daheim habe ich eine pfSense mit Dual Wan. Vodafone mit bester IP (Business-Anschluss) und O2 via LTE mit CGNAT, sodass ein Portforwarding nicht funktioniert. Über den Vodafone-Anschluss existiert bereits eine Wireguard-Verbindung, die prima funktioniert. Ich habe Zugriff von mobilen Geräten auf das Heimnetzwerk.
Im Falle eines Ausfalls der Hauptleitung über Vodafone springt die 2. WAN-Leitung wunderbar ein. Dann funktioniert aber natürlich der Zugriff von Außen über Wireguard nicht mehr. Um das zu lösen habe ich nun einen Wireguard Server in der Hetzner Cloud installiert. Diesen nenne ich mal Wireguard-Jumphost. Die pfSense baut dorthin ein Netzwerk auf. Kann den Server via Tunnel-IP pingen und umgekehrt. Outbound ist das Netzwerk in der pfSense mit dem WAN2 (O2) gekoppelt.
Auf meinem Handy habe ich nun ebenfalls einen Tunnel eingerichtet, der eine Verbindung zum Jumphost aufbaut. Allerdings ist es mir nicht möglich auf mein Heimnetz zuzugreifen.
Ich hoffe ich habe es verständlich rübergebracht. Gern mache ich auch eine kleine Skizze.
Hast du eine Idee?
VG
Christian
26. Februar 2023 um 09:48 Uhr
Hallo,
Ich bin zu blöd dafür. So bei manchen Dingen habe ich bei Terminal Arbeit ein visuelles Vorstellungsvermögen, aber bei WireGuard stehe ich auf dem Schlauch. Meine 7490 braucht ewig bis es das 7.51 bekommt und ich möchte gerne mit WireGuard (falls es auf der FritzBox nicht so läuft) einen Plan B haben. Ich nutze einen Glinet Opal, der für uns reichen sollte im Urlaub (hoffentlich zügig mal Version 4 ): ) und viele VPN Anbieter haben ja Probleme mit VPN Anbietern (Sperren etc) – Können Sie vielleicht mal zeigen, wie man WireGuard mit UI auf dem Pi nutzen kann? Gibt es vielleicht irgendwo ein Image? Habe schon alles abgesucht. Probleme hatte ich auch mit dieser Blöden DynDns vor allem seitdem ich umgestellt wurde (Nerv) vielleicht habe ich etwas übersehen, habe aber alles mögliche schon abgeklappert und sehe den Wald vor lauter Bäumen nicht mehr.
Das wäre cool
Grüße Julwern
12. November 2023 um 17:33 Uhr
Hallo Dennis,
wunderbar deine Anleitungen. Habe mir gerade mal die Wireguard Anleitung (2021) angeschaut. Nun gibt es bereits ein Turnkey Modul von Wireguard bei Proxmox. Bedauerlicherweise bin ich nicht so fit wie du und ich schaue wie ein Schwein ins Uhrwerk bei der Konfiguration, weil ich nicht kapiere was da genau passiert. Es gibt andere Anleitungen unter Youtube die arbeiten immer über eine VM. Aber vielleicht ist Turnkey gar nicht die Methode der Wahl. Vielleicht gibt es mal ein Video über die Turnkey Welt und dann eben über Wireguard. Mit Dank
18. November 2023 um 14:51 Uhr
Der Hinweiss „Auf clienten und server ausgeführen“ stimmt nicht unbedingt. Man kann alle keys auch auf dem Server generieren. 1 Serverpublickey, 1 serverprivatekey, 1 clientpublickey und 1 clientprivetkey. Das hat mich viel zeit gekostet und war nicht deutlich genug erklärt.
Ich depp habe Stunden verbraten weil scheiss systemd informiert werden muss damit der vpn überhaupt funktioniert. Ich wollte den nicht automatisch gestartet haben. Minimum ist:
systemctl start wg-quick@wg0
…sonst geht garnix.
22. Februar 2024 um 13:00 Uhr
Hallo Dennis,
danke für deinen Content. Ist immer wieder sehenswert.
Ich habe WireGard auf meiner DS918+ erfolgrein installiert. Nur bekomme ich es nicht ans laufen, so wie meine Vorstellung ist.
Erwartetes Verhalten:
Bei einer Verbindung aus dem WAN ins private LAN sollen alle meine Server (Anwendungen) und Geräte (HardWare) unter mit den internen IP-Adressen (haben alle feste IP Adressen) erreichbar sein.
Beim aktiver VPN Verbindung soll das Surfen im Internet möglich sein und nach außen soll die (WAN) IP-Adresse des heimishen DSL Anschlisses sichtbar sein.
Ich habe schon Wochen damit verbracht verschiedenste PostUp und PostDown konfigurationen auszuprobieren. Allerdings funktionierte nichts von dem was ich mir im Netz ergoogelt habe.
Ich kann bei aufgebauter VPN Verbindung weder im Internet surfen, noch irgendetwas im heimischen LAN erreichen. Der UDP Port 51820 ist im Router offen und zeigt auf die IP des WireGuard.
Wäre Prima wenn du mir kurz sagen könntest, ob ich generrel auf dem Holzweg bin und die PostUp PostDown Geschichten hier fehl am Platz sind oder ich an einer anderen Stelle suchen muss?
Vorab vielen Dank
VG
Thomas