From b2febc15e4b8c3b33f84b0c3245bda086f0575f7 Mon Sep 17 00:00:00 2001 From: admin Date: Wed, 4 Feb 2026 02:00:15 -0800 Subject: [PATCH] Init --- Home.md | 1548 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1548 insertions(+) create mode 100644 Home.md diff --git a/Home.md b/Home.md new file mode 100644 index 0000000..5bf04a3 --- /dev/null +++ b/Home.md @@ -0,0 +1,1548 @@ +# WireGuard Service Installer und VPNTray - Ausführliche Konfigurationsdokumentation + +## Inhaltsverzeichnis +1. [Überblick](#überblick) +2. [Systemvoraussetzungen](#systemvoraussetzungen) +3. [Installation mit wireguard_service_installer.cmd](#installation-mit-wireguard_service_installercmd) +4. [VPNTray.ini Konfiguration](#vpntrayini-konfiguration) +5. [Check-Typen und deren Konfiguration](#check-typen-und-deren-konfiguration) +6. [Verfügbare Variablen](#verfügbare-variablen) +7. [Erweiterte Konfigurationsbeispiele](#erweiterte-konfigurationsbeispiele) +8. [Troubleshooting](#troubleshooting) + +--- + +## Überblick + +Dieses Projekt von [bashclub/Wireguard-Installer-and-Tray](https://github.com/bashclub/Wireguard-Installer-and-Tray) bietet eine vollständige Lösung zur Installation und Verwaltung von WireGuard VPN-Verbindungen unter Windows mit folgenden Komponenten: + +- **wireguard_service_installer.cmd**: Automatisiertes Installationsskript +- **WireGuardMon**: Überwachungsdienst für WireGuard-Tunnel +- **VPNTray**: System-Tray-Anwendung mit Statusanzeige und Verbindungstests +- **VPNTray.ini**: Konfigurationsdatei für das Tray-Icon und Checks + +--- + +## Systemvoraussetzungen + +- **Betriebssystem**: Windows 10/11 +- **Rechte**: Administratorrechte erforderlich +- **Software**: + - winget (Windows Package Manager) + - WireGuard (wird automatisch installiert) + - Microsoft Visual C++ Redistributable 2015+ (wird automatisch installiert) + +--- + +## Installation mit wireguard_service_installer.cmd + +### Funktionsweise des Installers + +Das Skript `wireguard_service_installer.cmd` automatisiert die komplette Installation und Konfiguration von WireGuard als Windows-Dienst. + +### Verwendung + +```cmd +wireguard_service_installer.cmd +``` + +**Beispiel:** +```cmd +wireguard_service_installer.cmd C:\Users\Username\Downloads\wg0.conf +``` + +### Was das Skript macht + +#### 1. **UAC-Elevation (Administratorrechte)** +```batch +>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system" +``` +- Prüft, ob das Skript mit Administratorrechten läuft +- Fordert bei Bedarf automatisch erhöhte Rechte an +- Erstellt temporäres VBScript für UAC-Prompt + +#### 2. **Parameter-Validierung** +- Prüft, ob eine WireGuard-Konfigurationsdatei als Parameter übergeben wurde +- Validiert, ob die angegebene Datei existiert +- Bricht mit Fehlermeldung ab, wenn Parameter fehlen oder ungültig sind + +#### 3. **WireGuard Installation** +```batch +winget install --id WireGuard.WireGuard --silent --accept-package-agreements --accept-source-agreements +``` +- Installiert WireGuard über winget +- Verwendet Silent-Installation (keine Benutzerinteraktion) +- Akzeptiert automatisch alle Lizenzbedingungen + +#### 4. **Visual C++ Redistributable Installation** +```batch +winget install --id Microsoft.VCRedist.2015+.x64 --accept-package-agreements --accept-source-agreements +``` +- Installiert erforderliche Runtime-Bibliotheken +- Notwendig für VPNTray und WireGuardMon + +#### 5. **Konfigurationsverzeichnis erstellen** +```batch +set "CONFIG_DIR=%PROGRAMFILES%\WireGuard\config" +mkdir "%CONFIG_DIR%" +``` +- Erstellt Verzeichnis: `C:\Program Files\WireGuard\config` +- Hier wird die WireGuard-Konfiguration gespeichert + +#### 6. **Sicherheitsberechtigungen setzen** +```batch +icacls "%CONFIG_DIR%" /inheritance:d +icacls "%CONFIG_DIR%" /grant:r "Administratoren:(OI)(CI)F" +icacls "%CONFIG_DIR%" /grant:r "SYSTEM:(OI)(CI)F" +icacls "%CONFIG_DIR%" /remove "Benutzer" +icacls "%CONFIG_DIR%" /remove "Authentifizierte Benutzer" +``` +- **Entfernt Vererbung** von übergeordneten Ordnern +- **Gewährt Vollzugriff** nur für: + - Administratoren + - SYSTEM-Konto +- **Entfernt Zugriff** für: + - Normale Benutzer + - Authentifizierte Benutzer +- **Flags**: + - `(OI)` = Object Inherit (Objekt-Vererbung) + - `(CI)` = Container Inherit (Container-Vererbung) + - `F` = Full Control (Vollzugriff) + +#### 7. **Konfigurationsdatei kopieren** +```batch +copy "%CONFIG_FILE%" "%WG_CONFIG%" +``` +- Kopiert die übergebene WireGuard-Konfiguration nach: + - `C:\Program Files\WireGuard\config\wg0.conf` +- Der Name `wg0.conf` definiert den Tunnel-Namen als `wg0` + +#### 8. **WireGuard Tunnel Service installieren** +```batch +"%PROGRAMFILES%\WireGuard\wireguard.exe" /installtunnelservice "%WG_CONFIG%" +``` +- Installiert WireGuard als Windows-Dienst +- Dienstname: `WireGuardTunnel$wg0` +- Startet automatisch beim Systemstart + +#### 9. **Service-Berechtigungen anpassen** +```batch +sc sdset "WireGuardTunnel$wg0" "D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;RPWPDTRCWD;;;AU)(A;;CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)" +``` +- Setzt SDDL (Security Descriptor Definition Language) für den Dienst +- Erlaubt authentifizierten Benutzern, den Dienst zu starten/stoppen + +#### 10. **Zusätzliche Dateien kopieren** +```batch +copy "%SCRIPT_DIR%wireguardmon.exe" "%WG_DIR%\" +copy "%SCRIPT_DIR%VPNTray.exe" "%WG_DIR%\" +copy "%SCRIPT_DIR%VPNTray.ini" "%WG_DIR%\" +``` +- Kopiert alle Komponenten nach `C:\Program Files\WireGuard\` + +#### 11. **WireGuardMon installieren und starten** +```batch +wireguardmon.exe --install +net start wireguardmon +``` +- Installiert WireGuardMon als Windows-Dienst +- Startet den Überwachungsdienst +- Erstellt ITC-Datei (Inter-Thread Communication) für VPNTray + +#### 12. **Autostart für VPNTray einrichten** +```batch +reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v "VPNTray" /t REG_SZ /d "\"%WG_DIR%\VPNTray.exe\"" /f +``` +- Fügt Registry-Eintrag hinzu +- VPNTray startet automatisch bei Benutzeranmeldung +- Startet VPNTray sofort nach Installation + +### Installationsablauf - Schritt für Schritt + +1. **Vorbereitung** + - WireGuard-Konfigurationsdatei (`.conf`) bereitstellen + - Als Administrator anmelden oder UAC-Berechtigung erteilen können + +2. **Installation starten** + ```cmd + wireguard_service_installer.cmd C:\Pfad\zu\ihrer\config.conf + ``` + +3. **Bestätigung** + - Skript zeigt: "Es wird ein Wireguard Service eingerichtet" + - Mit `Enter` bestätigen oder mit `Strg+C` abbrechen + +4. **Automatische Installation** + - WireGuard wird installiert + - Visual C++ Redistributable wird installiert + - Konfiguration wird kopiert und gesichert + - Dienste werden eingerichtet + +5. **Abschluss** + - VPNTray startet automatisch + - Tray-Icon erscheint in der Taskleiste + - WireGuard-Verbindung ist aktiv + +--- + +## VPNTray.ini Konfiguration + +Die Datei `VPNTray.ini` steuert das Verhalten und Aussehen der VPNTray-Anwendung. + +### Dateistruktur + +```ini +[General] # Allgemeine Einstellungen +[Theme] # Farbschema (nur bei Theme=Custom) +[Wireguardmon] # WireGuardMon-Einstellungen +[CheckX] # Check-Definitionen (X = 1, 2, 3, ...) +``` + +### [General] Sektion + +#### ITC (Inter-Thread Communication) +```ini +#ITC=C:\Program Files\WireGuard\wireguardmon.itc +``` +- **Zweck**: Pfad zur Statusdatei von WireGuardMon +- **Standard**: Gleiches Verzeichnis wie VPNTray.exe +- **Verwendung**: Nur ändern, wenn WireGuardMon an anderem Ort installiert ist + +#### Disabled +```ini +#Disabled=wg1,wg2 +``` +- **Zweck**: Schließt WireGuard-Tunnel von der Überwachung aus +- **Format**: Kommagetrennte Liste von Tunnel-Namen +- **Beispiel**: `Disabled=wg1,wg2,wg_backup` +- **Anwendungsfall**: Wenn mehrere Tunnel konfiguriert sind, aber nur bestimmte überwacht werden sollen + +#### Theme +```ini +Theme=Auto +``` +- **Optionen**: + - `Auto` - Folgt Windows-Systemeinstellung (Hell/Dunkel) + - `Dark` - Dunkles Design + - `Light` - Helles Design + - `Custom` - Benutzerdefiniert (verwendet [Theme]-Sektion) + +#### AutoClose +```ini +AutoClose=15 +``` +- **Zweck**: Automatisches Schließen des Fensters +- **Einheit**: Sekunden +- **Werte**: + - `0` = Deaktiviert (Fenster bleibt offen) + - `>0` = Sekunden bis zum automatischen Schließen +- **Empfehlung**: 10-30 Sekunden für Support-Szenarien + +#### AutoDisconnect +```ini +#AutoDisconnect=DOMAIN +#AutoDisconnect=IP:10.11.12.128/25,IP:192.168.178.0/24,DNS:mydomain.local +``` +- **Zweck**: Automatisches Trennen der VPN-Verbindung bei bestimmten Netzwerken +- **Optionen**: + - `DOMAIN` - Trennt, wenn Computer in Domäne eingebunden ist + - `IP:x.x.x.x/xx` - Trennt bei bestimmtem IP-Bereich (CIDR-Notation) + - `DNS:domain.local` - Trennt bei bestimmter DNS-Suffix +- **Mehrere Bedingungen**: Kommagetrennt +- **Anwendungsfall**: VPN automatisch deaktivieren, wenn im Firmennetzwerk + +#### PowerMode +```ini +#PowerMode=0 +``` +- **Zweck**: Aktiviert Energiespar-Checks auch bei geschlossener UI +- **Werte**: + - `0` = Deaktiviert + - `1` = Aktiviert (Traffic-Monitoring läuft im Hintergrund) +- **Hinweis**: Erhöht CPU-Last minimal + +### [Wireguardmon] Sektion + +```ini +#[Wireguardmon] +#POLL_TIME=30 +#STEMP_MS=500 +``` + +#### POLL_TIME +- **Zweck**: Intervall für Statusabfragen +- **Einheit**: Sekunden +- **Standard**: 30 Sekunden +- **Empfehlung**: 15-60 Sekunden (niedrigere Werte = höhere CPU-Last) + +#### STEMP_MS +- **Zweck**: Zeitstempel-Präzision +- **Einheit**: Millisekunden +- **Standard**: 500 ms +- **Verwendung**: Für präzise Traffic-Messungen + +### [Theme] Sektion + +Nur aktiv bei `Theme=Custom` in [General]. + +```ini +[Theme] +WindowBackgroundBrush=#FF252525 +ItemCardBackgroundBrush=#FF3C3C3C +ItemHoverBackgroundBrush=#1AFFFFFF +SeparatorBrush=#FF555555 +PrimaryTextBrush=#FFFFFFFF +SecondaryTextBrush=#FFB0B0B0 +ShadowColor=Black +``` + +#### Farbformat +- **Format**: `#AARRGGBB` (Hex) + - `AA` = Alpha (Transparenz): 00 (transparent) - FF (opak) + - `RR` = Rot: 00-FF + - `GG` = Grün: 00-FF + - `BB` = Blau: 00-FF + +#### Farbelemente + +| Element | Beschreibung | Standard (Dark) | +|---------|--------------|-----------------| +| `WindowBackgroundBrush` | Hauptfenster-Hintergrund | `#FF252525` (Dunkelgrau) | +| `ItemCardBackgroundBrush` | Hintergrund der Check-Karten | `#FF3C3C3C` (Mittelgrau) | +| `ItemHoverBackgroundBrush` | Hover-Effekt bei Mauszeiger | `#1AFFFFFF` (Leicht transparent weiß) | +| `SeparatorBrush` | Trennlinien | `#FF555555` (Grau) | +| `PrimaryTextBrush` | Haupttext | `#FFFFFFFF` (Weiß) | +| `SecondaryTextBrush` | Sekundärtext (Details) | `#FFB0B0B0` (Hellgrau) | +| `ShadowColor` | Schatten | `Black` | + +**Beispiel für helles Theme:** +```ini +Theme=Custom +[Theme] +WindowBackgroundBrush=#FFFFFFFF +ItemCardBackgroundBrush=#FFF0F0F0 +ItemHoverBackgroundBrush=#1A000000 +SeparatorBrush=#FFCCCCCC +PrimaryTextBrush=#FF000000 +SecondaryTextBrush=#FF666666 +ShadowColor=#33000000 +``` + +--- + +## Check-Typen und deren Konfiguration + +Jeder `[CheckX]`-Abschnitt definiert eine Zeile im VPNTray-Fenster. + +### Allgemeine Check-Parameter + +Alle Check-Typen unterstützen diese Parameter: + +```ini +[CheckX] +Name=Anzeigename +Data=Daten für den Check +Type=Check-Typ +Hidden=True/False +Click=Pfad zur Datei +DblClick=Pfad zur Datei +CmdArguments=Argumente für Click/DblClick +``` + +#### Name +- **Zweck**: Angezeigter Titel in der UI +- **Unterstützt**: Variablen (siehe [Verfügbare Variablen](#verfügbare-variablen)) +- **Beispiel**: `Name=Router ($LAN_GW$)` + +#### Data +- **Zweck**: Daten für den Check (IP, URL, etc.) +- **Unterstützt**: Variablen +- **Beispiel**: `Data=$WG0_SERVER_IP$` + +#### Type +- **Zweck**: Definiert die Art des Checks +- **Optionen**: `Display`, `Ping`, `GeoIP`, `Speedtest`, `Separator` +- **Standard**: `Display` (wenn nicht angegeben) + +#### Hidden +- **Zweck**: Versteckt den Check in der UI +- **Werte**: `True` oder `False` +- **Anwendungsfall**: Checks ausführen, aber nicht anzeigen + +#### Click / DblClick +- **Zweck**: Aktion bei Klick auf den Check +- **Format**: Vollständiger Pfad zur ausführbaren Datei +- **Beispiel**: `DblClick=C:\Windows\System32\mstsc.exe` + +#### CmdArguments +- **Zweck**: Argumente für Click/DblClick-Aktion +- **Format**: String mit Argumenten +- **Beispiel**: `CmdArguments=/v:server.local` + +### Check-Typ: Display + +Zeigt nur Name und Data an, ohne aktive Prüfung. + +```ini +[Check1] +Name=LAN Adapter +Data=$LAN_IP$ +Type=Display +``` + +**Verwendung:** +- Statische Informationsanzeige +- Netzwerkinformationen +- Konfigurationswerte + +**Beispiele:** +```ini +# LAN-Informationen +[Check1] +Name=$LAN_TYPE$ ($LAN_NAME$) +Data=$LAN_IP$ - Gateway: $LAN_GW$ + +# WireGuard-Status +[Check2] +Name=VPN Status +Data=$WG0_STATUS$ + +# Letzte Verbindung +[Check3] +Name=Last Handshake +Data=$WG0_LASTHANDSHAKE$ +``` + +### Check-Typ: Ping + +Führt einen ICMP-Ping auf das angegebene Ziel aus. + +```ini +[Check2] +Name=Router +Data=$LAN_GW$ +Type=Ping +``` + +**Funktionsweise:** +- Sendet ICMP Echo Request +- Zeigt Antwortzeit in ms +- Farbcodierung: + - Grün: < 50ms + - Gelb: 50-150ms + - Rot: > 150ms oder Timeout + +**Beispiele:** +```ini +# Lokaler Router +[Check1] +Name=Router +Data=$LAN_GW$ +Type=Ping + +# Internet-Konnektivität +[Check2] +Name=Internet (Cloudflare DNS) +Data=1.1.1.1 +Type=Ping + +# VPN-Server +[Check3] +Name=VPN Gateway +Data=$WG0_SERVER_IP$ +Type=Ping + +# Interner Server +[Check4] +Name=Fileserver +Data=fileserver.company.local +Type=Ping + +# Mit Hostname +[Check5] +Name=Domain Controller +Data=dc01.domain.local +Type=Ping +``` + +### Check-Typ: GeoIP + +Ermittelt öffentliche IP-Adresse und geografische Informationen. + +```ini +[Check3] +Type=GeoIP +``` + +**Funktionsweise:** +- Ruft externe GeoIP-API auf +- Zeigt öffentliche IP und Standort +- Aktualisiert bei jedem Check + +**Angezeigte Informationen:** +- Öffentliche IP-Adresse +- Land +- Stadt +- Organisation/ISP +- ASN (Autonomous System Number) + +**Verfügbare Variablen nach GeoIP-Check:** +```ini +$GEO_IP$ # Öffentliche IP +$GEO_ORG$ # Organisation/ISP +$GEO_CITY$ # Stadt +$GEO_COUNTRY_NAME$ # Land (vollständig) +$GEO_COUNTRY_CODE$ # Ländercode (z.B. DE) +$GEO_ASN$ # AS-Nummer +$GEO_TIMEZONE$ # Zeitzone +$GEO_VERSION$ # IP-Version (IPv4/IPv6) +``` + +**Beispiel mit Variablen:** +```ini +[Check1] +Type=GeoIP + +[Check2] +Name=Standort +Data=$GEO_CITY$, $GEO_COUNTRY_NAME$ +Type=Display + +[Check3] +Name=Provider +Data=$GEO_ORG$ (AS$GEO_ASN$) +Type=Display +``` + +### Check-Typ: Speedtest + +Führt einen Geschwindigkeitstest durch. + +```ini +[Check10] +Name=Speedtest intern +Type=Speedtest +Data=http://speedtest.internal.net/endpoint.php +``` + +**Voraussetzungen:** +- Speedtest-Endpunkt (PHP-Skript) +- HTTP/HTTPS-Zugriff auf Endpunkt + +**Funktionsweise:** +- Lädt Daten vom angegebenen Endpunkt +- Misst Download-Geschwindigkeit +- Zeigt Ergebnis in Mbit/s + +**Speedtest-Endpunkt einrichten:** + +Die Datei `speedtest.php` ist im Repository enthalten: + +```php + +``` + +**Beispiele:** +```ini +# Interner Speedtest +[Check1] +Name=Speedtest Firmennetz +Type=Speedtest +Data=http://speedtest.internal.company.local/speedtest.php + +# Externer Speedtest +[Check2] +Name=Speedtest Internet +Type=Speedtest +Data=https://speedtest.example.com/endpoint.php + +# VPN-Speedtest +[Check3] +Name=VPN Geschwindigkeit +Type=Speedtest +Data=http://10.0.0.1/speedtest.php +``` + +### Check-Typ: Separator + +Visuelle Trennlinie zwischen Checks. + +```ini +[Check5] +Type=Separator +``` + +**Verwendung:** +- Gruppierung von Checks +- Visuelle Strukturierung +- Keine weiteren Parameter erforderlich + +**Beispiel:** +```ini +# LAN-Informationen +[Check1] +Name=LAN IP +Data=$LAN_IP$ + +[Check2] +Name=Router +Data=$LAN_GW$ +Type=Ping + +# Trenner +[Check3] +Type=Separator + +# VPN-Informationen +[Check4] +Name=VPN IP +Data=$WG0_IP$ + +[Check5] +Name=VPN Server +Data=$WG0_SERVER_IP$ +Type=Ping +``` + +--- + +## Verfügbare Variablen + +Variablen können in `Name=` und `Data=` Parametern verwendet werden. + +### LAN-Variablen + +```ini +$LAN_IP$ # Lokale IP-Adresse (z.B. 192.168.1.100) +$LAN_GW$ # Gateway-IP (z.B. 192.168.1.1) +$LAN_DNS1$ # Primärer DNS-Server +$LAN_DNS2$ # Sekundärer DNS-Server +$LAN_TYPE$ # Verbindungstyp (Ethernet, WiFi) +$LAN_SPEED$ # Verbindungsgeschwindigkeit (z.B. 1 Gbps) +$LAN_NAME$ # Adapter-Name (z.B. "Ethernet 2") +``` + +**Beispiel:** +```ini +[Check1] +Name=$LAN_TYPE$ Adapter: $LAN_NAME$ +Data=IP: $LAN_IP$ | Gateway: $LAN_GW$ | Speed: $LAN_SPEED$ +``` + +### WireGuard-Variablen + +Format: `$WGX_VARIABLE$` wobei X die Tunnel-Nummer ist (0, 1, 2, ...) + +```ini +$WG0_STATUS$ # Status (Connected, Disconnected) +$WG0_IP$ # Zugewiesene VPN-IP +$WG0_DNS1$ # Primärer VPN-DNS +$WG0_DNS2$ # Sekundärer VPN-DNS +$WG0_SERVER_IP$ # VPN-Server/Peer-IP +$WG0_LASTHANDSHAKE$ # Zeitpunkt des letzten Handshakes +$WG0_BYTESSEND$ # Gesendete Bytes +$WG0_BYTESRECV$ # Empfangene Bytes +``` + +**Für mehrere Tunnel:** +```ini +# Tunnel wg0 +$WG0_IP$ +$WG0_STATUS$ + +# Tunnel wg1 +$WG1_IP$ +$WG1_STATUS$ + +# Tunnel wg2 +$WG2_IP$ +$WG2_STATUS$ +``` + +**Beispiel:** +```ini +[Check1] +Name=VPN Status: $WG0_STATUS$ +Data=IP: $WG0_IP$ | Server: $WG0_SERVER_IP$ + +[Check2] +Name=VPN Traffic +Data=↑ $WG0_BYTESSEND$ | ↓ $WG0_BYTESRECV$ + +[Check3] +Name=Last Handshake +Data=$WG0_LASTHANDSHAKE$ +``` + +### GeoIP-Variablen + +Verfügbar nach einem GeoIP-Check: + +```ini +$GEO_IP$ # Öffentliche IP-Adresse +$GEO_ORG$ # Organisation/ISP +$GEO_CITY$ # Stadt +$GEO_COUNTRY_NAME$ # Land (vollständig) +$GEO_COUNTRY_CODE$ # Ländercode (ISO 3166-1 alpha-2) +$GEO_ASN$ # Autonomous System Number +$GEO_TIMEZONE$ # Zeitzone +$GEO_VERSION$ # IP-Version (4 oder 6) +``` + +**Beispiel:** +```ini +[Check1] +Type=GeoIP + +[Check2] +Name=Standort +Data=$GEO_CITY$, $GEO_COUNTRY_NAME$ ($GEO_COUNTRY_CODE$) + +[Check3] +Name=Provider +Data=$GEO_ORG$ + +[Check4] +Name=IP-Adresse +Data=$GEO_IP$ (IPv$GEO_VERSION$) +``` + +--- + +## Erweiterte Konfigurationsbeispiele + +### Beispiel 1: Minimale Konfiguration + +Einfache Überwachung mit grundlegenden Checks: + +```ini +[General] +Theme=Auto +AutoClose=15 + +[Check1] +Name=LAN +Data=$LAN_IP$ + +[Check2] +Name=Internet +Data=1.1.1.1 +Type=Ping + +[Check3] +Type=Separator + +[Check4] +Name=VPN +Data=$WG0_IP$ + +[Check5] +Name=VPN Server +Data=$WG0_SERVER_IP$ +Type=Ping +``` + +### Beispiel 2: Umfassende Überwachung + +Detaillierte Überwachung mit allen Informationen: + +```ini +[General] +Theme=Dark +AutoClose=20 +PowerMode=1 + +[Wireguardmon] +POLL_TIME=15 + +# === LAN-Informationen === +[Check1] +Name=$LAN_TYPE$ ($LAN_NAME$) - $LAN_SPEED$ +Data=$LAN_IP$ + +[Check2] +Name=Gateway +Data=$LAN_GW$ +Type=Ping + +[Check3] +Name=DNS Server +Data=$LAN_DNS1$ +Type=Ping + +[Check4] +Type=GeoIP + +[Check5] +Name=Internet +Data=1.1.1.1 +Type=Ping + +[Check6] +Type=Separator + +# === VPN-Informationen === +[Check7] +Name=VPN Status +Data=$WG0_STATUS$ + +[Check8] +Name=VPN IP +Data=$WG0_IP$ +Type=Ping + +[Check9] +Name=VPN Server +Data=$WG0_SERVER_IP$ +Type=Ping + +[Check10] +Name=VPN DNS +Data=$WG0_DNS1$ +Type=Ping + +[Check11] +Name=Last Handshake +Data=$WG0_LASTHANDSHAKE$ + +[Check12] +Name=Traffic +Data=↑ $WG0_BYTESSEND$ ↓ $WG0_BYTESRECV$ + +[Check13] +Type=Separator + +# === Interne Ressourcen === +[Check14] +Name=Domain Controller +Data=dc01.company.local +Type=Ping + +[Check15] +Name=Fileserver +Data=fs01.company.local +Type=Ping + +[Check16] +Name=Speedtest +Type=Speedtest +Data=http://speedtest.company.local/speedtest.php +``` + +### Beispiel 3: Remote Desktop Integration + +VPN-Überwachung mit RDP-Zugriff: + +```ini +[General] +Theme=Auto +AutoClose=10 + +[Check1] +Name=VPN Status +Data=$WG0_STATUS$ + +[Check2] +Name=VPN Server +Data=$WG0_SERVER_IP$ +Type=Ping + +[Check3] +Type=Separator + +[Check4] +Name=Terminal Server 1 +Data=ts01.company.local +Type=Ping +DblClick=C:\Windows\System32\mstsc.exe +CmdArguments=/v:ts01.company.local + +[Check5] +Name=Terminal Server 2 +Data=ts02.company.local +Type=Ping +DblClick=C:\Windows\System32\mstsc.exe +CmdArguments=/v:ts02.company.local + +[Check6] +Name=Application Server +Data=app01.company.local +Type=Ping +DblClick=C:\Windows\System32\mstsc.exe +CmdArguments="C:\RDP-Configs\app01.rdp" +``` + +### Beispiel 4: Multi-Tunnel Konfiguration + +Überwachung mehrerer WireGuard-Tunnel: + +```ini +[General] +Theme=Auto +AutoClose=15 +# wg2 wird nicht überwacht +Disabled=wg2 + +# === Tunnel wg0 (Hauptverbindung) === +[Check1] +Name=VPN Haupt ($WG0_STATUS$) +Data=$WG0_IP$ + +[Check2] +Name=VPN Server Haupt +Data=$WG0_SERVER_IP$ +Type=Ping + +[Check3] +Type=Separator + +# === Tunnel wg1 (Backup) === +[Check4] +Name=VPN Backup ($WG1_STATUS$) +Data=$WG1_IP$ + +[Check5] +Name=VPN Server Backup +Data=$WG1_SERVER_IP$ +Type=Ping + +[Check6] +Type=Separator + +# === Gemeinsame Checks === +[Check7] +Name=Internet +Data=1.1.1.1 +Type=Ping +``` + +### Beispiel 5: Auto-Disconnect bei Firmennetzwerk + +Automatisches Trennen der VPN-Verbindung im Büro: + +```ini +[General] +Theme=Auto +AutoClose=15 +# Trennt VPN, wenn im Firmennetzwerk (192.168.100.0/24) +AutoDisconnect=IP:192.168.100.0/24,DNS:company.local + +[Check1] +Name=Netzwerk +Data=$LAN_IP$ + +[Check2] +Name=VPN Status +Data=$WG0_STATUS$ + +[Check3] +Name=Hinweis +Data=VPN wird im Firmennetzwerk automatisch getrennt +``` + +### Beispiel 6: Support/Helpdesk Konfiguration + +Optimiert für Support-Mitarbeiter: + +```ini +[General] +Theme=Light +AutoClose=30 +PowerMode=1 + +[Check1] +Name=Computer +Data=$LAN_NAME$ - $LAN_IP$ + +[Check2] +Name=Verbindungstyp +Data=$LAN_TYPE$ @ $LAN_SPEED$ + +[Check3] +Name=Gateway +Data=$LAN_GW$ +Type=Ping + +[Check4] +Type=GeoIP + +[Check5] +Type=Separator + +[Check6] +Name=VPN Status +Data=$WG0_STATUS$ + +[Check7] +Name=VPN IP +Data=$WG0_IP$ + +[Check8] +Name=VPN Server +Data=$WG0_SERVER_IP$ +Type=Ping + +[Check9] +Name=Letzte Verbindung +Data=$WG0_LASTHANDSHAKE$ + +[Check10] +Type=Separator + +[Check11] +Name=Helpdesk Portal +Data=helpdesk.company.local +Type=Ping +DblClick=C:\Program Files\Mozilla Firefox\firefox.exe +CmdArguments=https://helpdesk.company.local + +[Check12] +Name=Ticket System +Data=tickets.company.local +Type=Ping +Click=C:\Program Files\Mozilla Firefox\firefox.exe +CmdArguments=https://tickets.company.local +``` + +### Beispiel 7: Entwickler-Konfiguration + +Mit Zugriff auf Entwicklungsressourcen: + +```ini +[General] +Theme=Dark +AutoClose=0 +PowerMode=1 + +[Check1] +Name=LAN +Data=$LAN_IP$ + +[Check2] +Type=GeoIP + +[Check3] +Type=Separator + +[Check4] +Name=VPN +Data=$WG0_IP$ ($WG0_STATUS$) + +[Check5] +Name=VPN Gateway +Data=$WG0_SERVER_IP$ +Type=Ping + +[Check6] +Type=Separator + +[Check7] +Name=GitLab Server +Data=gitlab.dev.local +Type=Ping +DblClick=C:\Program Files\Mozilla Firefox\firefox.exe +CmdArguments=https://gitlab.dev.local + +[Check8] +Name=Jenkins CI +Data=jenkins.dev.local +Type=Ping +DblClick=C:\Program Files\Mozilla Firefox\firefox.exe +CmdArguments=https://jenkins.dev.local + +[Check9] +Name=Dev Database +Data=db01.dev.local +Type=Ping + +[Check10] +Name=Test Server +Data=test01.dev.local +Type=Ping +DblClick=C:\Windows\System32\mstsc.exe +CmdArguments=/v:test01.dev.local + +[Check11] +Type=Separator + +[Check12] +Name=Speedtest Dev Network +Type=Speedtest +Data=http://speedtest.dev.local/speedtest.php +``` + +--- + +## Troubleshooting + +### Installation schlägt fehl + +#### Problem: "winget lässt sich nicht ausführen" + +**Ursache:** Windows Package Manager (winget) ist nicht installiert oder nicht im PATH. + +**Lösung:** +1. Windows 11: Sollte vorinstalliert sein +2. Windows 10: App Installer aus Microsoft Store installieren +3. Alternativ: [Winget manuell installieren](https://github.com/microsoft/winget-cli/releases) + +#### Problem: "Administratorrechte erforderlich" + +**Ursache:** Skript wurde nicht als Administrator gestartet. + +**Lösung:** +1. Rechtsklick auf `wireguard_service_installer.cmd` +2. "Als Administrator ausführen" wählen +3. UAC-Prompt bestätigen + +#### Problem: "Konfigurationsdatei nicht gefunden" + +**Ursache:** Falscher Pfad zur WireGuard-Konfiguration. + +**Lösung:** +```cmd +# Vollständigen Pfad verwenden +wireguard_service_installer.cmd "C:\Users\Username\Downloads\wg0.conf" + +# Oder relativ zum aktuellen Verzeichnis +cd C:\Users\Username\Downloads +wireguard_service_installer.cmd wg0.conf +``` + +### VPNTray startet nicht + +#### Problem: VPNTray-Icon erscheint nicht in der Taskleiste + +**Ursache 1:** Visual C++ Redistributable fehlt + +**Lösung:** +```cmd +winget install --id Microsoft.VCRedist.2015+.x64 +``` + +**Ursache 2:** VPNTray.exe wurde nicht korrekt kopiert + +**Lösung:** +```cmd +# Prüfen ob Datei existiert +dir "C:\Program Files\WireGuard\VPNTray.exe" + +# Manuell kopieren falls nötig +copy VPNTray.exe "C:\Program Files\WireGuard\" +``` + +**Ursache 3:** WireGuardMon läuft nicht + +**Lösung:** +```cmd +# Service-Status prüfen +sc query wireguardmon + +# Service starten +net start wireguardmon + +# Falls Service nicht existiert +cd "C:\Program Files\WireGuard" +wireguardmon.exe --install +net start wireguardmon +``` + +### Checks funktionieren nicht + +#### Problem: Variablen werden nicht ersetzt (z.B. $WG0_IP$ wird als Text angezeigt) + +**Ursache:** WireGuardMon liefert keine Daten oder ITC-Datei fehlt. + +**Lösung:** +```cmd +# WireGuardMon-Status prüfen +sc query wireguardmon + +# ITC-Datei prüfen +dir "C:\Program Files\WireGuard\wireguardmon.itc" + +# WireGuardMon neu starten +net stop wireguardmon +net start wireguardmon +``` + +#### Problem: Ping-Checks zeigen immer Timeout + +**Ursache 1:** Firewall blockiert ICMP + +**Lösung:** +- Windows Firewall: ICMP Echo Request erlauben +- Ziel-Firewall: ICMP-Antworten erlauben + +**Ursache 2:** VPN-Verbindung nicht aktiv + +**Lösung:** +```cmd +# WireGuard-Service prüfen +sc query WireGuardTunnel$wg0 + +# Service starten +net start WireGuardTunnel$wg0 +``` + +#### Problem: GeoIP-Check schlägt fehl + +**Ursache:** Keine Internetverbindung oder API nicht erreichbar + +**Lösung:** +1. Internetverbindung prüfen +2. Proxy-Einstellungen prüfen +3. Firewall-Regeln für VPNTray.exe prüfen + +#### Problem: Speedtest zeigt keine Ergebnisse + +**Ursache:** Speedtest-Endpunkt nicht erreichbar oder falsch konfiguriert + +**Lösung:** +1. URL im Browser testen +2. PHP-Skript auf Server prüfen +3. Netzwerkverbindung zum Server testen + +### WireGuard-Verbindung Probleme + +#### Problem: WireGuard-Tunnel startet nicht automatisch + +**Ursache:** Service ist nicht auf "Automatisch" gestellt + +**Lösung:** +```cmd +# Service auf automatisch setzen +sc config WireGuardTunnel$wg0 start= auto + +# Service starten +net start WireGuardTunnel$wg0 +``` + +#### Problem: "Last Handshake" zeigt sehr alte Zeit + +**Ursache:** Verbindung zum VPN-Server unterbrochen + +**Lösung:** +1. Internetverbindung prüfen +2. VPN-Server-Erreichbarkeit prüfen +3. WireGuard-Konfiguration prüfen +4. Service neu starten: +```cmd +net stop WireGuardTunnel$wg0 +net start WireGuardTunnel$wg0 +``` + +### Konfigurationsprobleme + +#### Problem: Änderungen in VPNTray.ini werden nicht übernommen + +**Ursache:** VPNTray muss neu gestartet werden + +**Lösung:** +1. VPNTray über Tray-Icon beenden +2. VPNTray neu starten: +```cmd +start "" "C:\Program Files\WireGuard\VPNTray.exe" +``` + +#### Problem: Custom Theme wird nicht angezeigt + +**Ursache:** Theme-Einstellung nicht auf "Custom" gesetzt + +**Lösung:** +```ini +[General] +Theme=Custom + +[Theme] +# Ihre benutzerdefinierten Farben +WindowBackgroundBrush=#FF252525 +... +``` + +#### Problem: AutoDisconnect funktioniert nicht + +**Ursache:** Falsche Syntax oder Netzwerk-Erkennung fehlerhaft + +**Lösung:** +```ini +# Richtige Syntax prüfen +AutoDisconnect=IP:192.168.1.0/24 + +# Mehrere Bedingungen +AutoDisconnect=IP:192.168.1.0/24,DNS:company.local,DOMAIN + +# Aktuelles Netzwerk prüfen +ipconfig /all +``` + +### Performance-Probleme + +#### Problem: VPNTray verbraucht viel CPU + +**Ursache:** Zu häufige Checks oder PowerMode aktiviert + +**Lösung:** +```ini +[General] +PowerMode=0 + +[Wireguardmon] +POLL_TIME=60 # Erhöhen auf 60 Sekunden +``` + +#### Problem: Checks dauern sehr lange + +**Ursache:** Timeout bei nicht erreichbaren Hosts + +**Lösung:** +- Nicht erreichbare Checks entfernen oder auskommentieren +- `Hidden=True` für nicht kritische Checks setzen + +### Logs und Diagnose + +#### WireGuard-Logs anzeigen + +```cmd +# Event Viewer öffnen +eventvwr.msc + +# Navigieren zu: +# Windows-Protokolle > Anwendung +# Nach "WireGuard" filtern +``` + +#### WireGuardMon-Status prüfen + +```cmd +# Service-Status +sc query wireguardmon + +# Service-Konfiguration +sc qc wireguardmon + +# ITC-Datei Inhalt (für Entwickler) +type "C:\Program Files\WireGuard\wireguardmon.itc" +``` + +#### VPNTray Debug-Informationen + +1. VPNTray-Fenster öffnen (Klick auf Tray-Icon) +2. Alle angezeigten Werte notieren +3. Bei Problemen: Screenshot erstellen + +--- + +## Häufig gestellte Fragen (FAQ) + +### Allgemein + +**F: Kann ich mehrere WireGuard-Tunnel gleichzeitig überwachen?** + +A: Ja, VPNTray unterstützt mehrere Tunnel. Verwenden Sie `$WG0_*$`, `$WG1_*$`, `$WG2_*$` etc. für verschiedene Tunnel. + +**F: Wie deinstalliere ich WireGuard und VPNTray?** + +A: +```cmd +# VPNTray Autostart entfernen +reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v "VPNTray" /f + +# WireGuardMon deinstallieren +cd "C:\Program Files\WireGuard" +wireguardmon.exe --uninstall + +# WireGuard Tunnel Service entfernen +wireguard.exe /uninstalltunnelservice wg0 + +# WireGuard deinstallieren +winget uninstall WireGuard.WireGuard +``` + +**F: Kann ich VPNTray ohne WireGuardMon verwenden?** + +A: Nein, VPNTray benötigt WireGuardMon für die Statusabfrage und Variablen-Ersetzung. + +### Konfiguration + +**F: Wie viele Checks kann ich definieren?** + +A: Theoretisch unbegrenzt. Praktisch empfohlen: 10-20 Checks für gute Performance und Übersichtlichkeit. + +**F: Kann ich eigene Variablen definieren?** + +A: Nein, nur die vordefinierten Variablen sind verfügbar. Sie können aber statische Werte verwenden. + +**F: Wie kann ich Checks temporär deaktivieren?** + +A: +```ini +# Option 1: Auskommentieren +#[Check5] +#Name=Test +#Data=test.local +#Type=Ping + +# Option 2: Hidden verwenden +[Check5] +Name=Test +Data=test.local +Type=Ping +Hidden=True +``` + +### Sicherheit + +**F: Sind die WireGuard-Konfigurationsdateien sicher gespeichert?** + +A: Ja, das Installationsskript setzt restriktive NTFS-Berechtigungen: +- Nur Administratoren und SYSTEM haben Zugriff +- Normale Benutzer können die Konfiguration nicht lesen + +**F: Kann ein normaler Benutzer den VPN-Dienst steuern?** + +A: Ja, durch die Service-Berechtigungen können authentifizierte Benutzer den Dienst starten/stoppen, aber nicht die Konfiguration ändern. + +**F: Werden Passwörter in VPNTray.ini gespeichert?** + +A: Nein, VPNTray.ini enthält keine Passwörter. WireGuard verwendet Public-Key-Kryptographie. + +### Netzwerk + +**F: Funktioniert VPNTray mit IPv6?** + +A: Ja, WireGuard und VPNTray unterstützen IPv6. GeoIP-Checks zeigen die IP-Version an. + +**F: Kann ich VPNTray über VPN verwenden?** + +A: Ja, VPNTray funktioniert auch wenn es selbst über VPN verbunden ist. Beachten Sie mögliche Routing-Probleme. + +**F: Wie teste ich die Konfiguration ohne VPN-Verbindung?** + +A: Verwenden Sie hauptsächlich LAN-Variablen und Display-Checks. Ping-Checks auf lokale Ressourcen funktionieren auch ohne VPN. + +--- + +## Best Practices + +### Konfiguration strukturieren + +```ini +# Kommentare für Übersichtlichkeit +# === LAN-Bereich === +[Check1] +... + +# === VPN-Bereich === +[Check5] +... + +# === Interne Ressourcen === +[Check10] +... +``` + +### Sinnvolle Check-Reihenfolge + +1. **LAN-Informationen** (Basis-Konnektivität) +2. **Internet-Check** (Externe Erreichbarkeit) +3. **GeoIP** (Standort-Informationen) +4. **Separator** +5. **VPN-Status** (Tunnel-Informationen) +6. **VPN-Ressourcen** (Interne Server) +7. **Separator** +8. **Anwendungs-Checks** (RDP, Web, etc.) + +### Performance optimieren + +```ini +[General] +AutoClose=15 # Fenster schließt automatisch +PowerMode=0 # Nur bei geöffnetem Fenster prüfen + +[Wireguardmon] +POLL_TIME=30 # Nicht zu häufig abfragen +``` + +### Benutzerfreundlichkeit + +```ini +# Aussagekräftige Namen +[Check1] +Name=Firmen-Router (Gateway) +Data=$LAN_GW$ +Type=Ping + +# Hilfreiche Informationen kombinieren +[Check2] +Name=$LAN_TYPE$ @ $LAN_SPEED$ ($LAN_NAME$) +Data=$LAN_IP$ + +# Interaktive Elemente +[Check3] +Name=Terminalserver (Doppelklick für RDP) +Data=ts01.company.local +Type=Ping +DblClick=C:\Windows\System32\mstsc.exe +CmdArguments=/v:ts01.company.local +``` + +### Fehlerbehandlung + +```ini +# Kritische Checks zuerst +[Check1] +Name=Internet +Data=1.1.1.1 +Type=Ping + +# Optionale Checks mit Hidden +[Check2] +Name=Optionaler Server +Data=optional.local +Type=Ping +Hidden=True # Wird nicht angezeigt wenn fehlschlägt +``` + +--- + +## Weiterführende Ressourcen + +- **GitHub Repository**: https://github.com/bashclub/Wireguard-Installer-and-Tray +- **WireGuard Dokumentation**: https://www.wireguard.com/ +- **WireGuard Windows**: https://git.zx2c4.com/wireguard-windows/about/ + +--- + +## Changelog und Versionshinweise + +Diese Dokumentation basiert auf der aktuellen Version des Projekts. Prüfen Sie das GitHub-Repository für Updates und neue Features. + +--- + +## Support und Community + +Bei Problemen oder Fragen: +1. GitHub Issues: https://github.com/bashclub/Wireguard-Installer-and-Tray/issues +2. Dokumentation prüfen +3. Logs analysieren (Event Viewer) + +--- + +**Erstellt:** 2024 +**Quelle:** https://github.com/bashclub/Wireguard-Installer-and-Tray +**Lizenz:** Siehe LICENSE-Datei im Repository