네트워크 설정 및 디버그

이 문서에서는 네트워크를 설정하고 잠재적 문제를 디버깅하기 위한 정보를 제공합니다.

WhatsApp Business API 클라이언트를 WhatsApp 서버와 연결하기 위한 몇 가지 네트워크 요구 사항이 있습니다. 비즈니스가 아래의 요구 사항을 이행하지 못할 경우, 죄송하지만 WhatsApp 통합을 지원할 수 없습니다.

비즈니스마다 네트워크 구성과 보안 우려 사항이 다르다는 것은 알고 있습니다. 특수한 연결성이나 보안 요구 사항으로 인해 이 문서만으로 설정이 어렵다면 기술 지원에 문의하세요.

WhatsApp Business API 클라이언트는 장기 실행 TCP 연결이 필요합니다. 요청을 수시로 전송하므로 연결에 유휴 상태가 길어지지 않습니다. 그러나 방화벽, 라우터, 보안 등으로 인해 장기 실행 TCP 연결이 종료되지 않도록 해야 합니다.

포트

외부로 전송되는 트래픽에는 두 개의 포트를 사용합니다.

  • 5222
  • 443

수신되는 트래픽을 받거나 해당 트래픽에 사용하지 않습니다. 비즈니스의 방화벽은 여전히 평소처럼 수신되는 트래픽으로부터 보호할 수 있습니다.

WhatsApp Business API 클라이언트의 기본 포트는 5222입니다. 이 포트를 사용할 수 없을 경우 앱이 443 포트로 폴백됩니다. 적어도 앱 등록 및 재시작 시 HTTPS에 대해 443 포트를 열어야 합니다. 5222 포트를 닫은 채로 두고 443 포트를 열 수 있지만, 5222443 포트는 열 수 없습니다.

두 포트를 모두 열고 외부로 나가는 모든 트래픽을 허용하는 것이 좋습니다.

프로토콜

WhatsApp Business API 클라이언트는 두 가지 유형의 프로토콜을 사용합니다.

  • chatd
  • HTTPS

WhatsApp 독점 채팅 프로토콜(chatd)은 WhatsApp 서버에서 암호화된 메시지와 정보를 주고받는 데 사용합니다. 독점적 프로토콜이기 때문에 개방하는 포트를 허용 리스트에 등록하여 모든 외부로 나가는 트래픽을 허용해야 합니다. 일부 방화벽과 프록시는 SSL 외의 연결을 종료하며, 이는 앱이 WhatsApp 서버에 연결하는 기능을 간섭합니다.

WhatsApp은 등록 중에 HTTPS를 사용하며 이는 재시작이 필요합니다. 등록 후에 HTTPS를 차단하는 방법은 권장하지 않습니다. 앱을 언제 등록하거나 다시 시작해야 할지 알 수 없기 때문입니다.

IP 주소

WhatsApp은 서버에 여러 가지 IP 주소를 사용합니다. 모든 IP 주소를 허용할 수도 있습니다. 하지만 위의 포트에서 모든 외부로 나가는 트래픽과 연결만 허용하는 것이 중요합니다.

WhatsApp 서버 IP 주소 및 범위(.zip 파일)
(2022년 7월 26일 업데이트됨, 2022년 7월 26일부터 적용 예정)

이 리스트는 종종 변경될 수 있습니다. 그러므로 리스트가 변경될 때마다 네트워크에서 허용 리스트를 업데이트할 필요가 없도록 5222 또는 443 포트에서 모든 외부로 나가는 트래픽을 허용하는 것이 좋습니다.

호스트 이름

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 컨테이너 이미지

또한 Docker 컨테이너 이미지를 다운로드하기 위해서는 이 이미지를 호스트하는 JFrog의 저장소에 대한 액세스 권한도 허용해야 합니다.

IP 주소를 제공할 수 없으므로 반드시 JFrog에 허용 리스트의 호스트 이름을 사용해야 합니다.

필수적인 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 도구는 코어앱 컨테이너가 전체 필수 WhatsApp 서버에 액세스할 수 있는지 빠르게 확인합니다. WADebug가 설치된 경우 다음과 같이 실행하면 됩니다.

  wadebug partial check_network

더 알아보기