L4 链
状态:Current
最后核对:2026-05-30
路由:/gateway/l4-chains
L4 链定义可部署的转发流水线:零个或多个 transit stage,最后一个 target stage。
传输预设
| 预设 | 状态 | 凭据 |
|---|---|---|
| TCP RAW | 完成 | 无 |
| TCP TLS | 完成 | TLS Cert |
| TCP REALITY | 完成 | REALITY |
| UDP RAW | 完成 | 无 |
| UDP Noise | 完成 | X25519 |
| TCP over QUIC REALITY | 完成 | REALITY |
| UDP over QUIC REALITY | 完成 | REALITY |
| UDP over FAKE_TCP | 完成 | 无 |
| TCP over UDP Noise | 规划 | X25519 |
规划中的传输会显示在选择器中,但后端会通过 TransportSupport 标记为 planned,不会作为已支持 Agent 规则部署。
UDP over FAKE_TCP 是 packet wrapper,不是 TCP tunnel。Agent 会把 UDP datagram payload 放进 TCP-looking raw IP packet 里。L4 inbound listener 和 upstream 转发逻辑见 L4 UDP over FAKE_TCP。
创建链
需要 admin 或 operator。
- 打开 L4 Chains。
- 点击 Create Chain。
- 输入名称。
- 选择入口协议:
TCP、UDP或TCP+UDP。 - 添加 transit stage 和一个 target stage。
- transit 节点选择已注册节点,target 从下拉框选择上游。
- 选择传输和所需凭据。
- 保存。
规则
- 必须有且只有一个 target stage。
- target stage 必须是最后一个 stage。
- transit stage 需要注册节点。
- target stage 需要选择上游,或保留旧数据中的 endpoint。
- 同 stage 多节点表示并行/负载均衡候选。
target stage 会保存选中 upstream 的 id,同时保留 endpoint 字符串作为旧数据 fallback。后端 deploy/replay 优先按 upstream id 解析,再回退到已保存的 endpoint 字符串。
对于直接进入 target stage 的 TCP SSLPREREAD 链,所选 upstream 必须配 置 server_names。端口管理 会根据这些名字生成入口 SNI 分 流路由。普通 TCP TLS 链使用 TLS 证书域名作为 listener SNI;upstream 的 server_names 不是出站拨号 SNI 覆盖。
同端口行为
当 Agent 能在首包或握手早期区分流量时,多个 L4 链可以有意使用同一个 listener 端口:
- TCP REALITY 和 TCP TLS/SSLPREREAD 都由 TCP SNI-family listener 处理。REALITY 先按 SNI 匹配,再对 SNI 命中的 REALITY route 逐个尝试 short ID,因此同 SNI 下 short ID 不同的多个 REALITY route 是合法的。
- 一个 TCP RAW 链可以作为该 TCP SNI-family listener 下的 fallback。这是把 SSH RAW fallback 和 TLS/REALITY 控制流量放在同一端口的预期方式。
- UDP Noise route 可以按本地 X25519 key 共用一个 UDP listener,并可保留一个 UDP RAW fallback。
- 当 QUIC Initial 检测和 REALITY route material 能明确分发时,QUIC REALITY 可以嵌入 UDP Noise 或 UDP RAW 使用的同一个 UDP socket。
部署后使用 端口管理 runtime preview,对比预期链和 Agent 实际应用的 listener 表。
部署
点击 deploy 后,后端向已连接 Agent 推送配置。没有在线 transit Agent 时,前端会提示没有实际部署目标。