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

如何通过Traefik实现内网与外网服务的域名访问控制?

当然支持!Traefik 完全能实现你的需求

Traefik 天生就具备细粒度的访问控制能力,刚好能匹配你「部分服务外网开放、部分仅限内网访问」的场景。核心思路是给内网服务绑定IP白名单中间件,只放行内网IP段的请求,外网服务则不添加这个限制。下面是具体的实现步骤和配置示例:

1. 定义内网IP白名单中间件

首先在Traefik的动态配置中(可以是单独的middleware.yml,也可以写在traefik.yml里),创建一个只允许内网IP访问的中间件:

http:
  middlewares:
    internal-only:
      ipWhiteList:
        sourceRange:
          - "192.168.0.0/24"  # 替换成你的内网IP段
          - "10.0.0.0/8"      # 如果有其他内网网段也一并添加
          - "127.0.0.1/32"    # 允许服务器本地访问

这个中间件的作用是:只有来自上述IP段的请求会被放行,外网IP发起的请求会直接返回403 Forbidden。

2. 给不同服务配置路由规则

接下来在你的Docker服务配置(比如Docker Compose)里,分别给博客和文件服务器设置对应的路由和中间件:

博客服务(外网开放)

不需要绑定白名单中间件,直接配置域名和HTTPS规则即可:

services:
  blog:
    image: your-blog-image:latest
    labels:
      - "traefik.enable=true"
      # 匹配blog.mydomain.com域名
      - "traefik.http.routers.blog.rule=Host(`blog.mydomain.com`)"
      # 使用HTTPS入口点(需提前在Traefik静态配置中定义websecure)
      - "traefik.http.routers.blog.entrypoints=websecure"
      # 自动申请Let's Encrypt证书(需配置certresolver)
      - "traefik.http.routers.blog.tls.certresolver=letsencrypt"

这样所有外网用户访问blog.mydomain.com时,Traefik都会正常转发到你的博客服务。

文件服务器(仅限内网访问)

关键是要绑定刚才定义的internal-only中间件,确保只有内网能访问:

services:
  fileserver:
    image: your-fileserver-image:latest
    labels:
      - "traefik.enable=true"
      # 匹配files.mydomain.com域名
      - "traefik.http.routers.fileserver.rule=Host(`files.mydomain.com`)"
      - "traefik.http.routers.fileserver.entrypoints=websecure"
      - "traefik.http.routers.fileserver.tls.certresolver=letsencrypt"
      # 绑定内网白名单中间件,@file表示从文件配置加载该中间件
      - "traefik.http.routers.fileserver.middlewares=internal-only@file"

配置完成后,外网用户访问files.mydomain.com会收到403拒绝,只有内网设备能正常访问。

3. 额外注意事项

  • 域名解析:确保blog.mydomain.com和files.mydomain.com都解析到你的家庭公网IP(如果用了DDNS服务,要保证IP地址实时更新)。
  • 端口转发:在路由器上把80和443端口转发到Traefik所在服务器的对应端口,这样外网才能访问blog.mydomain.com。
  • 测试验证:可以用手机切换到移动数据(外网环境)访问files.mydomain.com,确认返回403;内网设备访问则能正常打开文件服务器。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 09:25:19