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,31 +1,22 @@
# ============================================================
# RRPP 节点系统级网络优化(KVM / 完整虚拟机版,含 Azure 等)
# RRPP 节点系统级网络优化(KVM / 完整虚拟机版)
# 部署位置:/etc/sysctl.d/99-zz-rrpp-network.conf
# 配套:systemd/rrpp-qdisc.service + scripts/rrpp-qdisc.sh(见 README §2.6)
# ------------------------------------------------------------
# 文件名以 99-zz- 开头:sysctl 按文件名字典序加载、后者覆盖前者,
# 该命名保证本文件最后生效(避免被其它 99-*.conf 覆盖)。
#
# ⚠ 仍有一个坑:`sysctl --system` 会在所有 sysctl.d 之后**再次加载
# /etc/sysctl.conf**(实测某节点 2022 年的 /etc/sysctl.conf 把
# tcp_mtu_probing 覆盖回 0)。若目标机器上该文件含网络键,
# 必须同步注释掉冲突行,否则本文件不生效。
#
# 容器(LXC/OpenVZ)请改用 99-zz-rrpp-network.lxc.conf
# 配套:systemd/rrpp-qdisc.service + scripts/rrpp-qdisc.sh(fq 队列 + UDP GRO)
# 文件名 99-zz- 前缀保证最后生效;注意 /etc/sysctl.conf 会更晚加载(见 README §2.6)
# ============================================================
# --- 拥塞控制与队列(BBR 需配 fq,否则易 bufferbloat)---
# --- 拥塞控制与队列 ---
net.ipv4.tcp_congestion_control = bbr
net.core.default_qdisc = fq
# --- PMTUD 黑洞缓解(跨境链路 TLS 握手稳定超时的常见元凶)---
# --- PMTUD 黑洞缓解 ---
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
@@ -33,7 +24,7 @@ net.ipv4.tcp_keepalive_intvl = 30
net.ipv4.tcp_keepalive_probes = 5
net.ipv4.ip_local_port_range = 10240 65000
# --- 队列深度与缓冲(高并发 / 大 BDP)---
# --- 队列深度与缓冲(TCP)---
net.core.somaxconn = 32768
net.ipv4.tcp_max_syn_backlog = 32768
net.core.netdev_max_backlog = 32768
@@ -41,3 +32,7 @@ net.core.rmem_max = 33554432
net.core.wmem_max = 33554432
net.ipv4.tcp_rmem = 4096 131072 33554432
net.ipv4.tcp_wmem = 4096 16384 33554432
# --- UDP(Hysteria2 / TUIC / UoT 的 socket 缓冲下限)---
net.ipv4.udp_rmem_min = 8192
net.ipv4.udp_wmem_min = 8192