Das Einrichten einer WireGuard-Verbindung beispielsweise zwischen einem Debian-Server und einem Android-Gerät ist eigentlich recht unkompliziert umsetzbar.
1. Schlüsselpaare für den Android-Client erstellen
Zuerst müssen auf dem Server die Schlüssel für den Android-Client generiert werden:
cd /etc/wireguard/
umask 077
wg genkey | tee android_private.key | wg pubkey > android_public.key
2. Den Client am Server registrieren
Der Android-Client muss in der Server-Konfigurationsdatei eingestellt werden. Dazu wird am Ende der Konfigurationsdatei /etc/wireguard/wg0.conf der folgende Abschnitt hinzugefügt:
[Peer]
PublicKey = <Inhalt von android_public.key>
AllowedIPs = 10.10.0.3/32
(Hinweis: 10.10.0.3 kann durch die IP-Adresse ersetzt werden, die an den Android-Client über den VPN-Tunnel verteilt werden soll)
Danach sollte die Konfiguration neu geladen werden: systemctl reload wg-quick@wg0
(Hinweis: wenn in der Serverkonfiguration der Wert SaveConfig = true konfiguriert wurde, muss man den WireGuard-VPN-Dienst zuerst stoppen und dann die Konfigurationsänderungen vornehmen, anderenfalls überschreibt WireGuard die neue Konfiguration mit der aktuellen Laufzeitkonfiguration beim nächsten Neustart.)
3. Die Konfigurationsdatei für den Android-Client erstellen
Es muss dann eine neue Konfigurationsdatei erstellt werden: android.conf. Diese enthält alle Informationen, um später WireGuard auf dem Android-Client zu konfigurieren:
[Interface]
PrivateKey = <Inhalt von android_private.key>
Address = 10.10.0.3/24
DNS = 1.1.1.1
[Peer]
PublicKey = <Inhalt von /etc/wireguard/public.key des SERVERS>
Endpoint = <DEINE_SERVER_IP>:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25
Wichtig: Über den Wert
AllowedIPs = 0.0.0.0/0wird der gesamte Internetverkehr durch den VPN-Tunnel über den Server geleitet. Wenn beispielsweise nur auf ein Heimnetz zugegriffen werden soll, trägt man nur den entsprechenden IP-Adress-Bereich ein (z. B.192.168.178.0/24).
4. Transfer per QR-Code (Der einfachste Weg)
Statt Dateien mühsam hin- und herzuschieben, kann man du die Konfiguration einfach im Terminal als QR-Code anzeigen lassen und mit der WireGuard-App scannen.
- Dazu installiert man das Tool:
apt install qrencode - Generiert den Code:
qrencode -t ansiutf8 < android.conf - Öffnet die WireGuard App auf dem Android-Gerät, klickt auf das „+“ Symbol und wählt „Scan from QR code“.
Tipps falls Probleme auftauchen:
Falls nach der Verbindung über VPN auf dem Handy kein Internetzugang funktioniert, musst vermutlich auf dem Server das IP-Forwarding aktiviert werden:
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
sysctl -p
Außerdem müssen meistens iptables-Regeln in der wg0.conf unter [Interface] hinzugefügt werden, damit der Server als NAT-Gateway fungiert.