Obavještenja prestaju dolaziti na telefon koji inače normalno pretražuje kroz korporativni VPN. Stranice se učitavaju, aplikacija se otvara, a poruke se pojavljuju samo kod kuće ili nakon isključivanja tunela. Za aplikaciju izgrađenu na Firebase Cloud Messaging push kanal je zasebna dugotrajna odlazna veza, a ne HTTPS put koji je preglednik upravo dokazao. Prođite ove provjere redom i zaustavite se na prvoj koja padne.

Potvrdite da aplikacija zaista koristi FCM

Nije svako obavještenje push. Neka se zakazuju lokalno u aplikaciji, neka se povlače preko HTTPS-a, a neka dolaze kroz kanal dobavljača koji nema veze s Firebaseom. Ako manifest i zavisnosti aplikacije uključuju Firebase Messaging, njena obavještenja obično putuju kroz FCM vezu, a klijentska biblioteka bilježi registraciju pod predvidivim tagom.

adb logcat -s FirebaseMessaging:V
adb shell dumpsys package <package> | grep -i firebase

Token za registraciju u logu potvrđuje transport. Bez njega otklanjate kvar u kanalu obavještenja na razini aplikacije i promjene na firewallu neće pomoći. Ova razlika je važna jer dostavljena ali nikad prikazana poruka i poruka koja nikad nije stigla korisniku izgledaju isto.

Provjerite odlazne portove, ne web stranicu

FCM veze uređaja su odlazne TCP veze s telefona na port 5228, s 5229 i 5230 kao rezervnim i 443 kao posljednjom opcijom. Firewall koji dopušta 443 za pretraživanje može ipak slomiti push, a pravilo koje dopušta domenu API-ja aplikacije ne pokriva završne točke razmjene poruka jer su to odvojene usluge.

To su odlazne veze s telefona. Ne objavljujete ulazni port na uređaju ni na VPN pristupniku, pa ako neko predloži prosljeđivanje porta, dizajn je već pogrešan. Isto vrijedi za pravilo koje otvara jedan port prema svakoj adresi na internetu: ograničite ga na dokumentirana odredišta.

PortRoleWhat to verify
5228Primary FCM connectionOutbound allowed and session state kept
5229, 5230Fallback portsOften missing from hand-written allowlists
443Last-resort fallbackWorks only if the client actually falls back
HTTP proxyNot a supported FCM transportProxy exclusion or bypass, not a port rule

Firebaseove mrežne smjernice također navode da se FCM protokol dostave ne može prenijeti preko običnog HTTP proxyja. Uspjeh preglednika kroz korporativni web proxy ne dokazuje ništa o push utičnici: to su različiti klijenti s različitim putanjama.

Provjerite timeoutove mirovanja koji ubijaju utičnicu

FCM veza ostaje otvorena između poruka, što je čini osjetljivom na NAT i timeoutove provjere stanja. Firebaseove smjernice traže najmanje 30 minuta tolerancije mirovanja gdje takve politike vrijede. Timeout sesije od pet minuta tiho uklanja mapiranje, a telefon se ponovno povezuje samo kad ga nešto probudi, pa poruke dolaze u valovima ili nikako.

Pročitajte tablicu sesija na firewallu ili VPN pristupniku i pronađite vezu telefona prema 5228-5230. Usporedite njezin preostali životni vijek s dokumentiranom vrijednošću. Ako je kraći, povećajte timeout za te portove umjesto da mijenjate svaku politiku na uređaju.

Dostava također ovisi o tome preživljava li mapiranje završne točke prelazak između Wi-Fi i mobilne mreže. Mapiranje vezano uz jedno sučelje može se izgubiti pri prijelazu čak i kad obje mreže dopuštaju portove.

Odlučite je li zaobilaženje VPN-a prihvatljivo

Android VPN klijenti mogu dopustiti prometu da zaobiđe tunel, a FCM tada može koristiti temeljnu mrežu kad je to dopušteno. Push kanal ostaje šifriran, ali više ne nosi adresu tunela, pa se maskiranje IP-a putem VPN-a na njega ne odnosi. To je kompromis u politici, a ne kvar.

Ako vaša politika zabranjuje zaobilaženje, put kroz tunel mora nositi vezu: portovi otvoreni, timeouti dovoljno dugi, proxy ne smeta. Ne isključujte tiho upravljani servis i ne popuštajte zaključavanje samo zato što obavještenja rade na neupravljanoj mreži. Ikona VPN-a ne govori koju je putanju odabrala pojedina usluga.

Odvojite dostavu od prikaza, pa testirajte jednom

Dozvola, postavke kanala, Ne uznemiravaj i prekidači po aplikaciji odlučuju hoće li se dostavljena poruka prikazati. Na Androidu 13 i novijem dozvola za obavještenja daje se u vrijeme rada, a odbijena dozvola stvara tišinu koja izgleda kao blokiran port. Poruka koja je stigla ali nije prikazana problem je prikaza, tretirajte ga odvojeno.

Napravite jedan kontrolirani test umjesto slanja poruka nasumično. Držite uređaj, račun i aplikaciju fiksiranima, pošaljite jednu poruku s poznatom vremenskom oznakom i usporedite uvjet s VPN-om s odobrenom mrežom bez VPN-a. Zabilježite vrijeme primitka u logcatu i vrijeme prikaza za svako pokretanje. Ako se dostava razlikuje, a prikaz ne, mrežna putanja je varijabla; ako su oba ista, nastavite gledati aplikaciju.

Dajte vlasniku mreže portove, ograničenje proxyja, izmjereni timeout i odluku o zaobilaženju u jednoj bilješci. Isključite VPN nije nalaz, a dopuštanje cijelog Google prometa nije ograničena popravka.

Povezani članci