Настройка и отладка сети

Этот документ содержит информацию о настройке сети и отладке возможных проблем.

Для правильного подключения к серверам WhatsApp клиент WhatsApp Business API предъявляет определенные требования к сети. Если ваша компания не может выполнить перечисленные ниже условия, мы не сможем обеспечить вам интеграцию WhatsApp.

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

Клиенту WhatsApp Business API для работы необходимо долгосрочное подключение TCP. Для его поддержки в активном состоянии периодически отправляются запросы. При этом вы должны проследить за тем, чтобы брандмауэр, маршрутизатор, система безопасности и другие средства на вашей стороне не прерывали долгосрочные подключения TCP.

Порты

Для исходящего трафика используются два порта:

  • 5222
  • 443

Они не прослушиваются и не используются для входящего трафика. Брандмауэр вашей компании может и далее обеспечивать фильтрацию входящего трафика.

По умолчанию клиент WhatsApp Business API использует порт 5222. Если он недоступен, приложение использует резервный порт 443. Порт 443 должен быть открыт для соединений HTTPS как минимум на этапе регистрации и перезапуска приложения. Можно оставить порт 5222 закрытым и открыть порт 443, но нельзя открыть порт 5222, закрыв при этом порт 443.

Рекомендуется открыть оба порта и разрешить весь исходящий трафик.

Протоколы

Клиент WhatsApp Business API использует протоколы двух типов:

  • chatd
  • HTTPS

Для обмена зашифрованными сообщениями и информацией с серверами WhatsApp используется собственный протокол чата WhatsApp, chatd. Это частный протокол, поэтому мы просим добавить открытый порт в список разрешенных для всего исходящего трафика. Некоторые брандмауэры и прокси-серверы разрывают все подключения, кроме SSL, что может воспрепятствовать подключению приложения к серверам WhatsApp.

WhatsApp использует протокол HTTPS во время регистрации. Он также необходим для перезапуска приложения. Мы не рекомендуем блокировать протокол HTTPS после регистрации, поскольку неизвестно, в какой момент потребуется заново зарегистрировать или перезапустить клиент.

IP-адреса

WhatsApp использует серверы с широким диапазоном IP-адресов. Можно попробовать добавить их все в список разрешенных. Однако лучше просто разрешить весь исходящий трафик и подключения по указанным выше портам.

Список IP-адресов и диапазонов серверов WhatsApp (в архиве ZIP)
(обновлен 26 июля 2022 г., вступает в силу с 26 июля 2022 г.)

Этот список может часто изменяться. Чтобы не обновлять список разрешенных после каждого такого изменения, рекомендуется разрешить весь исходящий трафик с порта 5222 или 443.

Имена хостов

Серверы WhatsApp можно добавлять в список разрешенных по именам хостов, а не по IP-адресам.

Ниже перечислены имена хостов серверов WhatsApp, с которыми клиенту WhatsApp Business API необходимо соединение.

  • .*.cdn.whatsapp.net
  • g.whatsapp.net
  • graph.facebook.com
  • graph.whatsapp.com
  • media-.*.cdn.whatsapp.net
  • media..*.fna.whatsapp.net
  • mmg.whatsapp.net
  • pps.whatsapp.net
  • static.whatsapp.net
  • v.whatsapp.net

Образы контейнеров Docker

Чтобы скачать образы контейнеров Docker, необходимо предоставить доступ к нашему репозиторию JFrog, где они хранятся.

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

Вот необходимые имена хостов JFrog:

  • docker.whatsapp.biz
  • dl.bintray.com
  • akamai.bintray.com

Брандмауэры

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

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

  • отправка брандмауэром запроса DNS на сравнение с конфигурацией DNS в дата-центре и занесение полученных IP-адресов в список разрешенных;
  • поиск брандмауэром исходящих запросов DNS от устройств в дата-центре и занесение полученных IP-адресов в список разрешенных;
  • поиск брандмауэром имен хостов при подтверждении подключения HTTP/HTTPS.

Если ваш брандмауэр работает по одной из этих схем, добавьте в свой список разрешенных IP-адреса.

Прокси-серверы

Настройте сетевые прокси-серверы, задав для следующих переменных среды параметры вашего прокси, а затем передайте эти переменные в приложение Coreapp:

  • http_proxy
  • https_proxy

Тестирование с помощью WADebug

Инструмент WADebug позволяет быстро проверить, имеет ли контейнер Coreapp доступ ко всем необходимым серверам WhatsApp. Установите WADebug и выполните следующую команду:

  wadebug partial check_network