WireGuard auf macOS als Server einrichten

1) Voraussetzungen

  • macOS (Mac mini als Server, optional weitere Macs/PCs/Smartphones als Clients)
  • Routerzugriff (Vodafone-Box o. ä.) für Portweiterleitung UDP
  • Optional: No-IP (DynDNS), falls keine feste öffentliche IP

2) Installation

  • WireGuard aus dem Mac App Store oder von der offiziellen Seite installieren (Server und Client).

3) Server-Tunnel am Mac mini anlegen

  1. WireGuard öffnen → unten links „+“Add Empty Tunnel…
  2. Es erscheint sofort eine Konfig mit [Interface] und einem automatisch generierten PrivateKey.

Oben in der App (klein/blass) steht der zugehörige Public Key.

Wichtig (Schlüsselpaar):
– Dieses Paar gehört zusammen.
PrivateKey bleibt geheim auf dem Server.
PublicKey wird später am Client eingetragen.

  1. Ergänze im [Interface]:
   [Interface]
   PrivateKey = <auto-erzeugt>
   Address    = 10.10.10.1/24
   ListenPort = 51820   # frei wählbar, Standardbeispiel
  1. (Optional) In den App-Einstellungen On-Demand / Ethernet aktivieren → startet beim Booten.
  1. Speichern, aber noch nicht aktivieren.

4) Client(s) anlegen & korrekter Schlüsseltausch

Auf jedem Client (macOS, iOS, Windows, Android):

  1. WireGuard installieren → Neuen Tunnel: Add Empty Tunnel…

Dabei erzeugt die App automatisch ein Schlüsselpaar:
Client-PrivateKey bleibt auf dem Client.
Client-PublicKey wird am Server eingetragen.

  1. Client-Interface:
   [Interface]
   PrivateKey = <Client-PrivateKey>
   Address    = 10.10.10.2/24   # nächster freier Host im /24
  1. Server-Tunnel → für jeden Client einen Peer ergänzen:
   [Peer]
   PublicKey  = <Client-PublicKey>
   AllowedIPs = 10.10.10.2/32

– Für weitere Clients entsprechend .3/32, .4/32 usw.
– Keine Duplikate bei IPs!

  1. Client-Tunnel → Server als Peer eintragen:
   [Peer]
   PublicKey = <Server-PublicKey>
   AllowedIPs = 10.10.10.0/24
   Endpoint   = <dein-noip-hostname>:51820

Merksatz (häufiger Stolperstein):

  • Server bekommt: Client-PublicKey (im Server-[Peer]).
  • Client bekommt: Server-PublicKey (im Client-[Peer]).
  • Private Keys werden niemals ausgetauscht.


5) DynDNS (No-IP) & Vodafone-Portfreigabe

Damit der Client dich „von außen“ findet und erreicht:

  1. No-IP (DynDNS) einrichten → Hostname wie meinname.no-ip.org zeigt auf deinen Internetanschluss.
  2. In der Vodafone-Box eine Portweiterleitung für UDP anlegen:

Externer Port: 51820 (oder dein ListenPort)
Interne IP: LAN-IP deines Mac mini
Interner Port/Protokoll: 51820/UDP

  1. Prüfe, dass keine zweite Firewall/NAT-Kaskade die Verbindung blockiert.

(WireGuard nutzt UDP; TCP funktioniert hier nicht.)

Mit diesem Setup gelingt z. B. der VPN-Zugriff von außen per No-IP direkt nach Hause auf den Mac mini; die Vodafone-Portfreigabe sorgt für die saubere Weiterleitung.


6) Aktivieren & Testen

  1. Server-Tunnel am Mac mini Activate.
  2. Client-Tunnel Activate.
  3. Ping-Test vom Client:
   ping 10.10.10.1

Erhältst du Antworten, steht der Tunnel.


7) Häufige Fehler & Fixes

  • Kein Connect: Server-Tunnel nicht aktiv → Activate.
  • Timeout/Handshake fehlt: Router/Firewall blockt → UDP-Port exakt freigeben (externer ↔ interner Port).
  • Falscher Key: Prüfe, dass am Server der Client-PublicKey steht – und am Client der Server-PublicKey.
  • Keine Routen:

– Am Server-Peer pro Client /32 (z. B. 10.10.10.2/32).
– Am Client-Peer die gesamte VPN-Range (10.10.10.0/24).

  • DynDNS löst nicht: No-IP Host prüfen/aktualisieren; ggf. Client-DNS-Cache leeren.

8) Minimal-Beispiele

Server (Mac mini):

[Interface]
PrivateKey = <Server-PrivateKey>
Address    = 10.10.10.1/24
ListenPort = 51820

[Peer]
PublicKey  = <Client-PublicKey>
AllowedIPs = 10.10.10.2/32

Client (Laptop):

[Interface]
PrivateKey = <Client-PrivateKey>
Address    = 10.10.10.2/24

[Peer]
PublicKey = <Server-PublicKey>
AllowedIPs = 10.10.10.0/24
Endpoint   = meinname.no-ip.org:51820


9) Checkliste

  • [ ] Server-Tunnel erstellt und gespeichert (WireGuard-App).
  • [ ] Schlüsselpaare korrekt zugeordnet: Server behält PrivateKey; Clients behalten ihren PrivateKey.

Server-Peer enthält jeweils den Client-PublicKey; Client-Peer enthält den Server-PublicKey.

  • [ ] Adressen eindeutig: Server 10.10.10.1/24; jeder Client eine eigene 10.10.10.x/24 (keine Duplikate).
  • [ ] AllowedIPs korrekt:

Am Server-Peer je Client 10.10.10.x/32; am Client-Peer 10.10.10.0/24.

  • [ ] Endpoint gesetzt: <dein-noip-hostname>:51820 (oder eigener ListenPort).
  • [ ] DynDNS (No-IP) zeigt auf deinen Anschluss; Hostname aktuell.
  • [ ] Vodafone-Portweiterleitung (UDP) aktiv: externer 51820/UDPMac-mini-IP:51820/UDP.
  • [ ] Lokale Firewall (macOS/Third-Party) blockiert UDP nicht für den gewählten Port.
  • [ ] Beide Tunnel aktiviert (Server & Client).
  • [ ] Handshake sichtbar (WireGuard-UI: Latest Handshake vorhanden) und Bytes zählen hoch.
  • [ ] Ping-Test: Vom Client ping 10.10.10.1 erfolgreich.
  • [ ] (Optional) Auto-Start/On-Demand auf dem Server aktiviert.