5.0 KiB
WireGuard Windows - Route explizit mit Gateway setzen
Problem best?tigt
Trotz Firewall-Regeln kommt Traffic NICHT ?ber VPN:
- Traefik sieht:
ClientHost: 89.246.96.244(?ffentliche IP) ? - Erwartet:
ClientHost: 10.8.0.7(VPN-IP) ?
Was wir bereits probiert haben
? WireGuard verbunden: Aktive Verbindung
? Route vorhanden: 10.8.0.0/24 Route in Windows Route-Tabelle
? Ping funktioniert: ping 10.8.0.1 erfolgreich
? AllowedIPs korrekt: 10.8.0.0/24 in Client-Config
? Interface-Metrik angepasst: Metrik 1 (h?chste Priorit?t)
? Firewall-Regeln erstellt: VPN-Netzwerk-Regeln f?r 10.8.0.0/24
? HTTP/HTTPS-Traffic kommt NICHT ?ber VPN: Windows sendet Traffic ?ber Standard-Interface
L?sung: Route explizit mit Gateway setzen
Windows k?nnte die Route nicht korrekt nutzen, weil sie als "Auf Verbindung" (On-link) markiert ist. Setzen wir die Route explizit mit Gateway.
Schritt 1: Finde WireGuard Interface-Index
# Als Administrator
Get-NetAdapter | Where-Object {$_.Name -like "*grafana-test*" -or $_.Name -like "*WireGuard*"} | Select-Object Name, InterfaceIndex
Beispiel-Output:
Name InterfaceIndex
---- --------------
grafana-test 18
Schritt 2: Entferne alte Route
# Als Administrator
route delete 10.8.0.0 MASK 255.255.255.0
Falls Fehler: Das ist OK, die Route existiert vielleicht nicht mehr oder hat eine andere Form.
Schritt 3: Setze Route explizit mit Gateway
# Als Administrator
# Ersetze 18 mit dem Interface-Index aus Schritt 1
route add 10.8.0.0 MASK 255.255.255.0 10.8.0.1 METRIC 1 IF 18
Erkl?rung:
10.8.0.0= Ziel-Netzwerk (VPN-Netzwerk)MASK 255.255.255.0= Subnetzmaske (/24)10.8.0.1= Gateway (VPN-Server-IP)METRIC 1= H?chste Priorit?t (niedrigste Zahl = h?chste Priorit?t)IF 18= Interface-Index von WireGuard
Schritt 4: Pr?fe ob Route korrekt gesetzt wurde
# Als Administrator
route print | findstr "10.8"
Erwartetes Ergebnis:
10.8.0.0 255.255.255.0 10.8.0.1 18 1
Wichtig: Gateway sollte 10.8.0.1 sein (nicht "Auf Verbindung" oder deine Client-IP 10.8.0.7).
Schritt 5: WireGuard neu verbinden
- Disconnect WireGuard-Verbindung
- Warte 5 Sekunden
- Connect WireGuard-Verbindung neu
- Pr?fe Route erneut:
route print | findstr "10.8"
Schritt 6: Teste
# Pr?fe Route
route print | findstr "10.8"
# Teste Ping
ping 10.8.0.1
# Teste Grafana im Browser
# https://grafana.michaelschiemer.de
Schritt 7: Logs pr?fen
Nach dem Test sage mir Bescheid, dann pr?fe ich die Traefik-Logs:
- ? Wenn
ClientHost: 10.8.0.7? Traffic kommt ?ber VPN! - ? Wenn
ClientHost: 89.246.96.244? Traffic kommt NICHT ?ber VPN
Falls Route nicht korrekt bleibt
Die Route k?nnte nach dem Disconnect/Connect wieder auf "Auf Verbindung" wechseln. In diesem Fall:
Option A: Route persistieren
# Als Administrator
# Entferne alte Route
route delete 10.8.0.0 MASK 255.255.255.0
# Setze Route mit -p Flag (persistent)
route add 10.8.0.0 MASK 255.255.255.0 10.8.0.1 METRIC 1 IF 18 -p
Das -p Flag macht die Route persistent ?ber System-Neustarts.
Option B: Route ?ber WireGuard selbst setzen
Manchmal setzt WireGuard die Route automatisch auf "Auf Verbindung". Versuche die Route nach dem Verbinden erneut zu setzen:
# Nachdem WireGuard verbunden ist, erneut ausf?hren:
route delete 10.8.0.0 MASK 255.255.255.0
route add 10.8.0.0 MASK 255.255.255.0 10.8.0.1 METRIC 1 IF 18
Troubleshooting
Route wird nicht gesetzt
# Pr?fe ob Interface-Index korrekt ist
Get-NetAdapter | Where-Object {$_.Name -like "*grafana-test*"}
# Pr?fe ob Gateway erreichbar ist
ping 10.8.0.1
Route wird wieder gel?scht
Windows k?nnte die Route automatisch zur?cksetzen. In diesem Fall:
- Setze Route nach jedem WireGuard-Connect neu
- Oder erstelle ein Script, das die Route automatisch setzt
Alternative: PowerShell-Script f?r automatische Route-Setzung
# Als Administrator
# Finde Interface-Index
$wgInterface = Get-NetAdapter | Where-Object {$_.Name -like "*grafana-test*" -or $_.Name -like "*WireGuard*"}
if ($wgInterface) {
$ifIndex = $wgInterface.InterfaceIndex
Write-Host "WireGuard Interface gefunden: $($wgInterface.Name), Index: $ifIndex"
# Entferne alte Route
route delete 10.8.0.0 MASK 255.255.255.0 2>&1 | Out-Null
# Setze Route explizit mit Gateway
route add 10.8.0.0 MASK 255.255.255.0 10.8.0.1 METRIC 1 IF $ifIndex
# Pr?fe ob es funktioniert hat
route print | findstr "10.8"
} else {
Write-Host "WireGuard Interface nicht gefunden"
}
N?chste Schritte
Nach dem Setzen der Route:
- ? Route explizit mit Gateway gesetzt
- ? WireGuard neu verbinden
- ? Route erneut pr?fen (sollte Gateway
10.8.0.1zeigen) - ? Teste Grafana-Zugriff
- ? Pr?fe Traefik-Logs (ich pr?fe dann, ob
ClientHost: 10.8.0.7erscheint)