In der VPNConfig.ovpn die Zeile
remote YOUR_SERVER_IP 1194
anpassen in
remote 93.212.142.197 1194
Den Haken bei "Require External Certificate"entfernen.
In der FRITZ!Box/im Router eine Prtfreigabe für den Port 1194 einrichten:
Anwendung: Andere Anwendung
Bezeichnung: OpenVPN
Protokoll: TCP
Port an Gerät: 1194 bis Port 1194
Port extern gewünscht (Nur IPv4): 1194
Internetzugriff über IPv4 und IPv6
Gute Nachricht: Synology hat schon einen kostenlosen DynDNS-Dienst. Du brauchst also keinen externen Anbieter. In DSM findest du:
Systemsteuerung → Externer Zugriff → DDNS → Hinzufügen → Synology
Vorteile: Kostenlos, Zuverlässig, Sehr einfach einzurichten
Beispieladresse: andreasloewer.synology.me
Dieses Script unter C:\Scripts\vpn\map-drives.bat ablegen:
@echo off
setlocal EnableExtensions EnableDelayedExpansion
REM ===================== KONFIGURATION =====================
REM Script-Version (wird auch ins Log geschrieben)
set "SCRIPT_VERSION=2025-12-19.6"
REM Ziel (NAS / Server im VPN)
set "TARGET_IP=192.168.178.10"
set "DRIVE=Z:"
set "SHARE=\\192.168.178.10\Daten"
REM LOG_ENABLED: 1 = Logging aktiv, 0 = kein Logging
set "LOG_ENABLED=1"
REM LOG_VERBOSE: 1 = detaillierte Logs, 0 = nur wichtige Ereignisse
set "LOG_VERBOSE=1"
REM Log-Ziel
set "LOGDIR=C:\Scripts\vpn\log"
set "LOGFILE=%LOGDIR%\map.log"
REM =========================================================
REM ---------- Logging vorbereiten ----------
if "%LOG_ENABLED%"=="1" (
if not exist "%LOGDIR%" mkdir "%LOGDIR%" 2>nul
)
set "TS=%date% %time%"
call :log "START Script (Version %SCRIPT_VERSION%)"
REM ---------- Ziel erreichbar? ----------
ping -n 1 "%TARGET_IP%" >nul
set "PINGRC=%ERRORLEVEL%"
if "%PINGRC%"=="0" (
call :log "Ping OK: %TARGET_IP%"
) else (
call :log "Ping FAIL: %TARGET_IP%"
)
REM ---------- NICHT erreichbar → Mapping trennen (robust auch bei Getrennt/Wiederverb.) ----------
if not "%PINGRC%"=="0" (
if "%LOG_VERBOSE%"=="1" (
call :logv "DEBUG: net use BEFORE delete"
net use >> "%LOGFILE%" 2>&1
call :logv "DEBUG: net use BEFORE end"
)
REM Immer versuchen zu löschen (auch wenn disconnected/reconnect). Wenn es nicht existiert, ist das okay.
call :log "VPN weg -> versuche %DRIVE% zu trennen (net use /delete)"
net use %DRIVE% /delete /y >> "%LOGFILE%" 2>&1
set "DELRC=%ERRORLEVEL%"
call :log "Delete versucht, ExitCode=%DELRC%"
if "%LOG_VERBOSE%"=="1" (
call :logv "DEBUG: net use AFTER delete"
net use >> "%LOGFILE%" 2>&1
call :logv "DEBUG: net use AFTER end"
)
REM Prüfen, ob Z: immer noch gelistet ist
net use | findstr /I /C:" %DRIVE% " /C:"%DRIVE% " >nul
if "%ERRORLEVEL%"=="0" (
call :log "WARN: %DRIVE% wird weiterhin in 'net use' gelistet (Explorer evtl. offen / Handle / Cache)."
) else (
call :log "OK: %DRIVE% nicht mehr in 'net use' gelistet."
)
call :logv "Hinweis: Explorer ggf. aktualisieren (F5) / Fenster neu öffnen."
goto :eof
)
REM ---------- Erreichbar → ggf. verbinden ----------
REM Wenn Z: schon existiert (auch 'Getrennt'), erst sauber entfernen, dann neu verbinden
net use | findstr /I /C:" %DRIVE% " /C:"%DRIVE% " >nul
if "%ERRORLEVEL%"=="0" (
call :logv "%DRIVE% ist in 'net use' vorhanden -> entferne vor Neuaufbau"
net use %DRIVE% /delete /y >nul 2>&1
)
call :log "Verbinde %DRIVE% -> %SHARE%"
net use %DRIVE% "%SHARE%" /persistent:no >> "%LOGFILE%" 2>&1
set "NETRC=%ERRORLEVEL%"
if not "%NETRC%"=="0" (
call :log "FAIL: net use ExitCode=%NETRC%"
goto :eof
)
call :log "OK: %DRIVE% verbunden"
goto :eof
REM ===================== FUNKTIONEN =====================
:log
if "%LOG_ENABLED%"=="1" (
echo [%TS%] %~1>> "%LOGFILE%"
)
exit /b
:logv
if "%LOG_ENABLED%"=="1" if "%LOG_VERBOSE%"=="1" (
echo [%TS%] [VERBOSE] %~1>> "%LOGFILE%"
)
exit /b
damit sich dann später nicht jede Minute ein Fenster in in Windows zeigt (Eingabeaufforderung), diese über die Datei run-hidden.vbs aufrufen:
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run Chr(34) & "C:\Scripts\vpn\map-drives.bat" & Chr(34), 0, False
# für die Datei map-drives.bat
Get-NetAdapter | Where-Object {$_.Status -eq "Up"}