Windows Powershell script
Beschreibung:
Ist der Server unter einer DYN Adresse errreichbar, bekommt wireguard nicht mit, das sich die IP geändert hat.
Dazu müssen wir den Dienst neustarten. Dazu nehmen wir ein Powershell Script, das immer die aktuelle mit der alten IP alle 5 Minuten vergleicht.
Das alle 5 Minuten rufen wir mit bdem Taskplaner auf
Los gehts:
Tunnelname herausbekommen.
Unter Windows Dienste den Tunnel raussuchen
In unserem Beispiel heißt der Tunnel "WireGuardTunnel$tk-anlage"
Das Script hier muss noch der Pfad zur TXT Datei und der Tunnelname angeben werden.
try {
$CurrentIP = (Invoke-RestMethod -Uri 'http://ifconfig.me/ip').Trim()
$FilePath = 'path\to\ip.txt'
$StoredIP = Get-Content $FilePath
$TunnelName = "mein_tunnel_name"
if ($CurrentIP -ne $StoredIP) {
# Neustart des WireGuard-Dienstes
Restart-Service -Name "WireGuardTunnel$TunnelName"
# Aktualisierung der gespeicherten IP-Adresse
Set-Content -Path $FilePath -Value $CurrentIP
}
}
catch {
Write-Host "Es gab einen Fehler beim Abrufen der aktuellen IP-Adresse oder beim Neustart des Dienstes."
}
Beispiel:
try {
$CurrentIP = (Invoke-RestMethod -Uri 'http://ifconfig.me/ip').Trim()
$FilePath = 'c:\tunnel\ip.txt'
$StoredIP = Get-Content $FilePath
$TunnelName = "WireGuardTunnel$tk-anlage"
if ($CurrentIP -ne $StoredIP) {
# Neustart des WireGuard-Dienstes
Restart-Service -Name "WireGuardTunnel$TunnelName"
# Aktualisierung der gespeicherten IP-Adresse
Set-Content -Path $FilePath -Value $CurrentIP
}
}
catch {
Write-Host "Es gab einen Fehler beim Abrufen der aktuellen IP-Adresse oder beim Neustart des Dienstes."
}