设置及调试网络

本文档提供与设置网络和排除潜在问题有关的信息。

如要将 WhatsApp Business API 客户端连接至 WhatsApp 服务器,则需满足一定的网络要求。如果您的企业无法进行以下操作,���么很遗憾,我们将无法支持您的 WhatsApp 集成。

我们深知不同企业拥有不同的网络配置,也面临不同的安全问题。当您在设置中遇到任何特殊的连接或安全要求时,如果本文档不足以提供帮助,请联系站内支持

必须为 WhatsApp Business API 客户端建立长期有效的 TCP 连接。客户端会不时发出请求,因此连接不会处于空闲状态。但是,您必须确保防火墙、路由器和安全措施等不会终止长期有效的 TCP 连接。

端口

以下两个端口将用于传输出站流量:

  • 5222
  • 443

这两个端口不会进行侦听或用于传输入站流量。您企业的防火墙可以如常保护客户端,防止其受到入站流量侵扰。

WhatsApp Business API 客户端的默认端口为 5222。如果默认端口不可用,应用程序将回退至 443 端口。应至少打开 HTTPS 对应的 443 端口,否则应用程序将无法注册和重启。您可以关闭 5222 端口并打开 443 端口,但不能只打开 5222 端口而关闭 443 端口。

建议您同时打开两个端口并允许所有出站流量。

协议

WhatsApp Business API 客户端使用以下两种协议:

  • chatd
  • HTTPS

WhatsApp 专有聊天协议(即 chatd)可用于发送往来于 WhatsApp 服务器的加密消息和信息。因其专有性,我们要求您将打开的端口加入白名单,允许所有出站流量。一些防火墙和代理程序会终止非 SSL 连接,这会导致应用程序连接至 WhatsApp 服务器时出现异常。

WhatsApp 会在注册期间和重启时使用 HTTPS。我们不建议您在注册后屏蔽 HTTPS,因为您不知道何时需要重新注册或重启自己的应用程序。

IP 地址

WhatsApp 的服务器会使用多个 IP 地址。您可以尝试允许所有 IP 地址,但建议您只允许上述端口的所有出站流量和连接。

WhatsApp 服务器 IP 地址和范围(.zip 文件)
(2022 年 7 月 26 日更新,自当日起适用)

此清单可能会经常更改,因此,我们建议您允许 5222443 端口的所有出站流量,以免此清单每次有变更时您都必须在网络中更新白名单。

主机名称

您可以按照主机名称而非 IP 地址的形式将 WhatsApp 服务器添加到白名单中。

WhatsApp Business API 客户端需要连接的 WhatsApp 服务器主机名称如下:

  • .*.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 容器映像

您还需要允许访问 JFrog 中托管 Docker 容器映像的存储库,以便下载映像。

由于无法提供 IP 地址,因此您必须在白名单中使用 JFrog 主机名称。

必须提供的 JFrog 主机名称包括:

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

防火墙

依防火墙及其工作方式不同,仅将这些主机名称加入白名单可能无法起作用,这时您还需要将所有 IP 地址加入白名单。

如果只将主机名称添加至白名单,一些防火墙行为可能无法生效,示例如下:

  • 防火墙执行 DNS 查询操作(根据数据中心内的 DNS 配置),并使用白名单中生成的 IP 地址;
  • 防火墙在数据中心内查找由机器发出的出站 DNS 查询结果,并使用对白名单的响应中所列的 IP 地址;
  • 防火墙在 HTTP/HTTPS 握手中查找主机名称。

如果您的防火墙出现以上任一种行为,请继续使用白名单中的 IP 地址。

代理

配置网络代理时,将以下环境变量设置为您正在使用的代理,然后将其传递至核心应用:

  • http_proxy
  • https_proxy

使用 WADebug 执行测试

WADebug 工具有助于快速检查核心应用容器是否可以访问所有必要的 WhatsApp 服务器。安装 WADebug 之后,只需运行:

  wadebug partial check_network