mirror of
https://gitee.com/xmz7891/ykxmz.git
synced 2026-10-18 18:20:43 +00:00
阶段1 网络加速 - 发现隧道在跑 QUIC(ExecStart 丢了 --protocol http2), 实测 QUIC 可用率 48% vs HTTP/2 80%+,是重大性能回退。 恢复后公网延迟从 4141ms 降到 690ms(快 6 倍),可用率 92%。 - 优选 IP 结论:无效。hosts 覆盖确实生效了(日志里连的就是指定 IP), 但落点仍是 lax —— 运营商把所有 Cloudflare anycast 都路由到美西。 已清掉这段无效配置。 - BBR 不可用:设备是自定义内核 6.4.0-rc4-jsbsbxjxh66, 没编 tcp_bbr 模块也没配置项。改用 cubic + 调优: TCP 缓冲 4MB、tcp_fastopen=3、tcp_slow_start_after_idle=0 (长轮询场景关键)、tcp_tw_reuse=1。 阶段2 官网重做 - 拆出独立模块 relay/landing.py(relay.py 已两千多行, 再塞 HTML 没法看) - 信息结构参考成熟产品站:吸顶导航 / Hero / 九宫格功能 / 三步上手 / 下载 / FAQ / 页脚 - 保持白色简洁:底白、浅灰面板、细边框、大量留白 - logo 用内联 SVG(ICO 放 img 里实测是破图) - 管理入口从官网移除(管理不对外开放) 过程中被自己的测试抓到两个 bug: - 模块叫 site.py 会和 Python 标准库重名,import site 拿到的是标准库 - _logo() 里把 % 格式化和字符串拼接混用,直接抛 TypeError
79 lines
2.5 KiB
Bash
79 lines
2.5 KiB
Bash
#!/bin/bash
|
|
# 确认 BBR 能不能用,并把有效的调优持久化
|
|
set -u
|
|
|
|
echo "===== 1. 内核信息 ====="
|
|
echo " 版本: $(uname -r)"
|
|
echo " 架构: $(uname -m)"
|
|
|
|
echo
|
|
echo "===== 2. BBR 模块存在吗 ====="
|
|
found=$(find /lib/modules -name 'tcp_bbr*' 2>/dev/null | head -3)
|
|
if [ -n "$found" ]; then
|
|
echo " 找到模块文件:"
|
|
echo "$found" | sed 's/^/ /'
|
|
else
|
|
echo " 没有任何 tcp_bbr 模块文件"
|
|
fi
|
|
|
|
echo
|
|
echo "===== 3. 内核编译时开了 BBR 吗 ====="
|
|
if [ -f /proc/config.gz ]; then
|
|
zgrep -i CONFIG_TCP_CONG_BBR /proc/config.gz | sed 's/^/ /'
|
|
elif [ -f /boot/config-$(uname -r) ]; then
|
|
grep -i CONFIG_TCP_CONG_BBR /boot/config-$(uname -r) | sed 's/^/ /'
|
|
else
|
|
echo " 没有内核配置文件可查"
|
|
fi
|
|
|
|
echo
|
|
echo "===== 4. 试着手动加载 ====="
|
|
modprobe tcp_bbr 2>&1 | sed 's/^/ /' || true
|
|
echo " 加载后可用算法: $(sysctl -n net.ipv4.tcp_available_congestion_control)"
|
|
|
|
echo
|
|
echo "===== 5. 当前生效的网络参数 ====="
|
|
for k in net.ipv4.tcp_congestion_control net.core.default_qdisc \
|
|
net.core.rmem_max net.core.wmem_max net.ipv4.tcp_fastopen \
|
|
net.ipv4.tcp_tw_reuse net.ipv4.tcp_mtu_probing; do
|
|
printf " %-40s = %s\n" "$k" "$(sysctl -n $k 2>/dev/null || echo '?')"
|
|
done
|
|
|
|
echo
|
|
echo "===== 6. 既然没有 BBR,用 cubic 能调的都调上 ====="
|
|
cat > /etc/sysctl.d/98-ykxmz-net.conf <<'EOF'
|
|
# ykxmz 网络调优(4G 高丢包链路)
|
|
#
|
|
# ⚠ 这台设备的精简内核**没有 BBR**(只有 reno/cubic),
|
|
# 所以下面用 cubic,再把其它能帮上忙的参数调好。
|
|
# 如果以后换了带 BBR 的内核,把 tcp_congestion_control 改成 bbr 即可。
|
|
|
|
# TCP 缓冲:长途高延迟链路需要更大窗口
|
|
net.core.rmem_max = 4194304
|
|
net.core.wmem_max = 4194304
|
|
net.ipv4.tcp_rmem = 4096 87380 4194304
|
|
net.ipv4.tcp_wmem = 4096 65536 4194304
|
|
|
|
# 快速打开:省一个 RTT
|
|
net.ipv4.tcp_fastopen = 3
|
|
|
|
# 空闲后不重置拥塞窗口 —— 长轮询场景很关键,
|
|
# 否则每次轮询间隔后都要从慢启动重新爬
|
|
net.ipv4.tcp_slow_start_after_idle = 0
|
|
|
|
# 早重传,别干等
|
|
net.ipv4.tcp_retries2 = 8
|
|
|
|
# 复用 TIME_WAIT 连接
|
|
net.ipv4.tcp_tw_reuse = 1
|
|
net.ipv4.tcp_fin_timeout = 15
|
|
|
|
# 接收缓冲自动调节
|
|
net.ipv4.tcp_moderate_rcvbuf = 1
|
|
EOF
|
|
sysctl -p /etc/sysctl.d/98-ykxmz-net.conf 2>&1 | grep -v '^net.core.default_qdisc\|^net.ipv4.tcp_congestion_control' | sed 's/^/ /'
|
|
|
|
echo
|
|
echo " 最终拥塞控制: $(sysctl -n net.ipv4.tcp_congestion_control)"
|
|
echo " 最终队列: $(sysctl -n net.core.default_qdisc)"
|