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 versionSchritt 1 - Aktualisiere deinen Server
sudo apt update && sudo apt upgradeSchritt 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.ymlFü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-stoppedErsetze 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 -dDas 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 MASQUERADEPost Down Script
iptables -D FORWARD -i %1 -j ACCEPT; iptables -D FORWARD -o wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth+ -j MASQUERADESchritt 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 wireguardKlicke in der WireGuard UI auf "Download" und lege die Datei auf dem Linux Client in:
/etc/wireguard/wg0.confUnd 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.