Định cấu hình Mạng cho FCM

Tài liệu này trình bày các cấu hình mạng cần thiết để FCM hoạt động đúng cách trong môi trường mạng của bạn.

Định cấu hình mạng để gửi thông báo đến FCM

Trước khi bắt đầu, bạn cần đảm bảo hệ thống của mình đang giao tiếp với máy chủ FCM để gửi tin nhắn và quản lý gói thuê bao.

Để gửi tin nhắn FCM hoặc quản lý gói thuê bao, mạng của bạn cần giao tiếp với các máy chủ sau qua https:

  • fcm.googleapis.com (gửi tin nhắn)
  • accounts.google.com (xác thực để gửi tin nhắn)
  • iid.googleapis.com (quản lý gói thuê bao theo chủ đề và nhóm thiết bị)

Danh sách này có thể thay đổi theo thời gian. Chúng tôi không thể cung cấp danh sách cho phép dựa trên IP cho các điểm cuối này.

Định cấu hình mạng cho thiết bị Android bằng FCM

Phần này trình bày chi tiết cách định cấu hình mạng để hỗ trợ lưu lượng truy cập FCM cho thiết bị Android.

Cổng FCM và tường lửa

Phần lớn các mạng không giới hạn thiết bị kết nối với phần còn lại của Internet. Nói chung, đây là đề xuất của chúng tôi. Tuy nhiên, một số tổ chức yêu cầu tường lửa trong kế hoạch bảo mật vành đai của họ.

Lựa chọn tường lửa

Phương thức Những việc chúng tôi làm Quy tắc cụ thể Ghi chú
Không có (ưu tiên) - - -
Lọc dựa trên cổng (lựa chọn thứ hai) Giới hạn lưu lượng truy cập vào các cổng cụ thể

Các cổng TCP cần mở:

  • 5228
  • 5229
  • 5230
  • 443
Đây là quy tắc đơn giản nhất và giúp tránh phụ thuộc vào những yếu tố có nhiều khả năng thay đổi theo thời gian.
Lọc dựa trên tên máy chủ Sử dụng cấu hình tường lửa đặc biệt để đưa một số mục SNI TLS nhất định vào danh sách cho phép đi qua tường lửa. Bạn có thể kết hợp phương thức này với tính năng lọc dựa trên cổng.

Tên máy chủ cần mở:

  • mtalk.google.com
  • mtalk4.google.com
  • mtalk-staging.google.com
  • mtalk-dev.google.com
  • alt1-mtalk.google.com
  • alt2-mtalk.google.com
  • alt3-mtalk.google.com
  • alt4-mtalk.google.com
  • alt5-mtalk.google.com
  • alt6-mtalk.google.com
  • alt7-mtalk.google.com
  • alt8-mtalk.google.com
  • android.apis.google.com
  • device-provisioning.googleapis.com
  • firebaseinstallations.googleapis.com
Không phải phần mềm tường lửa nào cũng hỗ trợ tính năng này, nhưng nhiều phần mềm có hỗ trợ. Danh sách này khá ổn định nhưng chúng tôi sẽ không chủ động thông báo cho bạn nếu có thay đổi.
Lọc dựa trên IP (rất không nên dùng) Sử dụng một danh sách tĩnh rất lớn gồm các địa chỉ IP. Thêm tất cả địa chỉ IP có trong tệp goog.json vào danh sách cho phép. Danh sách này được cập nhật thường xuyên và bạn nên cập nhật các quy tắc của mình hằng tháng. Các vấn đề do quy định hạn chế về IP của tường lửa thường không liên tục và khó chẩn đoán. Chúng tôi thay đổi danh sách địa chỉ IP rất thường xuyên và không báo trước, vì vậy, bạn sẽ cần nhập danh sách lớn này và cập nhật thường xuyên.

Ngoài ra, chúng tôi thường thấy lỗi chính tả khi mọi người cố gắng nhập danh sách cho phép IP trong quy tắc tường lửa của họ.

Chúng tôi không khuyến nghị điều này vì thông tin luôn bị lỗi thời và không được duy trì.

Ngoài ra, kích thước của danh sách có thể không phù hợp với một số bộ định tuyến.

Tường lửa Network Address Translation (Dịch địa chỉ mạng) hoặc Stateful Packet Inspection (Kiểm tra gói trạng thái)

Nếu mạng của bạn triển khai tính năng Dịch địa chỉ mạng (NAT) hoặc Kiểm tra gói có trạng thái (SPI), hãy triển khai thời gian chờ từ 30 phút trở lên cho các kết nối của chúng tôi qua cổng 5228-5230. Điều này cho phép chúng tôi cung cấp kết nối đáng tin cậy, đồng thời giảm mức tiêu thụ pin của thiết bị di động của người dùng.

FCM và proxy

Giao thức của FCM để gửi thông báo đẩy đến thiết bị không thể được uỷ quyền thông qua proxy mạng. Do đó, bạn cần đảm bảo rằng kết nối FCM từ các thiết bị trên mạng của bạn có thể kết nối trực tiếp với máy chủ của chúng tôi.

Tương tác và khả năng bỏ qua VPN

Firebase Cloud Messaging thực hiện nhiều bước để đảm bảo rằng kết nối thông báo đẩy từ điện thoại đến máy chủ luôn đáng tin cậy và hoạt động thường xuyên nhất có thể. Việc sử dụng VPN khiến nỗ lực này trở nên phức tạp hơn.

VPN che giấu thông tin cơ bản mà FCM cần để điều chỉnh kết nối nhằm tối đa hoá độ tin cậy và thời lượng pin. Trong một số trường hợp, VPN chủ động ngắt các kết nối lâu dài, dẫn đến trải nghiệm người dùng kém do tin nhắn bị bỏ lỡ hoặc bị trì hoãn hoặc tốn nhiều pin. Khi VPN được định cấu hình để cho phép chúng tôi làm như vậy, chúng tôi sẽ bỏ qua VPN bằng cách sử dụng kết nối đã mã hoá (qua mạng cơ sở Wi-Fi hoặc LTE) để đảm bảo trải nghiệm đáng tin cậy, tiết kiệm pin. Việc FCM sử dụng VPN có thể bỏ qua là dành riêng cho kênh Thông báo đẩy FCM. Lưu lượng truy cập FCM khác, chẳng hạn như lưu lượng truy cập đăng ký, sẽ sử dụng VPN nếu VPN đang hoạt động. Khi kết nối FCM bỏ qua VPN, kết nối đó sẽ mất các lợi ích bổ sung mà VPN có thể cung cấp, chẳng hạn như che giấu IP.

Mỗi VPN sẽ có các phương thức khác nhau để kiểm soát việc có thể bỏ qua VPN đó hay không. Hãy tham khảo tài liệu về VPN cụ thể của bạn để biết hướng dẫn.

Nếu VPN không được định cấu hình để có thể bỏ qua, thì Firebase Cloud Messaging sẽ sử dụng mạng VPN để kết nối với máy chủ. Điều này có thể khiến tin nhắn bị trễ trong một khoảng thời gian và có thể làm tăng mức sử dụng pin khi Cloud Messaging cố gắng duy trì kết nối qua kết nối VPN.