server_config: UDP 传输回滚(抗封优先),§6.4 转为留档

- 五节点撤除 Hysteria2/TUIC 入站,sing-box 恢复 vless+ss 原状(UDP 入站不再监听)
- §2.6 UDP 策略定稿:不部署 UDP 传输服务,UDP 需求走 UoT;保留 UDP 系统调优项
- 记录撤除理由(非标 UDP 端口封禁代价近零、CN 侧 QoS、IP 被烧会连带打死 TCP 服务);明确加密性无问题、风险在可封禁面
- §6.4 标注「已回滚,本节为留档」,保留配置片段/各节点 NAT·NSG 差异/端到端验证方法
- §10 验证清单中的 UDP 项标注仅适用于重新启用场景
This commit is contained in:
2026-09-20 22:12:42 +08:00
parent 1cc4da8318
commit b44d50ee4d
+26 -9
View File
@@ -226,10 +226,19 @@ sysctl --system 2>/dev/null | grep -n tcp_mtu_probing | tail -5 # 看谁在最
`rrpp-qdisc.service` 在开机后显式执行 `tc qdisc replace dev <默认路由网卡> root fq` 补齐;
脚本对容器(`noqueue`)会自动跳过。
**UDP 策略(2026-09-20 修订)**:节点**已启用 UDP 传输**(sing-box 内建 **Hysteria2** 与 **TUIC v5** 入站,见 §6.4),
用于对抗跨境链路的丢包/高 RTT;**同时保留 UoT v2** 路径(见 §5.5)——客户端 TUN 模式的 UDP
仍可封装进 TCP CONNECT 隧道,两条路并存、互不影响。
节点侧 UDP 相关系统调优(与 6.4 配套):
**UDP 策略(2026-09-20 定稿)**:UDP 传输(Hysteria2 / TUIC)曾于当日全节点部署并端到端验证,
但基于「**抗封优先**」的评估,**当晚已全部撤除**(详情与留档见 §6.4)。现行口径:
- **节点不部署 UDP 传输服务**;UDP 需求统一走 **UoT v2**(§5.5)——数据报封装进 TCP CONNECT 隧道,
经 nginx magic 地址转本机 `127.0.0.1:15201` relay 解封装;
- 抗封主路径 = **REALITY + Vision(TCP)**,不做 fallback 组(订阅仍为 `select`);
- 节点上的 **UDP 系统调优项保留**(无害,且对 UoT / SS-UDP 有轻微收益)。
撤除理由(实测 + 推演):非标准 UDP 端口被封对 GFW **几乎零代价**(不像封 TCP 443 会误伤大量正常 HTTPS);
UDP 在 CN 长期被 QoS/限速;且一旦 IP 因 UDP 特征被判为代理,会**连带打死同 IP 上的 TCP 服务**(REALITY/SS/nginx)。
加密性本身没有问题(QUIC=TLS1.3,实测证书校验强制、错凭据被拒)——风险在**可封禁面**,不在密码学。
节点侧 UDP 相关系统调优(保留):
| 项 | 值 / 说明 |
|---|---|
@@ -523,11 +532,18 @@ EOF
---
### 6.4 Hysteria2 / TUIC(UDP 传输,2026-09-20 起全节点启用)
### 6.4 Hysteria2 / TUIC(UDP 传输)— ⚠️ 已回滚,本节为留档
> **状态:已回滚(2026-09-20 当晚)。** 当日曾在五节点部署并逐组合端到端验证通过(见下表与「验证方法」),
> 随后因「**绝对不可以被 GFW 封禁**」这一优先级,**全部撤除**——五节点 sing-box 已恢复为
> `vless + shadowsocks` 原状,新增的 UDP 入站不再监听。
>
> 本节保留作**留档**:配置片段、各节点 NAT/NSG 差异、端到端验证方法(尤其"只看监听不足以证明外部可达"
> 这个坑)在日后重新启用或换机时仍然有效。若要重新启用,照本节执行即可,**但请先读 §2.6 的撤除理由**。
TCP 系协议在跨境丢包链路上受拥塞控制限制(BBR 已缓解但仍有天花板);QUIC 系
(**Hysteria2** 的 Brutal CC、**TUIC v5**)能显著改善高丢包下的吞吐与时延。
两者都是 **sing-box 内建**,无需额外二进制;UDP 需求仍可走 UoT(§5.5),两条路并存。
两者都是 **sing-box 内建**,无需额外二进制;UDP 需求也可走 UoT(§5.5)。
```json
// Hysteria2(sing-box inbound)
@@ -578,8 +594,8 @@ tuic://<uuid>:<password>@<域名>:<端口>/?congestion_control=bbr&alpn=h3&sni=<
| 层 | 状态 |
|---|---|
| 服务端 | ✅ 五节点已部署并端到端验证(见上表) |
| **订阅下发** | ❌ **不下发 UDP**——`app.py` 无 hysteria2/tuic 生成逻辑,`nodes.json` 无对应字段;订阅里只有 http / vless / ss |
| 服务端 | ⛔ **已撤除**(原:五节点部署并端到端验证)——2026-09-20 当晚按抗封优先回滚 |
| **订阅下发** | ❌ 从未下发(`app.py` 无 hysteria2/tuic 生成逻辑,`nodes.json` 无对应字段;订阅里只有 http / vless / ss),且已决定不做 |
| **代理组** | ❌ 订阅只生成一个 `RRPP`(`type: select`,手动选节点),**没有 fallback / url-test**,因此**不存在"UDP 挂了自动回落 TCP"** |
| lite 客户端(Windows) | 仅 HTTP CONNECT + UoT v2(UDP 走 magic 地址),**不使用 UDP 入站**,且节点为手动切换、无自动故障转移 |
| 结论 | UDP 通道目前**只能手工导入**上面的链接使用;抗封主路径仍是 **REALITY+Vision(TCP)**,UDP 属可选加速,未接入客户端链路 |
@@ -715,7 +731,8 @@ print('resp:',s.recv(8).hex())" # 期望首字节 15 (TLS alert)
# UoT relay(127.0.0.1:15201 监听 + CONNECT magic 地址)
ss -tlnp | grep 15201 # => uot_relay.py 监听 127.0.0.1:15201
# UDP 传输(Hysteria2/TUIC,见 6.4)——必须端到端验证,不能只看监听
# UDP 传输(Hysteria2/TUIC)——已于 2026-09-20 撤除;以下仅当重新启用时才适用
# 必须端到端验证,不能只看监听
ss -lunp | grep -E ':<hy2端口>|:<tuic端口>' # 仅确认服务在听
# 再用 sing-box 客户端 + curl 经由 socks 实测(见 6.4「验证方法」)
ethtool -k <网卡> | grep -E 'rx-udp-gro-forwarding|rx-gro-list' # KVM 期望 on;LXC 容器不可设