Testwebserver fuer Port- und Firewall-Tests hinzufuegen
- testwebserver/: eigenstaendiger Python-Webserver (python:3.12-alpine, kein Build), Port/TLS/Text in .env, zeigt Client-IP und loggt jeden Zugriff - start.sh: erkennt Docker/Podman (inkl. rootless Port-Grenze), prueft Port-Konflikte, erzeugt bei TLS=yes ein selbstsigniertes Zertifikat, Befehle up/down/restart/logs/ps/test/firewall - firewall-check.sh: erkennt auch HTTP-Dienste ohne TLS als erreichbar - .gitignore: testwebserver/.env versionieren, testwebserver/certs/ ausschliessen - README: Abschnitt Testwebserver Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
174c10505a
commit
2962e4a3d7
+6
-4
@@ -267,11 +267,13 @@ fi
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
head_ "5. Lokaler Verbindungstest"
|
||||
probe() { # probe HOST -> "HTTP <code>" | "TCP offen" | leer
|
||||
probe() { # probe HOST -> "HTTPS <code>" | "HTTP <code>" | "TCP offen" | leer
|
||||
local code=""
|
||||
have curl && code=$(curl -sk --max-time 5 -o /dev/null -w '%{http_code}' "https://$1:$PORT/" 2>/dev/null)
|
||||
if [ -n "$code" ] && [ "$code" != 000 ]; then echo "HTTP $code"; return; fi
|
||||
timeout 5 bash -c "exec 3<>/dev/tcp/$1/$PORT" 2>/dev/null && echo "TCP offen, aber keine HTTPS-Antwort"
|
||||
if [ -n "$code" ] && [ "$code" != 000 ]; then echo "HTTPS $code"; return; fi
|
||||
have curl && code=$(curl -s --max-time 5 -o /dev/null -w '%{http_code}' "http://$1:$PORT/" 2>/dev/null)
|
||||
if [ -n "$code" ] && [ "$code" != 000 ]; then echo "HTTP $code, ohne TLS"; return; fi
|
||||
timeout 5 bash -c "exec 3<>/dev/tcp/$1/$PORT" 2>/dev/null && echo "TCP offen, aber keine HTTP(S)-Antwort"
|
||||
}
|
||||
MYIP=$(ip route get 1.1.1.1 2>/dev/null | awk '{for(i=1;i<NF;i++) if($i=="src") print $(i+1)}' | head -1)
|
||||
for h in 127.0.0.1 $MYIP; do
|
||||
@@ -280,7 +282,7 @@ for h in 127.0.0.1 $MYIP; do
|
||||
problem "$h:$PORT nicht erreichbar"
|
||||
elif [[ $res == TCP* ]] && [ "$TCP_ONLY" = 0 ]; then
|
||||
# conmon (Podman) bzw. docker-proxy halten den Port offen, auch wenn dahinter nichts ankommt
|
||||
problem "$h:$PORT nimmt Verbindungen an, liefert aber kein HTTPS - Port nur reserviert (Weiterleitung kaputt?) oder Dashboard startet noch"
|
||||
problem "$h:$PORT nimmt Verbindungen an, liefert aber keine HTTP(S)-Antwort - Port nur reserviert (Weiterleitung kaputt?) oder Dashboard startet noch"
|
||||
else
|
||||
ok "$h:$PORT erreichbar ($res)"
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user