VPNSmith
Contabo-VPS
self-host-vpnINFO

WireGuard QR-Code: aus einer .conf erzeugen (qrencode)

Wandeln Sie eine WireGuard-.conf mit einem einzigen qrencode-Befehl in einen QR-Code um, oder erstellen Sie Konfigurationen und QR-Codes im Browser. Und warum der QR-Code Ihr privater Schlüssel ist.

Von Eric Gerard · Gründer · VPNSmith - Spezialist für selbstgehostete VPNs & DSGVO-VPS5 Min. LesezeitPhoto via Pexels

Affiliate-Hinweis: Dieser Beitrag enthält Affiliate-Links zu Contabo. Wenn Sie darüber einen VPS buchen, erhalten wir eine Provision, ohne dass Ihnen zusätzliche Kosten entstehen.

Einen base64-kodierten privaten Schlüssel über die Handytastatur einzutippen, ist so mühsam, dass viele Konfigurationen stattdessen über Chat-Apps verschicken, was noch schlechter ist. Der QR-Code existiert, um beides zu vermeiden.

Es ist ein einziger Befehl, und lesenswert ist vor allem, was nach dem Scannen passiert.

Noch keine Konfiguration oder gerade kein Terminal zur Hand? Unser WireGuard-Konfigurationsgenerator erstellt die Serverdatei und eine Client-Konfiguration pro Gerät, jeweils mit QR-Code, vollständig in Ihrem Browser: Die Schlüssel werden lokal mit Curve25519 erzeugt, und nichts wird an einen Server gesendet. Eine vorhandene .conf wandelt er nicht um; dafür ist qrencode (siehe unten) das richtige Werkzeug. Auch noch keinen Server? Die erzeugten Dateien laufen auf jedem VPS mit öffentlicher IPv4, etwa einem Contabo Cloud VPS 4 für 5,50 €/Monat (Affiliate-Link, 24 Monate Laufzeit, inkl. MwSt.).

QR-Code erzeugen

Installieren Sie den Encoder:

apt install qrencode      # Debian, Ubuntu
dnf install qrencode      # Fedora, RHEL

Dann, auf dem Rechner mit der Client-Konfiguration:

qrencode -t ansiutf8 < /etc/wireguard/client1.conf

Der Code erscheint im Terminal, gezeichnet aus Blockzeichen. Öffnen Sie WireGuard auf dem Telefon, fügen Sie einen Tunnel hinzu, wählen Sie das Scannen per QR-Code und richten Sie die Kamera auf den Bildschirm. Der Tunnel wird vollständig hinzugefügt, mit Name, Adressen, Schlüsseln und Peer.

Es gibt kein spezielles Format. Der QR-Code enthält die Konfigurationsdatei als Klartext. Alles, was einen QR-Code lesen kann, kann auch Ihre Konfiguration lesen.

Die Größe ist hier selten eine Einschränkung. Eine typische WireGuard-Client-Konfiguration umfasst einige hundert Bytes, und der QR-Standard reicht bis Version 40, einem Raster aus 177 × 177 Modulen, das bei der niedrigsten seiner vier Fehlerkorrekturstufen 2.953 Bytes aufnimmt. Eine Konfiguration passt bequem hinein, und genau deshalb reist das Ganze, privater Schlüssel inklusive, in einem einzigen Bild.

Für eine Datei statt einer Terminalzeichnung:

qrencode -o client1.png < /etc/wireguard/client1.conf

Lässt sich der Code nicht scannen, sind die üblichen Ursachen eine Terminalschrift, die die Blöcke verzerrt, oder eine sehr lange Konfiguration. -t utf8 statt ansiutf8 stellt den Code kleiner dar, und eine kleinere Schriftgröße im Terminal hilft mehr als alles andere.

Von hinten gesehen hält eine Frau ein Smartphone hoch, um einen großen, auf eine grüne Tafel gedruckten QR-Code zu fotografieren; ihr Bildschirm zeigt den Code im Rahmen einer spanischsprachigen Bezahl-App
Von hinten gesehen hält eine Frau ein Smartphone hoch, um einen großen, auf eine grüne Tafel gedruckten QR-Code zu fotografieren; ihr Bildschirm zeigt den Code im Rahmen einer spanischsprachigen Bezahl-App

Der entscheidende Punkt

Eine WireGuard-Client-Konfiguration enthält PrivateKey: einen 32-Byte-Schlüssel nach Curve25519, geschrieben als 44 base64-Zeichen in einer einzigen Zeile. Der QR-Code enthält die Konfiguration. Folglich ist der QR-Code der private Schlüssel, in einem Format, das dafür gemacht ist, von einer Kamera aus der Entfernung gelesen zu werden.

Das verändert, wie Sie damit umgehen sollten:

  • Fotografieren Sie ihn nicht. Ein Foto landet in Ihrer Galerie und auf den meisten Telefonen direkt in einer Cloud-Sicherung.
  • Verschicken Sie ihn nicht per Chat oder E-Mail. Beides sind gespeicherte Kopien, die Sie nicht kontrollieren.
  • Leeren Sie das Terminal nach dem Scannen. clear allein leert den Scrollback nicht. Verwenden Sie reset oder schließen Sie das Terminalfenster ganz.
  • Löschen Sie PNG-Dateien sofort. Eine client1.png in einem Home-Verzeichnis überdauert den Grund, aus dem sie erstellt wurde.
  • Zeigen Sie ihn nicht dort an, wo eine Kamera ihn sehen kann, was in einem Gemeinschaftsbüro auch das Fenster hinter Ihnen einschließt.

