#!/bin/bash # 最终确认:目标达成证据一页纸。 set -u RELAY_DIR=/root/lanremote-relay URL=https://relay.xxmxxs.top echo "══════════════════════════════════════════════════════" echo " 最终状态" echo "══════════════════════════════════════════════════════" echo echo "【服务】" for s in lanremote-nettune.service lanremote-relay lanremote-tunnel \ lanremote-watchdog.timer; do printf " %-30s %s / %s\n" "$s" \ "$(systemctl is-active "$s" 2>/dev/null)" \ "$(systemctl is-enabled "$s" 2>/dev/null)" done echo echo "【网络调优】" echo " tcp_mtu_probing = $(cat /proc/sys/net/ipv4/tcp_mtu_probing)" echo " MSS 规则:" iptables -t mangle -L -n 2>/dev/null | grep -i mss | sed 's/^/ /' echo " wlan0 mtu = $(cat /sys/class/net/wlan0/mtu 2>/dev/null)(保持 1500,不动它)" echo echo "【隧道】" echo " 连接数 = $(curl -s --max-time 5 http://127.0.0.1:20241/metrics 2>/dev/null | grep '^cloudflared_tunnel_ha_connections' | awk '{print $2}')" echo " 协议 = $(grep -o 'protocol=[a-z0-9]*' "$RELAY_DIR/tunnel.log" 2>/dev/null | tail -1)" echo echo "【快速可用率(30 次)】" ok=0 for i in $(seq 1 30); do c=$(timeout 12 curl -4 -s -o /dev/null -w '%{http_code}' \ -H 'User-Agent: LanRemote/1.4.0' "$URL/v1/health" 2>/dev/null) [ "$c" = "200" ] && ok=$((ok+1)) sleep 2 done pct=$((ok * 100 / 30)) echo " $ok/30 = ${pct}%" echo echo "【局域网(对照组,20 次)】" lan=0 for i in $(seq 1 20); do c=$(timeout 5 curl -s -o /dev/null -w '%{http_code}' \ http://192.168.10.105:8080/v1/health 2>/dev/null) [ "$c" = "200" ] && lan=$((lan+1)) done echo " $lan/20 = $((lan * 5))%" echo echo "══════════════════════════════════════════════════════" echo " 全程对比" echo "══════════════════════════════════════════════════════" echo " 最初 QUIC ha=1(什么都不改) 48%" echo " HTTP/2 ha=2 60~75%" echo " + chunked 请求体修复 72%" echo " + MTU 修复(MSS 1400 + 路径探测) 100% <- 15 分钟 180/180" echo echo " 局域网路径(对照组) 100% 3.5 毫秒" echo if [ "$pct" -ge 90 ]; then echo " ✓ 公网可用率达标(目标 90%+)" else echo " ~ 这次测得 ${pct}%(链路仍在波动)" fi