我想根据连接客户端的IP将流量限制为某些Docker容器。容器会自动发现。
常规设置是运行在LAN(192.168.10.2
)中的docker主机的服务器。防火墙将来自Internet的端口80和443转发到该主机。
我要达到的一般设置是:
192.168.10/24
和192.168.20.24/24
上的任何内容都可以访问任何容器(来自LAN的流量)通常应该如何处理这些问题?
我试图使用https://docs.traefik.io/middlewares/ipwhitelist/来允许/阻止对选定容器的访问。除了不能解决上面的“全局默认值”之外,我还没有使其正常工作(我的docker-compose的相关部分在下面):
radarr:
(...)
labels:
- "traefik.http.routers.radarr.rule=Host(`radarr.mydomain`)"
- "traefik.http.routers.radarr.entrypoints=web"
- "traefik.http.middlewares.radarr.ipwhitelist.sourcerange=127.0.0.1/32, 192.168.50.0/24"
traefik:
# The official v2.0 Traefik docker image
image: traefik:v2.0
container_name: traefik
# Enables the web UI and tells Traefik to listen to docker
command: --api.insecure=true --providers.docker=true --entrypoints.web.address=:80
ports:
# The HTTP port
- "15085:80"
# The Web UI (enabled by --api.insecure=true)
- "18085:8080"
volumes:
# So that Traefik can listen to the Docker events
- /var/run/docker.sock:/var/run/docker.sock
无论我在sourcerange
中输入什么内容,都可以随时通过http://radarr.mydomain:15085
访问该服务