Benutzer-Werkzeuge

Webseiten-Werkzeuge


thoschwiki:docker:apps:wireguard

Dies ist eine alte Version des Dokuments!


WireGuard (Docker)

Image
Docker Hub linuxserver/wireguard
GitHub linuxserver/docker-wireguard
Architektur x86-64, armhf, arm64
Software
Projekt WireGuard

docker run

Der Container wird wie folgt mit docker run eingerichtet und gestartet:

docker run -d \ 
  --name=wireguard \
  --cap-add=NET_ADMIN \
  --cap-add=SYS_MODULE \
  -e PUID=2000 \
  -e PGID=2000 \
  -e TZ=Europe/Berlin \
  -e SERVERURL=wireguard.domain.com `#optional` \
  -e SERVERPORT=51820 `#optional` \
  -e PEERS=1 `#optional` \
  -e PEERDNS=auto `#optional` \
  -e INTERNAL_SUBNET=10.13.13.0 `#optional` \
  -p 51820:51820/udp \
  -v /path/to/appdata/config:/config \
  -v /lib/modules:/lib/modules \
  --sysctl="net.ipv4.conf.all.src_valid_mark=1" \
  --restart unless-stopped \
  linuxserver/wireguard

Parameter

Dies sind die wichtigsten Parameter. Sofern sie mit einem „*“ markiert sind, sollte eine Anpassung erfolgen:

Parameter Funktion
-e PUID= * Vorgabe des Users, mit dem die Daten auf dem Docker-Host in die gemounteten Verzeichnisse geschrieben werden.
-e PGID= * Vorgabe des Gruppe, mit der die Daten auf dem Docker-Host in die gemounteten Verzeichnisse geschrieben werden.
-e TZ= * Vorgabe der lokalen Zeitzone im Format Gebiet/Ort.
-e SERVERURL Optionale URL des Wireguard-Servers
Sofern in den generierten Config-Dateien statt der IP-Adresse des Servers die URL des Servers eingetragen werden soll (z.B. Server mit einer dynamischen IP-Adresse, der über einen Domainnamenauflösungsdienst wie DynDNS erreichbar ist).
-e SERVERPORT Optionale Angabe des Ports, den der Container für den Server verwendet
-e PEERS Anzahl der Peers, für die eine Konfiguration generiert wird (wenn ungleich Null, läuft Wireguard im Server-Mode
-e PEERDNS Default ist 'auto' (DNS-Servereinstellenungen des Docker-Host werden verwendet), Es kann hier die IP-Adresse eines abweichenden DNS-Servers eingetragen werden.
-e INTERNAL_SUBNET IP-Subnet, aus dem die IP-Daressen der Peers und ggf. des Servers vergeben werden.
Eine Änderung ist nur notwendig, wenn das Subnet bereits anderweitig verwendet wird (z.B. mehrere WireGuard-Instanzen).
-p Vorgabe der Ports (bei mehreren WireGuard-Instanzen auf dem Node ist zwingend der externe Port anzupassen. Der Zusatz /udp steuert, dass nur UDP-Pakete geoutet werden.
-v * Volumes, siehe Unterabschnitt Volumes

Volumes

In der Konfiguration werden Volumes in der Regel im folgenden Format angegeben:

<Pfad auf dem Host>:<Pfad im Container>[:<Optionen>]

Die Volumes haben die folgenden Funktionen (maßgeblich ist der Pfad im Container):

Pfad im Container Funktion
/config Ablageort der Konfigurationsdateien
/lib/modules Pfad auf das Verzeichnis mit den Kernel-Modulen des Host (üblicherweise /lib/modules)
Der Container greift auf die WireGuard-Kernel-Module des Hosts zu. Sofern diese nicht vorhanden sind, versucht der Container diese im Verzeichnis auf dem Host zu installieren.

docker-compose

Der Container wird wie folgt in der docker-compose.yml konfiguriert:

docker-compose.yml
version: "2.1"
services:
  wireguard:
    image: linuxserver/wireguard
    container_name: wireguard
    cap_add:
      - NET_ADMIN
      - SYS_MODULE
    environment:
      - PUID=2000
      - PGID=2000
      - TZ=Europe/Berlin
      - SERVERURL=wireguard.domain.com #optional
      - SERVERPORT=51820 #optional
      - PEERS=1 #optional
      - PEERDNS=auto #optional
      - INTERNAL_SUBNET=10.13.13.0 #optional
    volumes:
      - /path/to/appdata/config:/config
      - /lib/modules:/lib/modules
    ports:
      - 51820:51820/udp
    sysctls:
      - net.ipv4.conf.all.src_valid_mark=1
    restart: unless-stopped

Integration in Træfik

Der Container kann mit den folgenden Eintragungen in der docker-compose.yml in Træfik integriert werden:



Konfiguration der Anwendung

thoschwiki/docker/apps/wireguard.1600532371.txt.gz · Zuletzt geändert: 19.09.2020 18:19 von thosch