У меня запущено веб-приложение для докеров, порт сопоставлен с сервером 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