Nginx
Bash

Автоматическое обновление IP-Адресов Cloudflare в Nginx: Полное Руководство

Как настроить bash-скрипт и cron для автоматического обновления списка IP-адресов Cloudflare в конфиге Nginx и защитить сервер от прямых атак.

Киселев Александр
Киселев Александр
Разработчик SiteVisor.Cloud17 сен 2024· 3 мин
Читать автора

Cloudflare — популярный сервис для защиты веб-сайтов от DDoS-атак, ускорения загрузки страниц и обеспечения безопасности. Если вы используете Cloudflare для вашего сайта, важно, чтобы ваш веб-сервер был настроен на правильное получение реальных IP-адресов пользователей, которые проходят через Cloudflare. В этой статье мы расскажем, как автоматизировать обновление IP-адресов Cloudflare в конфигурационном файле Nginx с помощью скрипта на bash.

Почему Важно Обновлять IP-Адреса Cloudflare

Cloudflare использует множество IP-адресов для предоставления своих услуг. Эти адреса могут меняться, и если ваш сервер не будет обновлять список IP-адресов, он может не корректно определять реальный IP-адрес клиента. Это может привести к проблемам с безопасностью и доступом.

Что Нам Потребуется

Для автоматизации процесса обновления IP-адресов Cloudflare нам понадобятся следующие инструменты:

  • Bash: для написания скрипта.

  • Cron: для планирования выполнения скрипта.

  • Nginx: веб-сервер, который мы будем настраивать.

Шаг 1: Создание Скрипта

Первый шаг — создание bash-скрипта, который будет скачивать текущий список IP-адресов Cloudflare и обновлять конфигурационный файл Nginx.

  1. Откройте терминал и создайте новый файл скрипта:

    sudo nano /usr/local/bin/update-cloudflare-ips.sh
  2. Вставьте в файл следующий код:

    #!/bin/bash
  3. Сделайте скрипт исполняемым:

    sudo chmod +x /usr/local/bin/update-cloudflare-ips.sh

Шаг 2: Настройка Cron для Регулярного Выполнения

Теперь, когда у нас есть скрипт, его нужно настроить для регулярного выполнения, чтобы IP-адреса обновлялись автоматически.

  1. Откройте редактор crontab:sudo crontab -e

  2. Добавьте строку для ежедневного выполнения скрипта. Например, чтобы запускать скрипт каждый день в 3:00 ночи:0 3 * * * /usr/local/bin/update-cloudflare-ips.sh

  3. Сохраните изменения и выйдите из редактора.

Проверка и Отладка

После настройки скрипта и cron, убедитесь, что всё работает правильно:

  1. Запустите скрипт вручную, чтобы проверить его работу:

    sudo /usr/local/bin/update-cloudflare-ips.sh
  2. Проверьте конфигурацию Nginx:

    sudo nginx -t
  3. Просмотрите логи на наличие ошибок:

    • Логи Nginx:

      sudo tail -f /
    • Логи Cron:

      sudo grep CRON /

Заключение

Автоматическое обновление IP-адресов Cloudflare позволяет вашему серверу всегда иметь актуальный список IP-адресов, что критично для правильной работы защиты и обеспечения безопасности. Следуя описанным шагам, вы сможете настроить автоматическое обновление и поддерживать ваш сервер в актуальном состоянии.

Просмотров: 782

Комментарии (5)

Т
Татьяна19 июл 2026

вопрос: вы обновляете конфиг через set_real_ip_from в отдельном файле, который потом инклудите директивой include? у меня geo-модуль плюс realip вместе почему-то конфликтовали, пока не разнёс на два файла cloudflare.conf и упоминание в основном server{}

c
curl_fan9 июл 2026

по инструкции сделал, только добавил проверку nginx -t перед reload — один раз кривой список прилетел (пустой файл из-за таймаута curl к api.cloudflare.com/client/v4/ips), и nginx упал бы на reload без этой проверки. Сейчас в скрипте: curl -s -f, и если код не 0 — выходим без изменений.

i
it_batya24 апр 2026

столкнулся с тем что после обновления списка nginx -s reload не подхватывал новые set_real_ip_from, помогло только полное systemctl restart nginx. кто-нибудь знает почему reload игнорирует изменения в этой директиве? gzip и location ре-читаются нормально, а тут нет

В
Вадим24 дек 2025

а зачем вообще каждый раз дёргать https://www.cloudflare.com/ips-v4 по крону, если список меняется от силы пару раз в год? у меня раз в неделю через cron стоит, и то за два года ни разу диапазоны не поменялись фактически. лишняя нагрузка на реалку ради иллюзии автоматизации

d
dev_ivan24 апр 2025

добавил бы ещё проверку на ipv6 (ips-v6), в статье только v4 упомянут а половина трафика у нас уже через v6 идёт, без второго списка real_ip определялся неправильно для части юзеров

Проверьте это на своём сайте

Бесплатные инструменты SiteVisor разбирают индексацию, robots.txt, редиректы и микроразметку — без регистрации и настройки.