MAATRIX / Блог / Смена IP-адреса без потери клиентов

Смена IP-адреса без потери клиентов

MAATRIX

Переезд на новый сервер, смена хостинг-провайдера или банальная замена «засветившегося» адреса — рано или поздно IP приходится менять. Первое, что делают в такой ситуации, — обновляют A-запись в DNS и считают дело закрытым. На практике это только видимая часть работы: часть посетителей ещё сутки будет стучаться на старый адрес, платёжный шлюз молча откажет в приёме запросов, а почта с домена вдруг начнёт падать в спам. Разберём пять неочевидных последствий смены IP и дадим чек-лист, который закрывает их до, а не после переключения.

Что на самом деле ломается при смене IP

Смена A-записи — это объявление миру нового адреса. Но между «объявили» и «все узнали и приняли» лежит несколько слоёв, которые с самим DNS не связаны напрямую:

  • Кэш DNS — у пользователей, у их провайдеров, у публичных резолверов. Пока не истечёт TTL старой записи, часть трафика продолжит идти на старый IP.
  • Whitelist на стороне партнёров — если ваш старый IP был явно занесён в белый список у платёжной системы, банка-эквайера или API стороннего сервиса, новый адрес там никто не ждёт.
  • SPF-запись домена — если почта уходит с этого же сервера, старый IP, зашитый в SPF, нужно заменить на новый, иначе часть писем начнёт проваливать проверку подлинности.
  • Репутация нового IP — адрес, который выделит провайдер, мог раньше принадлежать другому клиенту и попасть в чёрные списки за спам или вредоносную активность.
  • Firewall-правила и мониторинг — конфиги, где старый IP прописан явно текстом, а не через DNS-имя или переменную, продолжат ссылаться в никуда.

Каждый из этих пунктов по отдельности не выглядит катастрофой. Но если пропустить два-три сразу, эффект складывается: пока одни пользователи ждут DNS, другим отказывает оплата, а письма с уведомлениями не доходят вовсе. Ниже — по порядку, что с этим делать, и в какой момент времени относительно самого переключения.

Снижаем TTL заранее — единственный шаг, который нельзя отложить

Это единственный пункт в списке, у которого есть жёсткий дедлайн: он должен быть сделан до смены IP, а не в момент или после неё. TTL (time to live) — это время в секундах, которое резолверы по всему миру имеют право держать в кэше вашу текущую A-запись, не спрашивая сервер повторно. Если у записи TTL 86400 (сутки) и вы меняете IP прямо сейчас, то весь следующий день часть посетителей будет попадать по инерции на старый сервер — просто потому что их резолвер честно верит устаревшему ответу.

Проверить текущий TTL просто:

dig example.com A
# example.com.  86400  IN  A  1.2.3.4
#               ^^^^^ TTL в секундах — здесь сутки

Правило: за 24-48 часов до переключения снижаете TTL до 300 секунд (5 минут) и ждёте, пока по всему миру не разойдётся именно короткое значение — иначе резолверы, успевшие закэшировать запись со старым большим TTL, всё равно продержат её полный срок. Только когда весь мир видит TTL=300, можно переключать сам IP: в момент смены резолверы обновятся максимум за 5 минут, а не за сутки. После того как убедились, что всё встало на новый адрес и старый сервер больше не нужен, TTL можно вернуть к обычному значению (3600-86400) — короткий TTL постоянно держать не нужно, он немного увеличивает нагрузку на DNS-серверы.

Если TTL заранее не снизили и уже меняете IP «по факту» — откатить это нельзя, остаётся держать старый сервер включённым и отдающим тот же контент, пока не истечёт старый TTL у всех. Подробный разбор того, что делать, если сайт уже открывается с разных адресов после переезда, — в статье про проблемы с DNS после переезда.

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.

Арендовать VPS

Whitelist у сторонних сервисов: партнёры, платёжные системы, API

Это последствие бьёт неожиданнее всего, потому что молчит до первого реального запроса. Если сервер обращается к внешним API — платёжному шлюзу, банку-эквайеру, курьерской службе, партнёрскому CRM — многие такие интеграции в целях безопасности требуют явно указать IP-адрес, с которого разрешены запросы. Это whitelist на их стороне, и вы не можете обновить его сами: партнёр видит только старый адрес и после смены IP начинает молча отклонять или блокировать все запросы вашего сервера.

Проблема в том, что это не всегда сразу заметно: сайт открывается, статика отдаётся, а конкретно оплата или конкретно один внешний API перестают отвечать — и разбираться приходится уже по жалобам клиентов. Что делать заранее:

  • Составьте список всех внешних интеграций, где для доступа используется явный IP, а не токен/ключ без привязки к адресу — платёжные провайдеры, SMS-шлюзы, партнёрские API, банковские кабинеты, VPN-туннели к контрагентам.
  • По каждому пункту заранее (до переключения) подайте заявку на добавление нового IP в whitelist — процесс на стороне некоторых платёжных систем занимает от нескольких часов до пары рабочих дней, это не мгновенная операция.
  • Старый IP из whitelist убирайте только после того, как убедились, что весь трафик идёт через новый — иначе рискуете на время получить обратную проблему: старый адрес ещё разрешён, новый ещё не добавлен, и в переходный период доступа нет вообще ни с одного.
  • Держите под рукой контакты техподдержки каждого партнёра — если whitelist не обновится вовремя, это единственный быстрый канал экстренного апдейта.

