Android push paziņojumi nedarbojas ar VPN? Pārbaudiet šo
FCM uztur savienojumu uz āru portos 5228-5230. Pirms aiztikt paziņojumu iestatījumus pārbaudiet starpniekservera noteikumu, NAT taimautu un VPN apiešanu.
Paziņojumi pārstāj pienākt telefonā, kas citādi labi pārlūko, izmantojot uzņēmuma VPN. Tīmekļa lapas ielādējas, lietotne atveras, un ziņojumi parādās tikai mājās vai pēc tuneļa izslēgšanas. Lietotnē, kas veidota uz Firebase Cloud Messaging, push kanāls ir atsevišķs ilgstošs izejošs savienojums, nevis HTTPS ceļš, ko pārlūks tikko pierādīja. Veiciet šīs pārbaudes secīgi un apstājieties pie pirmās, kas neizdodas.
Pārliecinieties, ka lietotne patiešām izmanto FCM
Ne katrs paziņojums ir push. Dažus lietotne ieplāno lokāli, citi tiek pieprasīti pa HTTPS, bet vēl citi nāk pa piegādātāja kanālu, kuram nav nekāda sakara ar Firebase. Ja lietotnes manifests un atkarības ietver Firebase Messaging, tās paziņojumi parasti iet pa FCM savienojumu, un klienta bibliotēka reģistrāciju ieraksta zem paredzama taga.
adb logcat -s FirebaseMessaging:V
adb shell dumpsys package <package> | grep -i firebase
Reģistrācijas tokens žurnālā apstiprina pārvadi. Bez tā jūs atkļūdojat lietotnes līmeņa paziņojumu plūsmu, un ugunsmūra izmaiņas nepalīdzēs. Šī atšķirība ir svarīga, jo piegādāts, bet nekad neparādīts ziņojums un nekad neatnākošs ziņojums lietotājam izskatās vienādi.
Pārbaudiet izejošos portus, nevis vietni
FCM ierīces savienojumi ir ierīces iniciēti TCP uz 5228 portu, ar 5229 un 5230 kā rezerves un 443 kā pēdējo līdzekli. Ugunsmūris, kas atļauj 443 pārlūkošanai, joprojām var salauzt push, un noteikums, kas atļauj lietotnes API domēnu, neaptver ziņojumapmaiņas galapunktus, kas ir atsevišķi pakalpojumi.
Šie ir izejoši savienojumi no tālruņa. Jūs nepublicējat ienākošo portu ierīcē vai VPN vārtejā, tāpēc, ja kāds ierosina porta pāradresāciju, dizains jau ir nepareizs. Tas pats attiecas uz noteikumu, kas atver vienu portu visām interneta adresēm: ierobežojiet to ar dokumentētajiem galamērķiem.
| Port | Role | What to verify |
|---|---|---|
| 5228 | Primary FCM connection | Outbound allowed and session state kept |
| 5229, 5230 | Fallback ports | Often missing from hand-written allowlists |
| 443 | Last-resort fallback | Works only if the client actually falls back |
| HTTP proxy | Not a supported FCM transport | Proxy exclusion or bypass, not a port rule |
Firebase tīkla norādes arī norāda, ka FCM piegādes protokolu nevar pārvadīt pa parastu HTTP starpniekserveri. Tāpēc tas, ka pārlūks darbojas pa uzņēmuma tīmekļa starpniekserveri, neko nepierāda par push ligzdu: tie ir divi dažādi klienti ar dažādiem ceļiem.
Pārbaudiet dīkstāves taimautus, kas nogalina ligzdu
FCM savienojums paliek atvērts starp ziņojumiem, tāpēc tas ir jutīgs pret NAT un stāvokļa pārbaudes taimautiem. Firebase norādes prasa vismaz 30 minūtes dīkstāves tolerances tur, kur šāda politika attiecas. Piecu minūšu sesijas taimauts klusi noņem kartējumu, un tālrunis atkārtoti pieslēdzas tikai tad, kad kaut kas to pamodina, tāpēc ziņojumi pienāk uzplūdos vai vispār nepienāk.
Izlasiet sesiju tabulu ugunsmūrī vai VPN vārtejā un atrodiet tālruņa savienojumu ar 5228-5230. Salīdziniet tā atlikušo mūžu ar dokumentēto vērtību. Ja tas ir īsāks, palieliniet taimautu šiem portiem, nevis mainiet visas ierīces politikas, jo globālu taimauta izmaiņu ir grūti pamatot un vēl grūtāk atcelt.
Push piegāde ir atkarīga arī no tā, vai galapunkta kartējums pārdzīvo pārvietošanos starp Wi-Fi un mobilo tīklu. Kartējums, kas piesaistīts vienai saskarnei, var tikt atmests pārejā pat tad, ja abi tīkli atļauj portus.
Izlemiet, vai VPN apiešana ir pieņemama
Android VPN klienti var atļaut trafikam apiet tuneli, un FCM var izmantot apakšējo tīklu, kad šāda apiešana ir atļauta. Šajā gadījumā push kanāls paliek šifrēts, bet vairs nenes tuneļa adresi, tāpēc VPN IP maskēšana uz to neattiecas. Tas ir politikas kompromiss, nevis darbības traucējums.
Ja jūsu politika aizliedz apiešanu, tuneļa ceļam ir jānes savienojums: porti atvērti, taimauti pietiekami gari, starpniekserveris nav ceļā. Klusi neizslēdziet pārvaldītu pakalpojumu un neatlaidiet bloķēšanu tikai tāpēc, ka paziņojumi darbojas nepārvaldītā tīklā. VPN ikona nenorāda, kuru ceļu izvēlējās konkrēts pakalpojums
Atdaliet piegādi no attēlošanas, tad pārbaudiet vienreiz
Atļauja, kanāla iestatījumi, Netraucēt un katras lietotnes slēdži nosaka, vai piegādātais ziņojums tiks parādīts. Android 13 un jaunākās versijās paziņojumu atļauja tiek piešķirta izpildlaikā, un noraidīta atļauja rada klusumu, kas izskatās tieši kā bloķēts ports. Ziņojums, kas atnāca, bet netika parādīts, ir attēlošanas problēma; risiniet to atsevišķi.
Veiciet vienu kontrolētu testu, nevis sūtiet ziņojumus nejauši. Turiet ierīci, kontu un lietotni nemainīgus, nosūtiet vienu ziņojumu ar zināmu laikatzīmi un salīdziniet VPN stāvokli ar apstiprinātu tīklu bez VPN. Pierakstiet logcat saņemšanas laiku un parādīšanas laiku katram izpildījumam. Ja piegāde atšķiras, bet attēlošana ne, tīkla ceļš ir mainīgais; ja abi ir vienādi, turpiniet skatīties lietotni.
Nododiet tīkla īpašniekam portus, starpniekservera ierobežojumu, izmērīto taimautu un apiešanas lēmumu vienā piezīmē. «Izslēdz VPN» nav atradums, un visu Google trafika atļaušana nav mērķēta labošana.