@echo off setlocal enabledelayedexpansion :: ============================================================ :: wstunnel Client - WireGuard over WebSocket :: Anpassen: PROXY_SERVER = Domainname eures wstunnel-Servers :: ============================================================ set PROXY_SERVER=vpn.example.com :: Lokaler UDP Port fuer WireGuard (muss mit WG Endpoint uebereinstimmen) set LOCAL_WG_PORT=51820 :: Remote WireGuard Port auf dem Server set REMOTE_WG_PORT=51820 :: wstunnel Binary (im selben Ordner wie die BAT-Datei) set WSTUNNEL=%~dp0wstunnel.exe :: GitHub API set GITHUB_API=https://api.github.com/repos/erebe/wstunnel/releases/latest :: ============================================================ echo. echo ############################################ echo wstunnel WireGuard Proxy echo ############################################ echo. echo Server : %PROXY_SERVER% echo Tunnel : UDP localhost:%LOCAL_WG_PORT% --^> %PROXY_SERVER%:%REMOTE_WG_PORT% echo. :: --- Pruefen ob wstunnel.exe vorhanden --- if exist "%WSTUNNEL%" goto :start echo [!] wstunnel.exe nicht gefunden. echo [*] Ermittle aktuelle Version von GitHub... echo. :: Version per PowerShell aus GitHub API holen for /f "usebackq delims=" %%V in ( `powershell -NoProfile -Command "(Invoke-RestMethod -Uri '%GITHUB_API%').tag_name"`) do ( set VERSION=%%V ) if "!VERSION!"=="" ( echo [FEHLER] Konnte Version nicht ermitteln. Bitte Internetverbindung pruefen. pause exit /b 1 ) echo [OK] Aktuelle Version: !VERSION! :: Versionsnummer ohne fuehrendes "v" fuer Dateinamen set VERNUM=!VERSION:~1! set DOWNLOAD_URL=https://github.com/erebe/wstunnel/releases/download/!VERSION!/wstunnel_!VERNUM!_windows_amd64.zip set ZIPFILE=%~dp0wstunnel_tmp.zip echo [*] Lade herunter: !DOWNLOAD_URL! echo. :: Download per PowerShell powershell -NoProfile -Command ^ "Invoke-WebRequest -Uri '!DOWNLOAD_URL!' -OutFile '!ZIPFILE!' -UseBasicParsing" if not exist "!ZIPFILE!" ( echo [FEHLER] Download fehlgeschlagen! echo Bitte manuell herunterladen und wstunnel.exe in diesen Ordner entpacken. pause exit /b 1 ) :: ZIP entpacken echo [*] Entpacke... powershell -NoProfile -Command ^ "Expand-Archive -Path '!ZIPFILE!' -DestinationPath '%~dp0' -Force" :: Aufraeumen del /q "!ZIPFILE!" >nul 2>&1 if not exist "%WSTUNNEL%" ( echo [FEHLER] wstunnel.exe nach dem Entpacken nicht gefunden! echo Bitte ZIP manuell entpacken: !DOWNLOAD_URL! pause exit /b 1 ) echo [OK] wstunnel.exe erfolgreich installiert ^(!VERSION!^). echo. :start echo Bitte WireGuard Endpoint auf 127.0.0.1:%LOCAL_WG_PORT% setzen! echo Fenster offen lassen solange VPN aktiv ist. echo. pause "%WSTUNNEL%" client ^ -L "udp://%LOCAL_WG_PORT%:127.0.0.1:%REMOTE_WG_PORT%?timeout_sec=0" ^ "wss://%PROXY_SERVER%:443" echo. echo wstunnel beendet. pause