Files
2026-10-22 21:00:05 +02:00

32 lines
1.2 KiB
PowerShell

# Tunnel-Client verwalten.
# tunnel.ps1 start Client im Hintergrund starten, Proxy fuer beliebige Programme
# tunnel.ps1 status laeuft der Client, und welche IP sieht das Internet?
# tunnel.ps1 stop Client beenden
# tunnel.ps1 run Client im Vordergrund mit ausfuehrlichem Log (Fehlersuche)
param([ValidateSet('start', 'status', 'stop', 'run')][string]$Action = 'status')
. "$PSScriptRoot\common.ps1"
switch ($Action) {
'start' {
Start-Tunnel
Write-Host "Tunnel laeuft. In den gewuenschten Programmen als HTTP-Proxy eintragen: $LocalProxy"
Write-Host "Beenden mit Tunnel-Stop.cmd."
}
'status' {
if (-not (Test-TunnelListening)) { Write-Host "Tunnel laeuft nicht."; break }
Write-Host "Tunnel lauscht auf $LocalProxy."
$ip = & curl.exe -s -m 15 -x $ProxyUrl https://api.ipify.org
if ($LASTEXITCODE -eq 0) { Write-Host "Oeffentliche IP ueber den Tunnel: $ip" }
else { Write-Host "Keine Verbindung durch den Tunnel. Log: $(Join-Path $LogDir 'wstunnel.log')" }
}
'stop' {
Stop-Tunnel
Write-Host "Tunnel beendet."
}
'run' {
Stop-Tunnel
Install-Wstunnel
Invoke-WithTunnelEnv { & $Exe @(Get-TunnelArgs 'INFO') }
}
}