Einleitung
In diesem Tutorial lernst du wie du WireGuard UI auf einem Linux Server mit Docker Compose installieren kannst.
WireGuard UI ist ein "web user interface to manage your WireGuard setup".
Voraussetzungen
- Linux Cloud Server (vorzugsweise Ubuntu 22.04 / 24.04)
- Docker und Docker Compose
- Öffentliche IPv4 Adresse
Um sicher zu gehen das Docker Compose ordnungsgemäß installiert ist, nutze:
docker compose version
Schritt 1 - Aktualisiere deinen Server
sudo apt update && sudo apt upgrade
Schritt 2 - Vorbereitung der .YML
Die .yml
Datei enthält alle erforderlichen Informationen, um WireGuard UIs Docker Container zu erstellen.
sudo mkdir /opt/wg-ui
sudo nano /opt/wg-ui/docker-compose.yml
Füge folgende Konfiguration ein:
services:
wireguard:
image: linuxserver/wireguard:v1.0.20210914-ls7
container_name: wireguard
cap_add:
- NET_ADMIN
volumes:
- ./config:/config
ports:
- "5000:5000"
- "51820:51820/udp"
restart: unless-stopped
wireguard-ui:
image: ngoduykhanh/wireguard-ui:latest
container_name: wireguard-ui
depends_on:
- wireguard
cap_add:
- NET_ADMIN
# use the network of the 'wireguard' service. this enables to show active clients in the status page
network_mode: service:wireguard
environment:
- SENDGRID_API_KEY
- EMAIL_FROM_ADDRESS
- EMAIL_FROM_NAME
- SESSION_SECRET
- WGUI_USERNAME=admin
- WGUI_PASSWORD=admin
- WG_CONF_TEMPLATE
- WGUI_MANAGE_START=true
- WGUI_MANAGE_RESTART=true
logging:
driver: json-file
options:
max-size: 50m
volumes:
- ./db:/app/db
- ./config:/etc/wireguard
restart: unless-stopped
Ersetze das Standard-Kennwort WGUI_PASSWORD
mit einem sicheren.
Schritt 3 - Starten der Container und Zugriff auf das Webinterface
Um den Container zu starten, nutze:
sudo docker compose -f /opt/wg-ui/docker-compose.yml up -d
Das Ergebnis sollte so aussehen:
[+] Running 3/3
:heavy_check_mark: Network wg-ui_default Created 0.1s
:heavy_check_mark: Container wireguard Started 0.2s
:heavy_check_mark: Container wireguard-ui Started 0.3s
Öffne http://<203.0.113.1>:5000
mit deinem Browser.
Ersetze <203.0.113.1>
mit der IP Adresse deines Servers.
Ich empfehle ab jetzt die Verwendung eines Reverse Proxys (siehe NGINX Proxy Manager).
Wenn du erfolgreich warst, solltest du jetzt die Login Seite von WireGuard UI sehen. Die Standardanmeldedaten sind:
- U: admin
- PW: admin
Ändere dieses Kennwort sofort nach der ersten Anmeldung!
Schritt 4 - Routing-Konfiguration
Füge folgende Skripte unter "WireGuard Server" ein und wähle "Apply Config" aus.
Post Up Script
iptables -A FORWARD -i %1 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth+ -j MASQUERADE
Post Down Script
iptables -D FORWARD -i %1 -j ACCEPT; iptables -D FORWARD -o wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth+ -j MASQUERADE
Schritt 5 - Erstellen einer Client-Konfiguration
Erstelle jetzt eine Client Konfiguration mit einem beschreibenden Namen:
Schritt 6 - Hinzufügen von Clients
Schritt 6.1 - iOS / Android
Lade die WireGuard App aus dem App Store / Play Store.
Klicke in der WireGuard UI auf "QR Code" und scanne ihn mit dem iOS / Android Client wie in diesem Tutorial erklärt.
Schritt 6.2 - Windows / Mac
Installiere den Windows WireGuard Client / Mac WireGuard Client.
Klicke in der WireGuard UI auf "Download" und importiere die .conf
-Datei auf den Windows / Mac Client wie in diesem Tutorial erklärt.
Schritt 6.3 - Linux
Installiere WireGuard auf dem Linux Client:
sudo apt update && sudo apt install wireguard
Klicke in der WireGuard UI auf "Download" und lege die Datei auf dem Linux Client in:
/etc/wireguard/wg0.conf
Und starte (oder stoppe) WireGuard:
-
Vorübergehend
wg-quick up wg0 wg-quick down wg0
-
Dauerhaft
sudo systemctl start wg-quick@wg0 && sudo systemctl enable wg-quick@wg0 sudo systemctl stop wg-quick@wg0 && sudo systemctl disable wg-quick@wg0
Schritt 6.4 - Prüfen der Verbindung
Um zu prüfen ob alles wie gewünscht funktioniert, rufe eine Seite wie ip.hetzner.com auf und vergleiche die IP mit der deines Servers.
Ergebnis
Glückwunsch! Du hast nun erfolgreich eine WireGuard Instanz installiert.