Get Rewarded! We will reward you with up to €50 credit on your account for every tutorial that you write and we publish!

WireGuard UI mittels Docker Compose installieren

profile picture
Author
Joshua
Published
2024-11-06
Time to read
4 minutes reading time

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!

password.png

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

routing.png

Schritt 5 - Erstellen einer Client-Konfiguration

Erstelle jetzt eine Client Konfiguration mit einem beschreibenden Namen:

client.png

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.

License: MIT
Want to contribute?

Get Rewarded: Get up to €50 in credit! Be a part of the community and contribute. Do it for the money. Do it for the bragging rights. And do it to teach others!

Report Issue
Try Hetzner Cloud

Get 20€ free credit!

Valid until: 31 December 2024 Valid for: 3 months and only for new customers
Get started
Want to contribute?

Get Rewarded: Get up to €50 credit on your account for every tutorial you write and we publish!

Find out more