VPN visuell erklärt

WireGuard und Tailscale – vom Schlüsselpaar bis zum Mesh

WireGuard ist ein schlanker VPN-Tunnel im Linux-Kernel: ein Schlüsselpaar pro Gerät, ein Handshake mit nur einem Roundtrip (1-RTT), dann verschlüsselte UDP-Pakete. Tailscale baut darauf ein Mesh-Netz: ein Koordinationsserver verteilt die öffentlichen Schlüssel, NAT-Traversal verbindet Geräte direkt – und wo das nicht klappt, springt ein DERP-Relay ein.

Internet (UDP)Peer A10.8.0.1🔑wg0 · :51820Peer B10.8.0.2🔑wg0 · Laptop🔒🔒🔒Typ 4 · receiver_index · counter · ChaCha20-Poly130532 Byte WireGuard-Overhead + UDP 8 + IP 20/40Handshake: 148 B → ← 92 B → danach Daten
148 B
Handshake Initiation (Typ 1)
92 B
Handshake Response (Typ 2)
64 B
Cookie Reply (Typ 3)
32 B
Overhead je Datenpaket (16 Kopf + 16 Tag)
1420
Standard-MTU = 1500 − 80
UDP 51820
üblicher ListenPort

🗺️ Lektionen

🔐 WireGuard in fünf Sätzen

  • Jedes Gerät besitzt ein Curve25519-Schlüsselpaar; der öffentliche Schlüssel ist seine Identität.
  • Ein Peer ist „öffentlicher Schlüssel + AllowedIPs (+ optional Endpoint)“ – das ist das ganze Routing (Cryptokey Routing).
  • Der Handshake folgt dem Noise-Muster IK mit Pre-Shared Key (Noise_IKpsk2) und wird alle 2 Minuten erneuert.
  • Daten werden mit ChaCha20-Poly1305 verschlüsselt, ein 64-Bit-Zähler dient als Nonce und schützt vor Replays.
  • Ohne gültige Authentisierung antwortet WireGuard nicht – der Port bleibt für Scanner stumm.

🕸️ Tailscale in fünf Sätzen

  • Die Datenebene ist WireGuard (Userspace-Implementierung wireguard-go im Dienst tailscaled).
  • Ein Koordinationsserver verteilt öffentliche Node-Keys, 100.x-Adressen und Regeln – er sieht keinen Datenverkehr.
  • STUN und gleichzeitiges Hole Punching verbinden Geräte hinter NAT direkt miteinander.
  • Klappt das nicht, laufen die (weiterhin Ende-zu-Ende verschlüsselten) Pakete über DERP-Relays per HTTPS.
  • Headscale ist eine Open-Source-Alternative zum Koordinationsserver zum Selbsthosten.
Alles läuft im Browser
Schlüssel werden mit @noble/curves lokal erzeugt, Routing-Entscheidungen und Paketgrößen werden live berechnet. Nichts davon wird an einen Server geschickt – trotzdem gilt: Für echte Tunnel am besten wg genkey direkt auf dem Gerät verwenden.