This commit is contained in:
eric
2026-03-29 04:08:02 -05:00
parent 7118bfd591
commit 63443ea854
3 changed files with 80 additions and 0 deletions

View File

@@ -0,0 +1,66 @@
#!/usr/bin/env bash
# 排查「live.local refused to connect」多为 :80 无进程、服务未起、或跨机 mDNS/防火墙。
# 在设备本机执行: sudo bash scripts/linux/probe_live_access.sh
set +euo pipefail
SELF_DIR="$(cd "$(dirname "$0")" && pwd)"
INSTALL_TAG="probe"
# shellcheck source=scripts/linux/lib/common.sh
. "$SELF_DIR/lib/common.sh"
load_env
echo "=== Probe: refused to connect (no listener / firewall / wrong host) ==="
echo "Note: 502 = reverse proxy up but upstream dead; refused = nothing accepting TCP."
echo ""
echo "--- Host / IP ---"
echo "hostname: $(hostname 2>/dev/null)"
LAN_IP=""
LAN_IP="$(ip -4 route get 8.8.8.8 2>/dev/null | awk '{for (i=1;i<=NF;i++) if ($i=="src") {print $(i+1); exit}}')"
[ -n "$LAN_IP" ] || LAN_IP="$(hostname -I 2>/dev/null | awk '{print $1}')"
echo "guess LAN IP: ${LAN_IP:-unknown}"
echo ""
echo "--- systemd (need root for full status) ---"
for u in live-console live-edge; do
if systemctl is-active "$u.service" >/dev/null 2>&1; then
echo "$u.service: active"
else
echo "$u.service: INACTIVE — run: sudo systemctl status $u.service"
fi
done
echo ""
echo "--- TCP listeners :80 and :${PORT} ---"
if command -v ss >/dev/null 2>&1; then
ss -tlnp 2>/dev/null | grep -E ":80\\b|:${PORT}\\b" || echo "(no LISTEN on :80 or :${PORT})"
else
netstat -tlnp 2>/dev/null | grep -E ":80\\b|:${PORT}\\b" || true
fi
echo ""
echo "--- Loopback checks ---"
if curl -sf -m 5 "http://127.0.0.1:${PORT}/health" >/dev/null; then
echo "OK http://127.0.0.1:${PORT}/health"
else
echo "FAIL http://127.0.0.1:${PORT}/health → fix live-console first: journalctl -u live-console.service -n 60"
fi
code="$(curl -sS -m 5 -o /dev/null -w '%{http_code}' "http://127.0.0.1/" 2>/dev/null)"
if [ "$code" = "000" ] || [ -z "$code" ]; then
echo "FAIL http://127.0.0.1/ (port 80) — live-edge/Caddy not listening or connection refused"
echo " Try: sudo bash scripts/linux/reinstall_live_edge.sh && sudo systemctl restart live-edge.service"
elif [ "$code" = "502" ]; then
echo "WARN http://127.0.0.1/ → 502 — Caddy up but upstream :${PORT} down; restart live-console"
else
echo "OK http://127.0.0.1/ → HTTP $code"
fi
echo ""
echo "--- From your phone/PC browser ---"
echo "1) Same WiFi/LAN as this box."
echo "2) Try: http://${LAN_IP}:${PORT}/ (direct control plane, bypasses :80 and mDNS)"
echo "3) live.local needs mDNS (Android often OK; Windows may need Bonjour or use IP)."
echo "4) If OK on IP but not live.local: Avahi on this host — systemctl status avahi-daemon"
echo ""