Если смена IP — часть более крупного переезда на новый сервер, стоит сразу свести все такие зависимости в общий план — как это сделать, разобрано в статье про составление плана миграции на новый сервер.

SPF-запись: как не улететь в спам после переезда

Если домен отправляет почту с того же сервера, чей IP меняется, SPF-запись — это не опция, а обязательный пункт подготовки. SPF (Sender Policy Framework) — TXT-запись в DNS, которая явно перечисляет, каким IP-адресам разрешено отправлять почту от имени вашего домена. Она выглядит примерно так:

example.com.  TXT  "v=spf1 ip4:203.0.113.10 -all"

Если в записи прописан старый IP, а почта фактически уходит уже с нового — принимающие серверы (Gmail, Яндекс, Mail.ru, корпоративные фильтры) увидят несоответствие: письмо отправлено не с того адреса, который домен объявил разрешённым. Результат — либо жёсткий отказ (если в конце записи стоит -all), либо, что коварнее, письмо доходит, но с пометкой подозрительности и попадает в спам даже при мягком ~all.

Что сделать до переключения IP:

  1. Найдите текущую SPF-запись: dig example.com TXT | grep spf.
  2. Добавьте новый IP в запись заранее, оставив старый: "v=spf1 ip4:203.0.113.10 ip4:198.51.100.20 -all" — на переходный период должны быть разрешены оба адреса, чтобы почта не переставала доходить ни секунды.
  3. Только когда почта гарантированно идёт с нового сервера и старый выключен, уберите старый IP из записи и оставьте только новый.
  4. Не забудьте про DKIM и обратную DNS-запись (PTR) для нового IP — они идут в связке со SPF и тоже влияют на репутацию отправителя. Если постфикс или другой MTA настраивается с нуля на новом сервере, пошаговая настройка есть в статье про установку SPF, DKIM и DMARC на VPS.

Отдельно: если DMARC-политика домена стоит в p=reject или p=quarantine, ошибка в SPF при смене IP видна получателю сразу и жёстко — письма не просто помечаются подозрительными, а массово отбраковываются. Проверяйте SPF по чек-листу выше даже если кажется, что «почта настроена и трогать нечего».

Проверяем репутацию нового IP-адреса

Этот пункт легко упустить, потому что кажется, будто новый IP — это чистый лист. На практике адрес, который выдаёт провайдер, — это переиспользуемый ресурс: до вас он мог принадлежать другому клиенту того же хостинга, и если тот клиент рассылал спам, размещал вредоносный контент или был скомпрометирован ботнетом, IP вполне может числиться в одном или нескольких чёрных списках (blacklist) прямо с момента выдачи вам.

Последствия отличаются по серьёзности в зависимости от того, для чего используется сервер:

  • Если сервер не отправляет почту и работает только как веб-сервер — присутствие в почтовых чёрных списках (Spamhaus и подобные) практически не влияет на доступность сайта для обычных посетителей.
  • Если сервер отправляет почту (транзакционные письма, рассылки, уведомления) — присутствие в блэклисте способно сразу же увести всю исходящую почту в спам или на жёсткий отказ, вне зависимости от того, насколько правильно настроены SPF/DKIM/DMARC.

Проверить репутацию IP до переключения можно бесплатными открытыми сервисами агрегированной проверки по спискам (например MXToolbox blacklist check, whatismyipaddress blacklist check или прямые запросы к DNSBL вроде Spamhaus Zen). Практическая команда для ручной проверки конкретного списка через dig (пример для Spamhaus Zen, IP разворачивается в обратном порядке октетов):

# проверка 203.0.113.10 в списке Spamhaus Zen
dig 10.113.0.203.zen.spamhaus.org A
# пустой ответ (NXDOMAIN) — IP чист по этому списку
# ответ вида 127.0.0.x — IP числится в списке

Если новый IP оказался в одном или нескольких списках — это не всегда повод отказываться от него: часть списков снимают адрес автоматически через некоторое время простоя без нарушений, часть требует ручного запроса на делистинг через форму провайдера списка. Но узнать об этом нужно до того, как на этот адрес переключилась вся почта домена, а не после первой волны жалоб «письма не доходят». Если IP уже используется и внезапно обнаружился в блэклисте — отдельный разбор восстановления в статье про попадание IP в чёрные списки и восстановление репутации.

Firewall, мониторинг и прочие места, где IP зашит явно

Последний пласт проблем — это все места в инфраструктуре, где старый IP-адрес прописан не через DNS-имя или переменную окружения, а буквально текстом. DNS-запись вы обновите, но эти конфиги молча продолжат ссылаться на адрес, которого уже нет.

