docker 中如何进行IP地址速率限制?

docker 中如何进行IP地址速率限制?

我有一个正在运行的 docker webapp,端口映射到运行机器的 nginx 服务器,并且使用 fail2ban 进行速率限制。

不幸的是,当查看 netstat 时,docker 看起来好像正在使用所有内部 IP(类似于localhost:59719),而不是通过外部 IP 请求公开,因此 nginx 和 fail2ban 速率限制没有效果。

有谁找到解决这个问题的方法吗?

答案1

对源 IP 进行速率限制的一种方法是不使用 NAT 或代理。这可能过于简单,因为有时应用程序需要代理;还有更多方法可以进行容器联网。

静态寻址我根据 Michael Stapelberg 的博客稍作修改后获得了 IPv6 配置: 添加/etc/docker/daemon.json

{
  "ipv6": true,
  "fixed-cidr-v6": "2001:db8:13b:330::/64"
}

创建网络和静态寻址容器。

docker network create --subnet 2001:db8:13b:330::/64 --ipv6 nginx

docker run \
  --network nginx \
  --ip6 2001:db8:13b:330:ff::80 \
  --publish 203.0.113.1:80:80 \
  nginx

相关内容