Ein privater Schlüssel pro Client ist die Regel, die der QR-Code leicht brechen lässt. Wer eine Konfiguration erzeugt und sie auf drei Telefone scannt, gibt allen dreien dieselbe Identität. Der Server kann sie dann nicht unterscheiden, kann keines davon einzeln sperren und leitet Datenverkehr falsch, sobald zwei gleichzeitig verbunden sind. Wie Sie für jedes Gerät einen eigenen Peer anlegen, erklärt WireGuard-Peer hinzufügen.

Zuerst die Konfiguration erzeugen, falls Sie noch keine haben

Der QR-Code ist der letzte Schritt. Davor braucht der Client ein Schlüsselpaar und einen Peer-Eintrag auf dem Server:

wg genkey | tee client1.key | wg pubkey > client1.pub

Dann eine Konfiguration, die auf den öffentlichen Schlüssel des Servers, den Endpoint und AllowedIPs verweist, sowie einen passenden [Peer]-Block auf dem Server mit client1.pub. Wird die Serverseite übersprungen, ist das der häufigste Grund, warum ein gescannter Tunnel sich mit nichts verbindet: Das Telefon ist konfiguriert, aber der Server hat noch nie davon gehört.

Wenn Sie die Dateien lieber nicht von Hand erstellen, schreibt der Konfigurationsgenerator beide Seiten auf einmal (Server-[Interface] mit jedem [Peer]-Block, dazu pro Gerät eine Client-Datei und einen QR-Code), sodass das gescannte Telefon und der Server, mit dem es spricht, von Anfang an zusammenpassen.

Der Server braucht eine öffentliche IP-Adresse, die Ihr Telefon aus dem Mobilfunknetz erreichen kann. Ein Heimanschluss hinter CGNAT hat keine (prüfen Sie Ihren mit dem WireGuard-Port-Checker); ein kleiner VPS hat eine, für rund 5 € im Monat.

★ Nürnberger DSGVO-Rechenzentrum · ✓ Dedizierte IPv4 inklusive · 200-Mbit/s-Port

Ein WireGuard-Server, den Ihr Telefon immer erreicht → Contabo Cloud VPS 45,50 €/Monat (geprüft am 18. Okt. 2026, erste 24 Monate) · feste öffentliche IPv4 · 4 vCPU, 8 GB RAM→

Vollständige Anleitungen inklusive Serverseite finden Sie unter PiVPN-WireGuard-Einrichtung für einen Raspberry Pi und Selbsthosting auf einem VPS für einen gemieteten Server. Beide erzeugen Client-Konfigurationen, die Sie direkt an qrencode weiterleiten können.

Wenn der Scan klappt, der Tunnel aber nicht

Der QR-Code hat seine Aufgabe erfüllt, sobald der Tunnel in der App erscheint. Alles danach ist gewöhnliches WireGuard.

Prüfen Sie, ob das Telefon einen aktuellen Handshake anzeigt. Ein gesunder Peer führt etwa alle 120 Sekunden einen neuen Handshake durch, ein Wert von mehr als rund zwei Minuten bei einem aktiven Tunnel ist also ein Symptom und keine Pause. Fehlt er, gehen Sie die Handshake-Fehlerbehebung durch: Endpoint-Adresse, von außen erreichbarer Port (standardmäßig 51820/UDP), Server-Firewall und Peer-Eintrag. Gelingt der Handshake, aber Seiten bleiben hängen, liegt es an der MTU, was besonders in Mobilfunknetzen häufig vorkommt.

Plattformspezifische Hinweise zur Einrichtung finden Sie unter WireGuard auf Android einrichten und WireGuard unter iOS einrichten.

★ Nürnberger DSGVO-Rechenzentrum · ✓ Dedizierte IPv4 inklusive · 200-Mbit/s-Port

Hoste dein VPN auf deinem eigenen VPS → ContaboVoller Root-Zugriff · öffentliche IPv4 · wähle deine Region→

Häufig gestellte Fragen

Wie erstelle ich einen WireGuard QR-Code?
Installieren Sie qrencode und leiten Sie eine Client-Konfigurationsdatei mit der Terminal-Ausgabeoption hinein: qrencode -t ansiutf8 < client.conf. Die mobile WireGuard-App scannt den Code direkt vom Bildschirm. Es gibt kein eigenes Format, der QR-Code enthält einfach die Konfigurationsdatei als Text.
Kann ich einen WireGuard QR-Code bedenkenlos teilen?
Nein. Der QR-Code enthält die gesamte Konfigurationsdatei einschließlich des privaten Schlüssels des Clients. Wer ihn fotografiert oder in einem Screenshot oder einem Scrollback-Puffer findet, hat als dieser Peer vollen Zugriff auf Ihren Tunnel.
Kann ich den QR-Code als Bilddatei erzeugen?
Ja, qrencode -o client.png < client.conf schreibt eine PNG-Datei. Löschen Sie sie nach dem Scannen, denn eine Bilddatei bleibt auf eine Weise erhalten, wie es eine Terminalanzeige nicht tut, auch in Cloud-Fotosicherungen, falls sie in einem synchronisierten Ordner landet.
Warum scannt mein Telefon den Code, aber der Tunnel verbindet sich nicht?
Der QR-Code transportiert nur die Konfiguration. Wenn der Handshake nie zustande kommt, liegt das Problem in der Konfiguration selbst oder im Netzwerkpfad: falscher Endpoint, falscher Port, Firewall auf dem Server oder ein fehlender Peer-Eintrag auf der Serverseite für den öffentlichen Schlüssel dieses Clients.