本文說明 FCM 在網路環境中正常運作所需的網路設定。
設定網路,將訊息傳送至 FCM
開始之前,請確認系統與 FCM 伺服器通訊,以便傳送訊息及管理訂閱項目。
如要傳送FCM訊息或管理訂閱項目,網路必須透過 HTTPS 與下列伺服器通訊:
- fcm.googleapis.com (傳送訊息)
- accounts.google.com (傳送訊息時的驗證)
- iid.googleapis.com (主題訂閱和裝置群組管理)
這份清單可能會隨時變動。我們無法為這些端點提供 IP 許可清單。
使用 FCM 為 Android 裝置設定網路
本節詳細說明如何設定網路,以支援 Android 裝置的 FCM 流量。
FCM 通訊埠和防火牆
絕大多數網路不會限制裝置連線至網際網路的其餘部分。一般來說,我們建議採用這種做法。不過,有些組織會將防火牆納入周邊安全防護計畫。
防火牆選項
| 選項 | 服務內容 | 專屬規則 | 附註 |
|---|---|---|---|
| 無 (偏好) | - | - | - |
| 根據通訊埠篩選 (第二個選項) | 限制特定通訊埠的流量 | 要開啟的 TCP 通訊埠:
|
這是最簡單的規則,可避免依賴日後較可能變更的事物。 |
| 依據主機名稱篩選 | 使用特殊防火牆設定,將特定 TLS SNI 項目加入許可清單,允許通過防火牆。這項功能可與通訊埠篩選功能搭配使用。 | 要開啟的主機名稱:
|
並非所有防火牆軟體都支援這項功能,但許多軟體都支援。這份清單相當穩定,但如有變更,我們不會主動通知您。 |
| 以 IP 為準的篩選 (強烈不建議) | 使用非常龐大的靜態 IP 位址清單。 | 將 goog.json 中列出的所有 IP 位址加入許可清單。這份清單會定期更新,建議您每月更新規則。防火牆 IP 限制造成的問題通常是間歇性的,而且難以診斷。 | 我們經常變更 IP 位址清單,且不會事先通知,因此您必須輸入這份龐大的清單,並經常更新。 此外,我們發現使用者在防火牆規則中輸入 IP 許可清單時,經常會出現錯字。 我們不建議這麼做,因為資訊一定會過時,且不會維護。 此外,清單的大小可能會讓某些路由器難以處理。 |
網路位址轉譯或有狀態封包檢查防火牆
如果您的網路實作網路位址轉譯 (NAT) 或有狀態封包檢查 (SPI),請為透過 5228-5230 埠建立的連線實作 30 分鐘以上的逾時。這樣一來,我們就能提供可靠的連線,同時減少使用者行動裝置的耗電量。
FCM 和 Proxy
FCM 用於將推播訊息傳送至裝置的通訊協定,無法透過網路 Proxy 進行 Proxy 處理。因此,請務必確保網路上的裝置可以透過 FCM 連線直接連上我們的伺服器。
VPN 互動和略過功能
Firebase Cloud Messaging 會採取各種步驟,確保手機與伺服器之間的推播訊息連線可靠,且盡可能保持可用狀態。使用 VPN 會使這項工作更加複雜。
VPN 會遮蓋 FCM 調整連線所需的基本資訊,導致無法盡可能提高穩定性和電池續航力。在某些情況下,VPN 會主動中斷長時間連線,導致訊息遺漏或延遲,或耗用大量電池電力,造成使用者體驗不佳。如果 VPN 設定允許,我們會使用加密連線 (透過基礎網路 Wi-Fi 或 LTE) 略過 VPN,確保提供可靠且省電的體驗。FCM 使用可略過 VPN 的功能,僅限於FCM推播通知管道。如果 VPN 處於啟用狀態,其他 FCM 流量 (例如註冊流量) 會使用 VPN。FCM 連線繞過 VPN 時,會失去 VPN 可能提供的額外好處,例如 IP 遮罩。
不同 VPN 會有不同的方法,可控制是否能略過 VPN。如需操作說明,請參閱特定 VPN 的說明文件。
如果 VPN 未設為可略過,Firebase Cloud Messaging 會使用 VPN 網路連線至伺服器。這可能會導致訊息延遲,且 Cloud Messaging 為了透過 VPN 連線維持連線,可能會耗用更多電池電力。