Zum Inhalt springen
labkompass

Guides · OPNsense

WireGuard auf OPNsense einrichten: Road-Warrior-VPN Schritt für Schritt

WireGuard-VPN auf OPNsense für den Zugriff von unterwegs: Instanz, Peers, QR-Code fürs Smartphone, Firewall-Regeln, FritzBox-Portweiterleitung — und die Checkliste, wenn der Handshake nicht zustande kommt.

Von Niclas Hennrich · Veröffentlicht: · aktualisiert · 4 Min. Lesezeit


Kurz gesagt: WireGuard ist seit OPNsense 24.1 fest im Kern integriert — du legst unter VPN → WireGuard eine Instanz mit Port 51820 an, erstellst pro Gerät einen Peer und erlaubst eingehend UDP 51820 auf dem WAN. Hinter einer FritzBox kommt eine Portfreigabe (oder Exposed Host) plus DynDNS dazu.

WireGuard ist der einfachste Weg, von unterwegs sicher ins Homelab zu kommen: schlank, schnell, in OPNsense fest integriert. Dieser Guide richtet ein klassisches Road-Warrior-Setup ein — Smartphone/Laptop wählen sich ins Heimnetz ein.

Vorbereitung #

  • OPNsense aktuell halten — WireGuard ist seit OPNsense 24.1 fest im Kern integriert (kein Plugin mehr nötig).
  • Du brauchst einen Weg, deinen Anschluss von außen zu erreichen: eine öffentliche IPv4, DS-Lite mit IPv6 oder einen dynamischen DNS-Namen (DynDNS). Hinter einer FritzBox zusätzlich: Portweiterleitung (unten).

Schritt 1: WireGuard-Instanz anlegen #

Unter VPN → WireGuard → Instances eine neue Instanz erstellen:

  • Listen Port: 51820 (frei wählbar, merken)
  • Tunnel Address: ein eigenes Transfernetz, z. B. 10.10.10.1/24
  • Schlüsselpaar generieren lassen — der öffentliche Schlüssel wird gleich in den Clients gebraucht.

Nach dem Speichern WireGuard aktivieren (Haken Enable + Apply).

Schritt 2: Peer pro Gerät anlegen #

Jedes Endgerät bekommt unter VPN → WireGuard → Peer generator bzw. Peers einen eigenen Eintrag:

  • Allowed IPs: genau eine Adresse aus dem Tunnelnetz, z. B. 10.10.10.2/32 fürs erste Gerät, 10.10.10.3/32 fürs zweite.
  • Der Peer-Generator erstellt direkt einen QR-Code für die WireGuard-App — dort sind Endpoint, Schlüssel und DNS schon eingetragen.

In der Client-Konfiguration entscheidet AllowedIPs über den Modus:

  • 0.0.0.0/0 — kompletter Traffic läuft durch den Tunnel (unterwegs im offenen WLAN sinnvoll).
  • 192.168.10.0/24, 10.10.10.0/24 — Split-Tunnel: nur Heimnetz-Ziele gehen durch den Tunnel.

WireGuard-QR-Code erstellen: die Config aufs Smartphone #

Der schnellste Weg vom Peer zum eingerichteten Smartphone ist der QR-Code — die WireGuard-App liest damit die komplette Konfiguration in einem Scan ein, statt dass du Schlüssel und Adressen abtippst:

  1. Beim Anlegen des Peers: Der Peer-Generator zeigt den QR-Code direkt im Dialog an. Jetzt scannen — in der WireGuard-App auf Android über Plus → Von QR-Code scannen, auf dem iPhone über Tunnel hinzufügen → Aus QR-Code erstellen.
  2. Später noch einmal nötig? OPNsense kann denselben QR-Code nicht erneut anzeigen — die Firewall speichert den privaten Schlüssel des Clients bewusst nicht. Deshalb: Die erzeugte Konfiguration beim Anlegen als .conf-Datei sichern.
  3. Aus der Datei wieder ein QR-Code: Unser WireGuard-QR-Code-Generator macht aus der gesicherten .conf lokal im Browser wieder einen scanbaren Code — die Konfiguration mit dem privaten Schlüssel verlässt dein Gerät dabei nicht.

