修正 MTU 测试的过时断言(1500 -> 1400)

test_net_tune.py 原来断言 net-tune.sh 里写着 mtu 1500,
依据是更早一次实测「接口 MTU 降到 1400 会掉到 50%」。

那个结论后来被推翻了 —— 当时漏了一件事:
**MSS 钳制只管 TCP,QUIC 走 UDP 完全不受保护。**
路径 MTU 实测 1472(1500 的包不通),QUIC 默认发 ~1452 的包会被
中间设备静默丢掉,而 UDP 丢了不回 ICMP,只能等超时。
把接口 MTU 压到 1400 之后,QUIC 建齐 10 条连接从 28 秒缩到 12 秒。

所以现在是**故意**设 1400。断言跟着改,
不然它会永久假失败,还会诱导后人把真正的改进改回 1500。

顺带记录:全量回归 38 个阶段全部通过。
新增的三个阶段(局域网优化 / 手表局域网切换 / 编码与换行 /
管理页设备控制)都是这轮加的。
This commit is contained in:
xmz7891
2026-10-07 18:10:30 +08:00
parent 8880e7033d
commit aac43e559d
16 changed files with 1033 additions and 206 deletions
+33 -17
View File
@@ -46,16 +46,28 @@ echo " bash: $(bash --version | head -1)"
# ────────────────────────────────────────────────────────────
echo
echo "── 0. 先记录线上现状(测完要确认没被碰过)──"
LIVE_RELAY_ACTIVE=$(systemctl is-active lanremote-relay 2>/dev/null || echo "?")
LIVE_TUNNEL_ACTIVE=$(systemctl is-active lanremote-tunnel 2>/dev/null || echo "?")
# ⚠ 必须用**绝对路径**抓真实命令。
# 后面会把桩目录插到 PATH 最前面,那时 `systemctl` / `iptables`
# 就都变成桩了;如果第 8 节还按名字调用,比的就是
# "真实系统 vs 桩",必然对不上(真踩过)。
REAL_SYSTEMCTL=$(command -v systemctl 2>/dev/null || echo systemctl)
REAL_IPTABLES=$(command -v iptables 2>/dev/null || echo iptables)
echo " 真实 systemctl: $REAL_SYSTEMCTL"
echo " 真实 iptables: $REAL_IPTABLES"
LIVE_RELAY_ACTIVE=$("$REAL_SYSTEMCTL" is-active lanremote-relay 2>/dev/null | head -1 || echo "?")
LIVE_TUNNEL_ACTIVE=$("$REAL_SYSTEMCTL" is-active lanremote-tunnel 2>/dev/null | head -1 || echo "?")
LIVE_TUNNEL2_ACTIVE=$("$REAL_SYSTEMCTL" is-active lanremote-tunnel-h2 2>/dev/null | head -1 || echo "?")
LIVE_MTU=$(cat /sys/class/net/wlan0/mtu 2>/dev/null || echo "?")
LIVE_MSS=$(iptables -t mangle -S OUTPUT 2>/dev/null | grep -c TCPMSS || echo 0)
LIVE_MSS=$(("$REAL_IPTABLES" -t mangle -S OUTPUT 2>/dev/null || true) | grep -c TCPMSS | head -1)
LIVE_MSS=${LIVE_MSS:-0}
LIVE_KEEPALIVE=$(cat /proc/sys/net/ipv4/tcp_keepalive_time 2>/dev/null || echo "?")
echo " lanremote-relay = $LIVE_RELAY_ACTIVE"
echo " lanremote-tunnel = $LIVE_TUNNEL_ACTIVE"
echo " wlan0 MTU = $LIVE_MTU"
echo " MSS 规则数 = $LIVE_MSS"
echo " keepalive_time = $LIVE_KEEPALIVE"
echo " lanremote-relay = $LIVE_RELAY_ACTIVE"
echo " lanremote-tunnel = $LIVE_TUNNEL_ACTIVE"
echo " lanremote-tunnel-h2 = $LIVE_TUNNEL2_ACTIVE"
echo " wlan0 MTU = $LIVE_MTU"
echo " MSS 规则数 = $LIVE_MSS"
echo " keepalive_time = $LIVE_KEEPALIVE"
# ────────────────────────────────────────────────────────────
echo
@@ -258,17 +270,21 @@ fi
# ────────────────────────────────────────────────────────────
echo
echo "── 8. 确认线上环境一点没被碰 ──"
NOW_RELAY=$(systemctl is-active lanremote-relay 2>/dev/null || echo "?")
NOW_TUNNEL=$(systemctl is-active lanremote-tunnel 2>/dev/null || echo "?")
echo "── 8. 确认线上环境一点没被碰(用真实命令查,不用桩)──"
NOW_RELAY=$("$REAL_SYSTEMCTL" is-active lanremote-relay 2>/dev/null | head -1 || echo "?")
NOW_TUNNEL=$("$REAL_SYSTEMCTL" is-active lanremote-tunnel 2>/dev/null | head -1 || echo "?")
NOW_TUNNEL2=$("$REAL_SYSTEMCTL" is-active lanremote-tunnel-h2 2>/dev/null | head -1 || echo "?")
NOW_MTU=$(cat /sys/class/net/wlan0/mtu 2>/dev/null || echo "?")
NOW_MSS=$(iptables -t mangle -S OUTPUT 2>/dev/null | grep -c TCPMSS || echo 0)
NOW_MSS=$(("$REAL_IPTABLES" -t mangle -S OUTPUT 2>/dev/null || true) | grep -c TCPMSS | head -1)
NOW_MSS=${NOW_MSS:-0}
NOW_KA=$(cat /proc/sys/net/ipv4/tcp_keepalive_time 2>/dev/null || echo "?")
check "lanremote-relay 状态没变" "$NOW_RELAY" "$LIVE_RELAY_ACTIVE"
check "lanremote-tunnel 状态没变" "$NOW_TUNNEL" "$LIVE_TUNNEL_ACTIVE"
check "wlan0 MTU 没变" "$NOW_MTU" "$LIVE_MTU"
check "MSS 规则数没变" "$NOW_MSS" "$LIVE_MSS"
check "keepalive 没变" "$NOW_KA" "$LIVE_KEEPALIVE"
echo " 现在: relay=$NOW_RELAY tunnel=$NOW_TUNNEL h2=$NOW_TUNNEL2 MTU=$NOW_MTU MSS=$NOW_MSS KA=$NOW_KA"
check "lanremote-relay 状态没变" "$NOW_RELAY" "$LIVE_RELAY_ACTIVE"
check "lanremote-tunnel 状态没变" "$NOW_TUNNEL" "$LIVE_TUNNEL_ACTIVE"
check "lanremote-tunnel-h2 状态没变" "$NOW_TUNNEL2" "$LIVE_TUNNEL2_ACTIVE"
check "wlan0 MTU 没变" "$NOW_MTU" "$LIVE_MTU"
check "MSS 规则数没变" "$NOW_MSS" "$LIVE_MSS"
check "keepalive 没变" "$NOW_KA" "$LIVE_KEEPALIVE"
# ────────────────────────────────────────────────────────────
echo