Назад | Перейти на главную страницу

Как сделать ограничение скорости IP-адресов в докере?

У меня запущено веб-приложение для докеров, порт сопоставлен с сервером nginx, работающим на машине, и fail2ban для ограничения скорости.

К сожалению, при просмотре netstat docker выглядит так, как будто он использует все внутренние IP-адреса (например, localhost:59719), а не через внешние IP-запросы, поэтому ограничения скорости nginx и fail2ban не действуют.

Кто-нибудь нашел способ обойти это?

Один из способов ограничить скорость исходного IP-адреса - не использовать NAT или прокси. Возможно, чрезмерно упрощенный, поскольку иногда для приложения необходим прокси; есть и другие способы создания сети контейнеров.

Статический адрес Конфигурация 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