修正 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
+21 -3
View File
@@ -675,9 +675,15 @@ else
# 域名:命令行 > 已有 config.yml > 猜不出来就报错
CUR_HOST=""
CUR_PORT=""
if [ -f "$CF_DIR/config.yml" ]; then
CUR_HOST=$(grep -m1 '^ *- hostname:' "$CF_DIR/config.yml" 2>/dev/null \
| sed 's/.*hostname: *//' | tr -d '"'"'"' ')
# 已有配置里的回源端口 —— 单独用 --port 换端口时,
# config.yml 还指着老端口的话隧道就回源到没人听的端口,
# 现象是"隧道连上了但一访问就 502",很难查。
CUR_PORT=$(grep -m1 'service: *http://127\.0\.0\.1:' "$CF_DIR/config.yml" 2>/dev/null \
| sed 's|.*127\.0\.0\.1:||' | tr -dc '0-9')
fi
HOST="$HOSTNAME_ARG"
[ -z "$HOST" ] && HOST="$CUR_HOST"
@@ -710,9 +716,21 @@ else
say " 中转已经装好并启动了 —— **局域网内现在就能用**。"
say " 只是跨网络(走公网)还差这一步域名。"
else
# config.yml 只在「不存在」或「用户明确给了 --hostname」时才重写,
# 免得把别人手工调过的配置冲掉。
if [ ! -f "$CF_DIR/config.yml" ] || [ -n "$HOSTNAME_ARG" ]; then
# config.yml 的重写条件,三种情况:
# 1. 本来就没有 —— 得生成一份
# 2. 用户明确给了 --hostname —— 要按新域名改
# 3. 已有配置里的回源端口和当前 $PORT 不一致
# (单独跑 --port 9090 时,若不改这一行,
# 隧道还是回源到 8080,现象是"隧道通了但一访问就 502")
# 其他情况一律沿用,免得把别人手工调过的配置冲掉。
NEED_WRITE=0
[ ! -f "$CF_DIR/config.yml" ] && NEED_WRITE=1
[ -n "$HOSTNAME_ARG" ] && NEED_WRITE=1
if [ -n "$CUR_PORT" ] && [ "$CUR_PORT" != "$PORT" ]; then
NEED_WRITE=1
say " 已有 config.yml 指向端口 $CUR_PORT,当前是 $PORT —— 会一并更新"
fi
if [ "$NEED_WRITE" = "1" ]; then
cat > "$CF_DIR/config.yml" <<EOF
# ykxmz 中转 · Cloudflare 具名隧道配置
# 由 deploy.sh 生成。改完记得 systemctl restart lanremote-tunnel