修正 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
+31
View File
@@ -572,6 +572,37 @@ check "非法协议退出码为 2" "$?" "2"
bash "$DEPLOY" --prefix "$SANDBOX" --protocol both >/dev/null 2>&1
check "both 是合法值" "$?" "0"
echo
echo "── 7g. --port 换端口时 config.yml 必须跟着改 ──"
# 只改 unit 里的 RELAY_PORT、不改 config.yml 的话,
# 隧道会回源到老端口(没人听),现象是"隧道连上了但一访问就 502"。
if grep -q '127.0.0.1:8080' "$CFD/config.yml" 2>/dev/null; then
ok "换端口前 config.yml 是 8080"
else
bad "换端口前的基准不对"
fi
: > "$STUB_LOG"
printf 'lanremote-relay\n' > "$STUB_LOG.state"
bash "$DEPLOY" --prefix "$SANDBOX" --port 9090 > "$TMP/run7g.log" 2>&1
check "--port 9090 退出码为 0" "$?" "0"
if grep -q '127.0.0.1:9090' "$CFD/config.yml" 2>/dev/null; then
ok "config.yml 的回源端口跟到了 9090"
else
bad "config.yml 没跟着换端口(隧道会回源到错端口): $(grep -m1 'service:' "$CFD/config.yml")"
fi
if grep -q 'RELAY_PORT=9090' "$UNIT/lanremote-relay.service" 2>/dev/null; then
ok "relay unit 的端口也换成了 9090"
else
bad "relay unit 端口没换"
fi
# 换回 8080,后面的断言还要用
bash "$DEPLOY" --prefix "$SANDBOX" --port 8080 >/dev/null 2>&1
if grep -q '127.0.0.1:8080' "$CFD/config.yml" 2>/dev/null; then
ok "换回 8080 也跟上了"
else
bad "换回 8080 没跟上"
fi
echo
echo "── 7b. 再跑一次(不给 --hostname),config.yml 不该被改 ──"
H3=$(md5sum "$CFD/config.yml" | awk '{print $1}')