跳到正文
Træfɪk

Router

UDP 路由器

UDP 路由器负责将传入的 UDP 数据包交给能够处理它们的服务。与 HTTP 和 TCP 路由器不同,UDP 路由器工作在传输层,并因 UDP 的无连接特性而具有独特行为。

UDP 路由器特性

  • UDP 无连接,因此没有可用于匹配的请求 URL 路径或 Host SNI 概念
  • UDP 路由器本质上是将数据包分配给后端服务的负载均衡器
  • UDP 路由器只能以 UDP 服务为目标(不能指向 HTTP 或 TCP 服务)
  • 通过可配置的超时跟踪会话,以维护客户端与后端之间的状态

配置示例

udp:
  routers:
    my-udp-router:
      entryPoints:
        - "udp-ep"
        - "dns"
      service: my-udp-service
[udp.routers]
  [udp.routers.my-udp-router]
    entryPoints = ["udp-ep", "dns"]
    service = "my-udp-service"
labels:
  - "traefik.udp.routers.my-udp-router.entrypoints=udp-ep,dns"
  - "traefik.udp.routers.my-udp-router.service=my-udp-service"
{
  "Tags": [
    "traefik.udp.routers.my-udp-router.entrypoints=udp-ep,dns",
    "traefik.udp.routers.my-udp-router.service=my-udp-service"
  ]
}

配置选项

字段 说明 默认值 必填
entryPoints 路由器附加到的入口点列表。如果未指定,UDP 路由器会附加到所有 UDP 入口点。 所有 UDP 入口点 否
service 处理匹配 UDP 数据包的服务名称。UDP 服务通常是将数据包分配给多个后端服务器的负载均衡服务。详见 UDP 服务。 是

会话与超时

尽管 UDP 无连接,Traefik 的 UDP 路由器实现仍依赖会话,维护客户端与后端之间正在进行的通信状态。这样代理才能知道应将后端的响应数据包转发到哪里。

每个会话都有关联的超时,用于在指定的不活动时长后清理不活动会话。

可以通过静态配置中的 entryPoints.name.udp.timeout 选项配置会话超时。详见入口点文档。

路由器命名

  • 路由器名称中不允许使用字符 @
  • 路由器名称应具有描述性,并遵循你的命名约定
  • 在特定提供者的配置(Docker、Kubernetes)中,路由器名称通常根据服务名称自动生成

版权所有 © 头文件软件工作室

文档由 HeadFile Studio 翻译。

Traefik v3.7 中文快照 · 原文版权归 Traefik Labs 及贡献者所有 · MIT 许可证