# VM UDP Fast Path

在使用 Surge 网关模式接管下游设备时，如果某些设备运行了大量使用 UDP 的 P2P 应用（如 BT 下载、游戏平台启动器、直播客户端等），可能会在 Dashboard 中瞬间产生海量连接。这不仅会拖慢 Surge 的整体处理速度，在极端情况下甚至可能导致 macOS 资源耗尽，使 Surge 被系统强制重启。

## 问题成因

Surge 作为工作在四层的代理，对每一个「四元组」不同的 UDP 流（源地址 / 源端口 / 目标地址 / 目标端口）都会按一个独立连接进行管理。\
对于普通应用而言，即便使用 UDP，通常也只会维持少量逻辑连接，这一开销是完全可接受的；但对 P2P 应用来说，在数秒内就可能产生上千个逻辑连接，显著放大了连接管理成本。

## UDP Fast Path 机制

为应对上述情况，我们引入了 UDP Fast Path 防御机制。当检测到某个客户端在短时间内新建了大量 UDP 连接时（**1 秒内 ≥ 10 个** 或 **10 秒内 ≥ 30 个**），Surge 会对该客户端启用 UDP Fast Path，将其 UDP 流量退化为仅进行 L3 转发处理。

在 UDP Fast Path 模式下：

* 每个数据包只做最小化的三层转发处理，不再为每个四元组建立独立连接；
* 处理性能极高，理论上可轻松超过物理网卡的带宽极限；
* 大幅降低连接管理与系统资源消耗，不再需要担心 P2P 连接风暴拖垮系统。

## 注意事项

1. **绕过代理**：\
   启用 UDP Fast Path 的数据包会被直接转发，**不会经过代理规则和策略处理**。
2. **关键端口与 FakeIP 保护**：\
   为避免影响正常应用，对以下 UDP 流量**始终使用常规模式处理**，不会进入 Fast Path：
   * 目标端口号 **小于 1024** 的 UDP 数据包；
   * 目标地址为 **FakeIP** 的 UDP 数据包。
3. **仅适用于 Surge Gateway VM**：\
   UDP Fast Path 仅在配合 **Surge Gateway VM** 使用时生效，对增强模式接管无效。
4. **按设备单独开关**：\
   自 Surge Mac 6.4.2 起，Dashboard 中新增了按设备单独关闭 UDP Fast Path的开关。\
   你可以根据需要，为特定设备单独启用或禁用 UDP Fast Path，以在性能与可控性之间取得平衡。
