1549 lines
32 KiB
Markdown
1549 lines
32 KiB
Markdown
# 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 <pfad_zur_wireguard_config>
|
|
```
|
|
|
|
**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
|
|
<?php
|
|
// speedtest.php
|
|
header('Content-Type: application/octet-stream');
|
|
header('Content-Disposition: attachment; filename="speedtest.bin"');
|
|
header('Cache-Control: no-cache');
|
|
|
|
// Generiere 10 MB Zufallsdaten
|
|
$size = 10 * 1024 * 1024; // 10 MB
|
|
$chunk = 1024 * 1024; // 1 MB Chunks
|
|
|
|
for ($i = 0; $i < $size; $i += $chunk) {
|
|
echo str_repeat('0', min($chunk, $size - $i));
|
|
flush();
|
|
}
|
|
?>
|
|
```
|
|
|
|
**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
|