Проверьте по списку:

  • Правила firewall на самом сервере и в облачной консолиufw status numbered, iptables -L -n, security groups в панели провайдера. Если правило разрешает доступ конкретному IP (например, офисному адресу к порту управления), это не зависит от смены вашего IP — а вот правила, которые ссылаются на старый ваш адрес как источник (например, в конфигурации кластера или репликации БД), нужно обновить на новый.
  • Список доверенных адресов в конфигах приложений — nginx allow/deny, PostgreSQL pg_hba.conf, Redis bind, VPN-конфиги WireGuard/OpenVPN с явным Endpoint, если между серверами настроен туннель или репликация.
  • Мониторинг и алерты — если Zabbix, Uptime Kuma, Prometheus или другой инструмент проверяет доступность по IP, а не по доменному имени, после смены адреса он либо начнёт ложно репортить «сервер недоступен» (проверяет старый IP), либо вообще не будет знать о новом сервере, пока проверку не переключат вручную.
  • PTR-запись (обратный DNS) для нового IP — отдельно от SPF, но напрямую влияет на репутацию при отправке почты и на некоторые проверки безопасности у партнёров; обновляется через панель хостинг-провайдера, не через вашу зону DNS.
  • Скрипты и cron-задачи, где адрес сервера захардкожен в curl/ssh/бэкап-скриптах — резервное копирование на другой сервер, health-check скрипты, интеграции CI/CD с явным IP хоста.
  • Документация и внутренние runbook — не техническая проблема, но именно из-за неё через полгода кто-то из команды по инерции подставит в конфиг старый адрес из старой инструкции.

Практический способ найти всё сразу — грубый, но рабочий: grep -r "СТАРЫЙ.IP" /etc /opt /home по конфигурационным директориям на самом сервере плюс отдельный проход по панелям сторонних сервисов (мониторинг, CI/CD, DNS-провайдер), которые не лежат на диске сервера и grep не найдёт.

Итог

Смена IP редко ломается на самом очевидном шаге — обновлении A-записи. Она ломается на том, что рядом: TTL, который не снизили заранее, whitelist, который не подали вовремя, SPF-запись, в которую забыли дописать новый адрес, репутация IP, которую не проверили, и конфиги, где старый адрес остался зашит текстом. Собранный по порядку, чек-лист подготовки выглядит так:

  1. За 24-48 часов до переключения снизить TTL A-записи до 300 секунд.
  2. Составить список внешних сервисов с whitelist по IP и заранее подать заявки на добавление нового адреса.
  3. Проверить репутацию нового IP по открытым чёрным спискам, особенно если сервер отправляет почту.
  4. Добавить новый IP в SPF-запись домена, оставив старый до полного переключения почты.
  5. Обновить PTR-запись для нового IP через панель провайдера.
  6. Пройтись по firewall-правилам, конфигам приложений, мониторингу и cron-скриптам на явные упоминания старого IP.
  7. Держать старый сервер включённым и синхронизированным по контенту, пока не истечёт переходный период по всем пунктам выше.
  8. Только после этого — отключать старый сервер и убирать старый IP из whitelist и SPF.

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.

Арендовать VPS

Нужны сами нейросети для контента?

Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.

Частые вопросы

За сколько времени до смены IP снижать TTL?

За 24-48 часов, а лучше раньше, если у текущей записи TTL был большой (сутки и больше) — важно, чтобы к моменту переключения весь мир уже закэшировал именно короткое значение TTL, а не старое большое.

Можно ли просто держать старый и новый сервер включёнными одновременно?

Да, и это самая безопасная тактика на переходный период — если оба сервера отдают одинаковый контент и принимают почту, то независимо от того, куда попал конкретный пользователь по устаревшему кэшу, для него ничего не ломается.

Как узнать заранее, был ли новый IP в чёрных списках?

Проверить через открытые агрегаторы (MXToolbox blacklist check и аналоги) или напрямую запросом к конкретному DNSBL через dig, до переключения почты на новый адрес.

Что делать, если whitelist у партнёра не обновили вовремя?

Держать старый сервер и старый IP доступным до подтверждения от партнёра, что новый адрес добавлен и реально работает — отключать старый только после успешного тестового запроса через новый IP.

Нужно ли менять PTR-запись при смене IP?

Да, если сервер отправляет почту или PTR используется в проверках безопасности у партнёров — PTR обновляется отдельно от SPF, обычно через панель хостинг-провайдера для нового адреса.

SPF, DKIM и PTR — это одно и то же?

Нет, это разные механизмы: SPF перечисляет разрешённые IP-отправители, DKIM подписывает письмо криптографически, PTR — обратное соответствие IP к имени сервера. При смене IP нужно проверить все три, но именно SPF ломается быстрее и заметнее всего, если забыть добавить новый адрес.

Обсудить статью, задать вопрос или начать новую тему

Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.

Перейти в сообщество →