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

Tài liệu này trình bày 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 FCM máy chủ để gửi thông báo và quản lý gói thuê bao.

Để gửi FCM thông báo 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 thông báo)
  • accounts.google.com (xác thực để gửi thông báo)
  • iid.googleapis.com (đăng ký chủ đề và quản lý 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ợ FCM lưu lượng truy cập cho thiết bị Android.

FCM cổng 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. Nhìn 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 như một phần trong kế hoạch bảo mật vành đai của họ.

Các 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 đến 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à ngăn chặn sự 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 để cho phép một số mục nhập SNI TLS đ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.

Các 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ợ phương thức 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 (không nên dùng) Sử dụng danh sách tĩnh rất lớn gồm các địa chỉ IP. Cho phép tất cả địa chỉ IP được liệt kê trong goog.json. Danh sách này được cập nhật thường xuyên và bạn nên cập nhật quy tắc hằng tháng. Các vấn đề do hạn chế về IP của tường lửa thường xảy ra 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 có cảnh báo, vì vậy, bạn 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 nhận thấy mọi người thường xuyên mắc lỗi chính tả khi cố gắng nhập danh sách cho phép IP trong quy tắc tường lửa.

Chúng tôi không đề xuất phương thức này vì thông tin chắc chắn sẽ lỗi thời và không được duy trì.

Ngoài ra, kích thước của danh sách có thể quá lớn đối với một số bộ định tuyến.

Tường lửa Dịch địa chỉ mạng hoặc Kiểm tra gói tin có 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 tin có trạng thái (SPI), hãy triển khai thời gian chờ là 30 phút trở lên cho các kết nối của chúng tôi qua các 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 để phân phối thông báo đẩy đến thiết bị không thể được chuyển 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 các máy chủ của chúng tôi.

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

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

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 kết nối dài hạn, dẫn đến trải nghiệm người dùng kém do thông báo bị bỏ lỡ hoặc bị trì hoãn hoặc tiêu hao nhiều pin. Khi VPN được định cấu hình để cho phép chúng tôi thực hiện việc này, chúng tôi sẽ bỏ qua VPN bằng cách sử dụng kết nối được mã hoá (qua mạng cơ sở Wi-Fi hoặc LTE) để đảm bảo trải nghiệm đáng tin cậy và tiết kiệm pin. Việc FCM's 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ử dụng VPN nếu VPN đang hoạt động. Khi FCM kết nối bỏ qua VPN, kết nối này sẽ mất thêm các lợi ích mà VPN có thể cung cấp, chẳng hạn như che giấu IP.

Các VPN khác nhau sẽ có các phương thức khác nhau để kiểm soát việc có thể bỏ qua 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ể dẫn đến tình trạng thông báo bị trì hoãn và có thể tiêu hao nhiều pin hơn khi Cloud Messaging hoạt động để duy trì kết nối qua kết nối VPN.