Auf dem Handy läuft keine VPN-App. Auf dem Laptop auch nicht, am Fernseher schon gar nicht. Die Geräte kennen nur das LAN. Die pfSense ist der Weg nach draußen, und ihre Default-Route zeigt auf einen NordVPN-WireGuard-Tunnel. Solange der steht, sehen die Gegenstellen die Exit-IP von NordVPN, nicht die des Anschlusses.
Stand Oktober 2026, pfSense 2.8.1, Paket pfSense-pkg-WireGuard 0.2.9_6. Handshake vor ein paar Sekunden, Transfer-Zähler im Terabyte-Bereich. Das ist der Alltagsweg, kein Testaufbau.
Dafür brauchst du ein aktives NordVPN-Abo. Dieser Artikel beschreibt unsere manuelle WireGuard-Konfiguration. Die pfSense-Anleitung von NordVPN verwendet OpenVPN.
Du möchtest deinen Internetverkehr über NordVPN leiten? NordVPN-Abos und Konditionen ansehen.
Eine Route für das ganze Netz
Die Gateway-Group hat zwei Stufen. Tier 1 ist der Tunnel tun_wg0, Tier 2 das WAN. System → Routing → Default Gateway zeigt auf diese Gruppe. Die Kernel-Route dazu, heute nachgemessen:
0.0.0.0 10.5.0.2 UGS tun_wg0
Alles, was keine eigene Regel hat, folgt dieser Zeile. Telefon, Laptop, Drucker, das IoT-Zeug, die Firewall selbst. Du installierst den Client einmal an der Firewall, nicht vierzigmal auf den Geräten.
10.5.0.2 ist die Adresse, die NordVPN dem Tunnel gibt. Als Gateway in pfSense trägst du dieselbe Adresse ein, nicht 10.5.0.1. 10.5.0.1 ist deren Seite im Tunnel, die darfst du nur anpingen. dpinger hat sie als Monitor-Ziel. Steht 10.5.0.1 als Gateway in der Route, baut die Gruppe keine brauchbare Default-Route, und das LAN läuft am Tunnel vorbei, obwohl die Gruppe „online“ sagt.
Die vier Werte, sonst ist die Exit-IP wieder deine
| Was | Wert | Prüfung |
|---|---|---|
| Interface-Adresse | 10.5.0.2/16 | ifconfig tun_wg0 zeigt netmask 0xffff0000 |
| Gateway der Default-Route | 10.5.0.2 auf tun_wg0 | netstat -rn, Zeile 0.0.0.0 |
| Monitor-Ziel von dpinger | 10.5.0.1 | letztes Argument im dpinger-Prozess |
| Keepalive | 25 Sekunden | wg show tun_wg0 |
Die Maske setzt du am zugewiesenen Interface, nicht nur unter VPN → WireGuard → Tunnel. pfSense nimmt die Maske von der Interface-Zuweisung. Tunnel-Seite auf /16, Interface noch auf /32, und der Kernel behält /32. Dann antwortet 10.5.0.1, Internet aus dem LAN kommt nicht an. Nach dem Speichern muss ifconfig 0xffff0000 zeigen. Heute tut es das, Output-Errors auf dem Interface: 0.
Wie das aussieht, wenn einer der Werte falsch ist: Drei Pitfalls die deinen Tunnel killen und der Nachtrag zur Netzmaske /32. Dieselbe Interface-Falle, anderer Tunnel: WireGuard-Hub.
Was absichtlich nicht mitgeht
Zwei Hosts sind per route-to aufs WAN gepinnt. Ein Arbeitsrechner, ein Lautsprecher, der sich hinter dem VPN verschluckt. Dazu UDP für das eigene OpenVPN, das auf der Firewall terminiert. Der Rest folgt der Default-Route.
Kein Kill-Switch. Fällt der Tunnel aus und dpinger erreicht 10.5.0.1 nicht mehr, schiebt die Gruppe den Traffic aufs WAN. Die Geräte bleiben online, die Exit-IP ist dann wieder die des Anschlusses. Wer „lieber tot als ungeschützt“ will, muss eine Block-Regel bauen, die greift, wenn der Tunnel down ist. Die haben wir nicht.
Den aktuellen NordVPN-Server schreibe ich nicht rein. Die rotieren, ein Hostname von heute ist nächste Woche weg. wg show muss einen Handshake in den letzten Minuten zeigen, Peer auf Port 51820, Beschreibung ein *.nordvpn.com-Name.
Woher die WireGuard-Konfiguration kommt
Für die manuelle WireGuard-Konfiguration musst du nicht mehr zwingend über die CLI gehen (der alte CLI-Weg steht im Pitfall-Post). NordVPN beschreibt im Nord Account einen offiziellen manuellen Setup-Weg: Login → NordVPN → Advanced Settings → „Set up NordVPN manually". Dort öffnest du die Server recommendation, wählst einen Server (die Verified-Marke steht für nutzbare Server), gehst auf „Get setup configuration", wählst im Dropdown WireGuard und lädst mit „Download config" die .conf herunter. Den Linux-Weg mit wg-quick beschreibt die Linux-Anleitung.
Quellen (NordVPN Support): So findest du die Server-Konfigurationsdateien und manuelle Linux-Verbindung mit WireGuard. Den Konfigurationsdownload haben wir hier noch nicht mit einer neuen pfSense-Einrichtung getestet — die Beschreibung stammt von NordVPN, nicht aus diesem Tunnel.
Check
wg show tun_wg0
ifconfig tun_wg0
netstat -rn | grep '^0.0.0.0'
ps aux | grep dpinger | grep -v grep
netstat -idn | grep tun_wg0
Handshake frisch, Maske /16, Default-Route auf dem Tunnel, dpinger-Ziel 10.5.0.1, Output-Errors bei 0. Dann geht das LAN durch NordVPN. Fehlt eine Zeile, ist die Exit-IP nicht die, die du denkst.