#!/bin/bash # 设定最终配比并启动 2 小时长测。 # # 配比依据(40 次/组受控对照,MTU 1400): # A quic5+h2 5 100% 中位 1490 P90 2346 P99 3295 # B quic3+h2 7 97% 中位 1271 P90 2558 P99 13934 # C quic0+h2 10 (无效:主实例被 watchdog 自动拉起) # D quic8+h2 2 100% 中位 1250 P90 1715 P99 2632 <- 最好 # # 结论有点反直觉:QUIC 拨号成功率只有 72%(UDP 被运营商限制), # 但**一旦连上,QUIC 的丢包恢复明显优于 HTTP/2/TCP**(无队头阻塞), # 所以"多 QUIC + 少量 HTTP/2 兜底"的组合最好。 set -u MAIN=/etc/systemd/system/lanremote-tunnel.service H2=/etc/systemd/system/lanremote-tunnel-h2.service BAK=/root/final.bak.$(date +%s) cp -a "$MAIN" "$BAK.main" cp -a "$H2" "$BAK.h2" echo "════════ 1. 设成 quic8 + http2 2 ════════" sed -i 's/--ha-connections [0-9]*/--ha-connections 8/' "$MAIN" sed -i 's/--ha-connections [0-9]*/--ha-connections 2/' "$H2" systemctl daemon-reload systemctl restart lanremote-tunnel lanremote-tunnel-h2 echo " 主: $(grep -oE '\-\-protocol [a-z0-9]+|\-\-ha-connections [0-9]+|\-\-metrics [0-9.:]+' "$MAIN" | tr '\n' ' ')" echo " 副: $(grep -oE '\-\-protocol [a-z0-9]+|\-\-ha-connections [0-9]+|\-\-metrics [0-9.:]+' "$H2" | tr '\n' ' ')" echo echo "════════ 2. 等连接建齐 ════════" for i in $(seq 1 40); do sleep 4 a=$(curl -s --max-time 4 http://127.0.0.1:20241/metrics 2>/dev/null | grep '^cloudflared_tunnel_ha_connections' | awk '{print $2}') b=$(curl -s --max-time 4 http://127.0.0.1:20242/metrics 2>/dev/null | grep '^cloudflared_tunnel_ha_connections' | awk '{print $2}') a=${a:-0}; b=${b:-0} [ $((a + b)) -ge 8 ] && break done echo " quic=$a http2=$b 合计=$((a + b))(等了约 $((i*4)) 秒)" echo echo "════════ 3. 公网确认 ════════" for i in $(seq 1 15); do c=$(curl -s -o /dev/null -w '%{http_code}' --max-time 15 -H 'User-Agent: LanRemote/1.8.2' https://relay.xxmxxs.top/v1/health) printf " 第 %d 次: %s\n" "$i" "$c" [ "$c" = "200" ] && break sleep 3 done echo echo "════════ 4. MTU / MSS 复核 ════════" echo " wlan0 MTU: $(cat /sys/class/net/wlan0/mtu)" iptables -t mangle -S OUTPUT 2>/dev/null | grep TCPMSS | sed 's/^/ /' echo echo " 备份: $BAK.main $BAK.h2" echo echo " 下一步:跑 /root/rp_long2h.sh 7200(2 小时)"