B24 ошибка [0] php_network_getaddresses: getaddrinfo failed: Name or service not known.

Если в журнале событий Битрикс24 или в логах PHP вы видите сообщение php_network_getaddresses: getaddrinfo failed: Name or service not known, это означает, что сервер не может преобразовать доменное имя в IP-адрес. Простыми словами — сломался DNS. В результате Битрикс не может подключиться к внешним сервисам: почтовым серверам, облачным API, службам уведомлений и интеграциям.

Что означает эта ошибка

Функция PHP getaddrinfo() отвечает за DNS-резолвинг — преобразование доменного имени (например, api.bitrix24.com) в IP-адрес. Когда она возвращает ошибку Name or service not known, это означает одно из следующего:

  • Сервер не знает, к каким DNS-серверам обращаться
  • Файл /etc/resolv.conf пустой, повреждён или содержит неверные данные
  • DNS-сервер недоступен или не отвечает
  • Сетевой интерфейс настроен неправильно

Ошибка чаще всего проявляется после перезагрузки сервера, смены провайдера или при работе на виртуальных машинах (BitrixVM, Docker-контейнерах).

Решение 1: Настройка /etc/resolv.conf

Первое, что нужно проверить — содержимое файла /etc/resolv.conf. Подключитесь к серверу по SSH под пользователем root и выполните:

Файл должен содержать хотя бы одну строку nameserver. Если файл пустой или содержит неверные адреса, отредактируйте его:

Добавьте следующие строки (публичные DNS Google и Cloudflare):

Сохраните файл (Ctrl+O, затем Ctrl+X). Изменения вступают в силу немедленно — перезагрузка не нужна.

Решение 2: Проверка /etc/hosts

Файл /etc/hosts имеет приоритет над DNS. Убедитесь, что в нём нет записей, перекрывающих нужные домены:

Стандартное содержимое должно включать только записи для localhost и имени хоста сервера. Если там есть записи для внешних доменов с неверными IP — удалите их.

Решение 3: Перезапуск сетевых служб

На некоторых системах проблема решается перезапуском сетевого стека:

Решение 4: Для BitrixVM — проверка настроек сети

BitrixVM (виртуальная машина Битрикс на CentOS) имеет собственный инструмент настройки сети. Зайдите в меню управления BitrixVM и выберите пункт Network settings. Убедитесь, что:

  • IP-адрес и маска подсети заданы корректно
  • Шлюз по умолчанию прописан
  • DNS-серверы указаны (хотя бы один)

После изменения настроек в меню BitrixVM конфигурация записывается в файлы /etc/sysconfig/network-scripts/ifcfg-eth0 (или аналогичный интерфейс) и применяется автоматически. В этом случае не редактируйте /etc/resolv.conf напрямую — при следующей перезагрузке сетевая служба перезапишет файл из своей конфигурации.

Как проверить, что DNS работает

После внесения изменений проверьте резолвинг несколькими способами:

Если nslookup возвращает IP-адрес — DNS работает. Также можно проверить, что именно Битрикс теперь может достучаться до нужного домена:

Если функция вернула IP-адрес (а не исходное доменное имя) — PHP резолвинг работает корректно.

Почему resolv.conf может сбрасываться

На серверах с DHCP файл /etc/resolv.conf перезаписывается при каждом получении сетевых настроек от DHCP-сервера. Чтобы ваши DNS-настройки сохранялись постоянно, используйте один из подходов:

  • Зафиксировать статический IP вместо DHCP — тогда resolv.conf не будет перезаписываться
  • Указать DNS в конфиге интерфейса — для CentOS в файле /etc/sysconfig/network-scripts/ifcfg-eth0 добавьте строки DNS1=8.8.8.8 и DNS2=8.8.4.4
  • Использовать resolvconf или systemd-resolved — эти службы управляют resolv.conf централизованно и не затираются DHCP-клиентом

После устранения проблемы с DNS ошибка php_network_getaddresses: getaddrinfo failed в Битрикс исчезнет, и все интеграции с внешними сервисами заработают в штатном режиме.