Thiết lập và gỡ lỗi mạng

Tài liệu này cung cấp thông tin về cách thiết lập mạng và khắc phục các sự cố tiềm ẩn.

Ứng dụng API WhatsApp Business có một số yêu cầu về mạng để kết nối với máy chủ WhatsApp. Nếu doanh nghiệp bạn không thể thực hiện những điều dưới đây thì rất tiếc, chúng tôi không thể hỗ trợ quá trình tích hợp WhatsApp của bạn.

Chúng tôi hiểu rằng cấu hình mạng và mối lo ngại về bảo mật của các doanh nghiệp là không giống nhau. Hãy liên hệ với bộ phận Hỗ trợ trực tiếp nếu sau khi xem tài liệu này, bạn vẫn chưa thể thiết lập do gặp trở ngại với bất kỳ yêu cầu đặc biệt nào về bảo mật hoặc kết nối.

Để truy cập vào ứng dụng API WhatsApp Business, bạn cần phải có một kết nối TCP dài hạn. Đôi khi, hệ thống sẽ gửi yêu cầu để duy trì hoạt động của kết nối này. Tuy nhiên, bạn sẽ phải đảm bảo rằng tường lửa, bộ định tuyến, tính năng bảo mật và các thành phần khác của mình không chặn những kết nối TCP dài hạn đó.

Cổng

Có 2 cổng được sử dụng cho lưu lượng truy cập đi:

  • 5222
  • 443

Các cổng này không lắng nghe hoặc không được sử dụng cho lưu lượng truy cập đến. Tường lửa của doanh nghiệp bạn vẫn có thể ngăn lưu lượng truy cập đến như bình thường.

Cổng mặc định cho ứng dụng API WhatsApp Business là 5222. Nếu cổng đó không hoạt động, ứng dụng này sẽ dùng cổng dự phòng 443. Bạn cần mở cổng 443 cho HTTPS ở mức tối thiểu để đăng ký và khởi động lại ứng dụng. Bạn có thể đóng cổng 5222 và mở cổng 443 nhưng không thể mở cổng 5222 và đóng cổng 443.

Bạn nên mở cả 2 cổng và cho phép tất cả lưu lượng truy cập đi.

Giao thức

Ứng dụng API WhatsApp Business dùng 2 loại giao thức:

  • chatd
  • HTTPS

Giao thức chat độc quyền của WhatsApp có tên là chatd. Giao thức này được dùng để gửi tin nhắn và thông tin đã mã hóa đến và từ máy chủ WhatsApp. Vì đây là giao thức độc quyền nên bạn phải cho phép toàn bộ lưu lượng truy cập đi từ cổng mà mình mở. Một số tường lửa và proxy chặn các kết nối không phải SSL. Điều này sẽ cản trở khả năng kết nối của ứng dụng với máy chủ WhatsApp.

WhatsApp sử dụng HTTPS trong quá trình đăng ký và điều này là cần thiết cho trường hợp khởi động lại. Bạn không nên chặn HTTPS sau khi đăng ký vì bạn không thể biết được khi nào mình phải đăng ký lại hoặc khởi động lại ứng dụng.

Địa chỉ IP

WhatsApp sử dụng nhiều loại địa chỉ IP cho các máy chủ. Bạn có thể thử cho phép tất cả các địa chỉ IP đó. Tuy nhiên, tốt nhất là cho phép tất cả lưu lượng truy cập đi và kết nối từ những cổng trên.

Địa chỉ và dải IP của máy chủ WhatsApp (file .zip)
(cập nhật ngày 26/07/2022, áp dụng kể từ ngày 26/07/2022)

Danh sách này có thể thường xuyên thay đổi. Do đó, bạn nên cho phép tất cả lưu lượng truy cập đi từ cổng 5222 hoặc 443 để không phải cập nhật danh sách cho phép này trong mạng mỗi khi danh sách thay đổi.

Tên máy chủ

Bạn có thể thêm máy chủ WhatsApp vào danh sách cho phép theo tên máy chủ, chứ không phải theo địa chỉ IP.

Dưới đây là các tên máy chủ của máy chủ WhatsApp mà ứng dụng API WhatsApp Business yêu cầu kết nối:

  • .*.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

Hình ảnh vùng chứa Docker

Ngoài ra, bạn cũng sẽ cần cho phép truy cập vào kho lưu trữ trong JFrog - nơi chúng tôi lưu trữ hình ảnh vùng chứa Docker - để tải các hình ảnh đó xuống.

Bạn phải sử dụng tên máy chủ trong danh sách cho phép cho JFrog vì không thể cung cấp địa chỉ IP.

Sau đây là các tên máy chủ JFrog cần thiết:

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

Tường lửa

Tùy theo tường lửa và chức năng của tường lửa, việc đưa tên máy chủ vào danh sách cho phép có thể không hiệu quả. Thay vào đó, bạn cần đưa tất cả các địa chỉ IP vào danh sách cho phép.

Dưới đây là ví dụ về chế độ hoạt động của tường lửa không hiệu quả khi chỉ đưa tên máy chủ vào danh sách cho phép:

  • Tường lửa chạy truy vấn DNS (theo DNS được đặt cấu hình trong trung tâm dữ liệu) và sử dụng IP kết quả trong danh sách cho phép;
  • Tường lửa tìm kiếm những truy vấn DNS gửi đi từ các máy trong trung tâm dữ liệu và sử dụng địa chỉ IP nhận được trong phản hồi cho danh sách cho phép;
  • Tường lửa tìm kiếm các tên máy chủ trong quá trình trao đổi tín hiệu HTTP/HTTPS.

Trong trường hợp tường lửa của bạn thể hiện một trong những chế độ hoạt động này, vui lòng tiếp tục sử dụng các địa chỉ IP trong danh sách cho phép.

Proxy

Đặt cấu hình proxy mạng bằng cách đặt các biến môi trường sau đây cho proxy bạn đang sử dụng, sau đó chuyển chúng vào Coreapp:

  • http_proxy
  • https_proxy

Thử nghiệm bằng WADebug

Với công cụ WADebug, bạn có thể kiểm tra nhanh xem vùng chứa Coreapp có quyền truy cập vào tất cả các máy chủ WhatsApp được yêu cầu hay không. Khi đã cài đặt WADebug, bạn chỉ cần chạy:

  wadebug partial check_network