server_config: 启用 UDP 传输(Hysteria2/TUIC)+ UDP 系统调优,如实记录 KVM/LXC/NAT/NSG 差异
- README 新增 §6.4:Hysteria2/TUIC 配置片段、带宽声明与 Brutal 取舍、客户端链接格式、端到端验证方法 - 如实记录各节点差异(2026-09-20 实测): * hk2 NAT 段 4301-4320 UDP 1:1 * ru(LXC NAT)外部只有宿主映射的 UDP 端口可达(23336+ 实测 connection refused),最终复用与 TCP 同号的 23333/23334 * jp(Azure)NSG 仅放行 UDP 8445 → 单节点只能承载一个 UDP 协议,保留 TUIC * aq 为 IPv6-only,listen 用 :: - §2.6 UDP 策略修订:由「不部署 UDP」改为「已启用 UDP 传输,同时保留 UoT」 - sysctl 模板补 udp_rmem_min/udp_wmem_min;rrpp-qdisc.sh 增加 rx-udp-gro-forwarding / rx-gro-list(aq 内核 5.10 不支持前者,LXC 无法设置) - §10 验证清单补 UDP 项,并强调「只看监听不足以证明外部可达」
This commit is contained in:
@@ -1,13 +1,18 @@
|
||||
#!/bin/bash
|
||||
# 把默认路由网卡的根 qdisc 设为 fq(BBR 的最佳搭档)。
|
||||
# 背景:net.core.default_qdisc=fq 只对"新创建"的网卡生效,已存在的网卡
|
||||
# 重启后仍可能是 pfifo_fast/fq_codel,故用本脚本显式设置。
|
||||
# 仅在 KVM/裸机可用;LXC 容器内网卡为 noqueue,本脚本会自行跳过。
|
||||
# ============================================================
|
||||
# RRPP 网络接口调优脚本(开机执行)
|
||||
# 1) 把默认路由网卡的根 qdisc 设为 fq —— BBR 的最佳搭档
|
||||
# (net.core.default_qdisc=fq 只对"新创建"网卡生效,已存在网卡需显式 replace)
|
||||
# 2) 开启 UDP GRO 转发 —— QUIC 系协议(Hysteria2 / TUIC)转发性能
|
||||
# 容器(LXC/OpenVZ)内网卡为 noqueue、且无 netdev 权限,本脚本自动跳过。
|
||||
# ============================================================
|
||||
set -uo pipefail
|
||||
IFACE=$(ip -4 route show default | awk '{print $5; exit}')
|
||||
[ -n "${IFACE:-}" ] || { echo "未找到默认路由网卡,跳过"; exit 0; }
|
||||
if tc qdisc show dev "$IFACE" 2>/dev/null | grep -q " noqueue"; then
|
||||
echo "$IFACE 为 noqueue(容器环境),跳过 qdisc 设置"
|
||||
echo "$IFACE 为 noqueue(容器环境),跳过 qdisc 与网卡 offload 设置"
|
||||
exit 0
|
||||
fi
|
||||
tc qdisc replace dev "$IFACE" root fq 2>/dev/null && echo "已设置 $IFACE root qdisc = fq" || echo "设置 $IFACE qdisc 失败(可忽略)"
|
||||
tc qdisc replace dev "$IFACE" root fq 2>/dev/null && echo "已设置 $IFACE root qdisc = fq" || echo "设置 qdisc 失败(可忽略)"
|
||||
ethtool -K "$IFACE" rx-udp-gro-forwarding on 2>/dev/null && echo "已开启 $IFACE rx-udp-gro-forwarding" || echo "$IFACE 不支持 rx-udp-gro-forwarding"
|
||||
ethtool -K "$IFACE" rx-gro-list on 2>/dev/null && echo "已开启 $IFACE rx-gro-list" || echo "$IFACE 不支持 rx-gro-list"
|
||||
|
||||
Reference in New Issue
Block a user