Traefik 屏蔽特定的 IP 段

5 min read

Traefik 可以使用 Middleware 以及 Network 层来屏蔽特定的 IP 段。下面是具体实现方法:

  1. 使用 Middleware

在 Docker Compose 的 Traefik service 中添加以下配置:

labels:
  - "traefik.http.middlewares.blockip.ipwhitelist.source=[your_allowed_ip_addresses]"
  - "traefik.http.middlewares.blockip.ipwhitelist.useXForwardedFor=false"

其中,[your_allowed_ip_addresses] 是你允许的 IP 段地址,多个地址使用逗号 , 分隔。启用此配置后,Traefik 会使用 Middleware 过滤进入的请求 IP 地址,如果 IP 地址不在 [your_allowed_ip_addresses] 范围内,Traefik 会阻止该请求。

  1. 使用 Network 层

在 Docker Compose 的 Traefik service 中添加以下配置:

networks:
  external:
    ipam:
      config:
        - subnet: [your_allowed_ip_subnet]

其中,[your_allowed_ip_subnet] 是你允许的 IP 子网地址,比如 192.168.0.0/24。启用此配置后,Traefik 会限制只接受来自 [your_allowed_ip_subnet] 子网的请求。如果请求来自其他子网,则会被阻止。