Scannt die App den Code, verbindet sich aber nicht? Das ist kein QR-Problem — der Code transportiert nur die Konfiguration. Ab da gilt die Troubleshooting-Checkliste unten.

Schritt 3: Firewall-Regeln #

Zwei Regeln sind nötig:

  1. WAN: eingehend UDP auf Port 51820 erlauben (Destination: WAN address). Ohne diese Regel kommt kein Handshake zustande.
  2. WireGuard-Interface: Was dürfen eingewählte Clients? Für den Anfang eine Allow-Regel auf die Netze, die erreichbar sein sollen — später gern feiner (z. B. nur Management-VLAN für dein eigenes Gerät).

Empfehlenswert: Der WireGuard-Instanz unter Interfaces → Assignments ein eigenes Interface zuweisen — dann tauchen die Regeln sauber getrennt auf und Routing/NAT verhalten sich vorhersehbar.

Schritt 4: Hinter der FritzBox — Portweiterleitung #

Läuft die OPNsense hinter einer FritzBox, muss UDP 51820 dort ankommen: Entweder ist die OPNsense als Exposed Host eingetragen (dann ist nichts weiter zu tun), oder du legst eine gezielte Portfreigabe an: Internet → Freigaben → Portfreigabe, Protokoll UDP, Port 51820 → interne IP der OPNsense.

Als Endpoint im Client trägst du deinen DynDNS-Namen ein. Die FritzBox kann DynDNS direkt aktualisieren (Internet → Freigaben → DynDNS) — alternativ übernimmt das die OPNsense per ddclient-Plugin.

Troubleshooting: kein Handshake? #

Die Checkliste in der Reihenfolge der häufigsten Ursachen:

  1. Kommt UDP 51820 überhaupt an? FritzBox-Freigabe auf die richtige interne IP? Exposed Host aktiv?
  2. DS-Lite-Anschluss? Ohne öffentliche IPv4 ist dein Anschluss über IPv4 von außen nicht erreichbar. Optionen: IPv6-Endpoint verwenden (Client braucht dann IPv6), beim Provider echte IPv4 anfragen — oder der Umweg über ein Relay (z. B. einen kleinen VPS als WireGuard-Hop).
  3. WAN-Regel vergessen? Der Klassiker: Instanz läuft, aber die Firewall verwirft den Handshake.
  4. Falscher öffentlicher Schlüssel oder Tippfehler beim Endpoint — WireGuard meldet keine Fehler, es schweigt einfach. Ein Blick unter VPN → WireGuard → Status zeigt, ob je ein Handshake ankam.
  5. AllowedIPs-Kollision: Zwei Peers mit derselben Allowed-IP verdrängen sich gegenseitig — jede Client-IP nur einmal vergeben.
  6. Hinter CGNAT im Mobilfunk funktioniert der eingehende Weg nie — für Road-Warrior egal (der Client baut die Verbindung auf), relevant nur für Site-to-Site.

Wie weiter? #

Läuft der Tunnel, lohnen sich zwei Ausbaustufen: DNS durch den Tunnel (im Client die OPNsense/Unbound als DNS eintragen — dann funktionieren interne Hostnamen und Werbefilter auch unterwegs) und Site-to-Site zu einem zweiten Standort oder VPS.

Häufige Fragen

