You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

配置Traefik使ServiceB指定端点仅允许内部访问的方法

配置Traefik IP白名单实现ServiceB关键端点内部访问

要实现ServiceB的/serviceB/criticalEndpoint仅允许内部访问,你需要创建IP白名单中间件,将Docker内部网段、宿主机本地IP纳入白名单,具体操作如下:

1. 定义IP白名单中间件

在Traefik配置中添加middlewares节点,指定允许访问的内部IP范围:

http:
  middlewares:
    internal-only:
      ipWhiteList:
        sourceRange:
          - "127.0.0.1/32"       # 宿主机本地访问
          - "172.17.0.0/16"      # Docker默认桥接网段
          - "192.168.0.0/16"     # 常见自定义Docker网桥网段(按需调整)
  • 172.17.0.0/16是Docker默认桥接网络的网段,内部容器间的请求均来自该范围
  • 若使用自定义Docker网桥,执行docker network inspect <你的网桥名称>查看实际网段,替换或补充到sourceRange中
  • 127.0.0.1/32用于允许宿主机本地直接访问该端点(按需保留)

2. 关联中间件到目标路由

修改已有的to-admin路由,将中间件指定为上面定义的internal-only:

http:
  routers:
    to-admin:
      rule: "Host(`{{env \"MYHOST\"}}`) && PathPrefix(`/serviceB/criticalEndpoint`)"
      service: serviceB
      middlewares:
      - internal-only

验证配置

配置完成后,外部请求访问该端点会被Traefik返回403拒绝,仅内部容器或白名单IP的请求可正常访问。

内容的提问来源于stack exchange,提问作者Rabid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 00:18:19