#!/bin/bash # 切到 HTTP/2 之后的稳定性验证。 set -u RELAY_DIR=/root/lanremote-relay URL=https://relay.xxmxxs.top : > "$RELAY_DIR/tunnel.log" systemctl restart lanremote-tunnel echo " 已重启,等 35 秒建连…" sleep 35 echo echo "===== 连续探 3 分钟(每 3 秒一次)=====" ok=0; bad=0 for i in $(seq 1 60); do code=$(timeout 12 curl -4 -s -o /dev/null -w '%{http_code}' \ -H 'User-Agent: LanRemote/1.4.0' "$URL/v1/health" 2>/dev/null) code=${code:-000} if [ "$code" = "200" ]; then ok=$((ok + 1)) else bad=$((bad + 1)) printf " [%2ds] 不通 %s\n" "$((i * 3))" "$code" fi sleep 3 done conns=$(grep -c 'Registered tunnel connection' "$RELAY_DIR/tunnel.log" 2>/dev/null || echo 0) drops=$(grep -c 'Connection terminated' "$RELAY_DIR/tunnel.log" 2>/dev/null || echo 0) dials=$(grep -c 'Failed to dial' "$RELAY_DIR/tunnel.log" 2>/dev/null || echo 0) echo echo "===== 结果 =====" echo " 可用 $ok / $((ok + bad)) = $((ok * 100 / (ok + bad)))%" echo " 注册 $conns 次 · 断开 $drops 次 · 拨号失败 $dials 次" echo echo " 对比(之前实测,各 90 秒):" echo " QUIC 可用 48%,断开 16 次,拨号失败 16 次" echo " HTTP2 可用 80%,断开 2 次,拨号失败 0 次" echo echo " 当前协议:$(grep -o 'protocol=[a-z0-9]*' "$RELAY_DIR/tunnel.log" | tail -1)" echo " 连接数: $(curl -s --max-time 5 http://127.0.0.1:20241/metrics | grep '^cloudflared_tunnel_ha_connections' | awk '{print $2}')" echo echo " 看门狗最近:" tail -5 "$RELAY_DIR/watchdog.log" 2>/dev/null | sed 's/^/ /'