Wie richte ich WireGuard auf OPNsense ein?
Unter VPN → WireGuard eine Instanz mit Listen Port 51820 und einem eigenen Tunnelnetz anlegen, pro Endgerät einen Peer mit genau einer Allowed-IP aus dem Tunnelnetz erstellen und zwei Firewall-Regeln setzen: eingehend UDP 51820 auf dem WAN erlauben und den Zugriff der Clients auf die gewünschten Netze freigeben. Seit OPNsense 24.1 ist WireGuard fest im Kern integriert, ein Plugin ist nicht mehr nötig.
Was bedeutet Road Warrior bei OPNsense und WireGuard?
Road Warrior (wörtlich: Straßenkrieger) ist der klassische Name für ein VPN-Setup, bei dem sich einzelne mobile Geräte — Smartphone, Laptop — von wechselnden Orten aus ins feste Heimnetz einwählen. Die Gegenseite ist immer dieselbe: deine OPNsense zu Hause. Das Gegenstück heißt Site-to-Site, dort verbinden sich zwei feste Standorte dauerhaft miteinander. Dieser Guide baut genau das Road-Warrior-Setup: OPNsense als WireGuard-Server, deine Geräte als Peers.
Warum kommt bei WireGuard kein Handshake zustande?
Die häufigsten Ursachen: UDP 51820 kommt nicht an (FritzBox-Freigabe auf die falsche IP oder Exposed Host nicht aktiv), die WAN-Regel fehlt, der öffentliche Schlüssel ist falsch oder der Endpoint vertippt. WireGuard meldet keine Fehler, es schweigt einfach — unter VPN → WireGuard → Status siehst du, ob je ein Handshake ankam. Bei DS-Lite ohne öffentliche IPv4 ist der Anschluss über IPv4 von außen gar nicht erreichbar.
Funktioniert WireGuard hinter einer FritzBox?
Ja. UDP-Port 51820 muss per Portfreigabe (Internet → Freigaben → Portfreigabe) an die interne IP der OPNsense weitergeleitet werden — oder die OPNsense ist als Exposed Host eingetragen. Als Endpoint im Client trägst du einen DynDNS-Namen ein, den die FritzBox oder die OPNsense per ddclient-Plugin aktuell hält.
Wie erstelle ich in OPNsense einen WireGuard-QR-Code für mein Smartphone?
Der Peer-Generator (VPN → WireGuard → Peer generator) zeigt beim Anlegen eines Peers direkt einen QR-Code an, den die WireGuard-App auf Android und iOS scannen kann. Wichtig: Der Code erscheint nur in diesem Moment — OPNsense speichert den privaten Schlüssel des Clients bewusst nicht und kann den QR-Code später nicht erneut anzeigen. Liegt die Konfiguration nur noch als .conf-Datei vor, macht unser WireGuard-QR-Code-Generator daraus lokal im Browser wieder einen scanbaren Code.
Was trage ich bei WireGuard unter AllowedIPs ein?
In der Client-Konfiguration entscheidet AllowedIPs über den Modus: 0.0.0.0/0 schickt den kompletten Traffic durch den Tunnel, sinnvoll im offenen WLAN unterwegs. Für Split-Tunnel trägst du nur Heimnetz und Tunnelnetz ein. Auf der OPNsense-Seite bekommt jeder Peer genau eine Adresse aus dem Tunnelnetz — zwei Peers mit derselben Allowed-IP verdrängen sich gegenseitig.
Kann ich mit WireGuard auf OPNsense auch zwei Standorte verbinden (Site-to-Site)?
Ja, das Prinzip ist dasselbe wie im Road-Warrior-Setup: Beide Firewalls bekommen eine WireGuard-Instanz und tragen sich gegenseitig als Peer ein — mit den LAN-Netzen der Gegenseite in den Allowed-IPs statt einer einzelnen Tunnel-Adresse. Mindestens ein Standort muss von außen erreichbar sein (öffentliche IP oder DynDNS, hinter einer FritzBox plus Portfreigabe), und auf beiden Seiten braucht es Firewall-Regeln für die fremden Netze. Wichtig: Die Subnetze der beiden Standorte dürfen sich nicht überschneiden.
Geht WireGuard auch mit DS-Lite ohne öffentliche IPv4?
Über IPv4 ist dein Anschluss dann von außen nicht erreichbar. Die Optionen: einen IPv6-Endpoint verwenden (der Client braucht dann IPv6), beim Provider eine echte IPv4 anfragen — oder der Umweg über ein Relay, etwa einen kleinen VPS als WireGuard-Hop.

Teil des Themen-Hubs OPNsense im Homelab · Abschnitt „Remote Access“

Weiterlesen