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 của bạn để gửi tin nhắn đế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ở:
|
Đây là quy tắc đơn giản nhất và ngăn chặn sự phụ thuộc vào những thứ 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ở:
|
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 Dịch địa chỉ mạng hoặc Tường lửa kiểm tra gói 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 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 các thiết bị không thể được uỷ quyền thông qua các 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 tin nhắn đẩ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 duy trì 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ặc tiêu hao 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 một kết nối được mã hoá (qua mạng Wi-Fi hoặc LTE cơ bản) để đảm bảo trải nghiệm đáng tin cậy và tiết kiệm pin. Việc sử dụng VPN có thể bỏ qua của FCM dành riêng cho kênh Thông báo đẩy của 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ể dẫn đến tình trạng tin nhắn bị trễ trong một khoảng thời gian và có thể khiến pin tiêu thụ nhiều hơn vì Cloud Messaging hoạt động để duy trì kết nối qua kết nối VPN.