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:
2026-09-20 22:05:57 +08:00
parent 375153b810
commit 8809e40ec1
4 changed files with 109 additions and 45 deletions
@@ -1,37 +1,22 @@
# ============================================================
# RRPP 节点系统级网络优化(LXC / OpenVZ 容器版)
# 部署位置:/etc/sysctl.d/99-zz-rrpp-network.conf
# ------------------------------------------------------------
# 文件名以 99-zz- 开头:sysctl 按文件名字典序加载、后者覆盖前者,
# 该命名保证本文件最后生效(避免被其它 99-*.conf 覆盖)。
#
# 容器差异(实测 2026-09):
# net.core.rmem_max / wmem_max → 不存在或只读(宿主机控制)
# net.core.default_qdisc → 不存在(sysctl 报 cannot stat)
# net.core.netdev_max_backlog → 缺失
# eth0 根 qdisc → noqueue,无法设置 fq
# /usr/lib/sysctl.d 的 kernel.pid_max、fs.protected_* → permission denied(正常)
# 故本文件只写容器内可写且有效的 netns 级项。
# 容器差异:net.core.rmem_max / wmem_max / default_qdisc / netdev_max_backlog
# 缺失或只读;eth0 为 noqueue,qdisc/网卡 offload 不可设(由宿主机控制)。
# net.ipv4.udp_rmem_min / udp_wmem_min 在部分容器内只读,若报错可忽略。
# ============================================================
# --- 拥塞控制(qdisc 由宿主机控制,容器内无法设 fq)---
net.ipv4.tcp_congestion_control = bbr
# --- PMTUD 黑洞缓解(跨境链路 TLS 握手稳定超时的常见元凶)---
net.ipv4.tcp_mtu_probing = 1
# --- 握手 / 时延 ---
net.ipv4.tcp_fastopen = 3
net.ipv4.tcp_slow_start_after_idle = 0
# --- 连接生命周期(代理长连接 + 大量短连接)---
net.ipv4.tcp_tw_reuse = 2
net.ipv4.tcp_fin_timeout = 15
net.ipv4.tcp_keepalive_time = 300
net.ipv4.tcp_keepalive_intvl = 30
net.ipv4.tcp_keepalive_probes = 5
net.ipv4.ip_local_port_range = 10240 65000
# --- 队列深度(netns 级,容器内可写)---
net.core.somaxconn = 32768
net.ipv4.tcp_max_syn_backlog = 32768
net.ipv4.udp_rmem_min = 8192
net.ipv4.udp_wmem_min = 8192