Obavijesti prestaju dolaziti na telefonu koji inače dobro pregledava web preko korporativnog VPN-a. Stranice se učitavaju, aplikacija se otvara, a poruke se pojavljuju samo kod kuće ili nakon isključivanja tunela. U aplikaciji izgrađenoj na Firebase Cloud Messagingu 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 ne uspije.

Potvrdite da aplikacija doista koristi FCM

Nije svaka obavijest push. Neke aplikacija zakazuje lokalno, neke se dohvaćaju preko HTTPS-a, a neke dolaze kanalom dobavljača koji nema veze s Firebaseom. Ako manifest i ovisnosti aplikacije uključuju Firebase Messaging, njezine obavijesti obično putuju FCM vezom, a klijentska knjižnica bilježi registraciju pod predvidljivom oznakom.

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

Registracijski token u zapisu potvrđuje prijenos. Bez njega otklanjate pogreške u aplikacijskom cjevovodu obavijesti i promjene vatrozida neće pomoći. Ta razlika je važna jer isporučena poruka koja se nikad ne prikaže i poruka koja nikad ne stigne korisniku izgledaju jednako.

Provjerite odlazne portove, a ne web-mjesto

FCM veze uređaja su TCP koje pokreće uređaj prema portu 5228, s 5229 i 5230 kao rezervama i 443 kao posljednjom opcijom. Vatrozid koji dopušta 443 za pregledavanje ipak može slomiti push, a pravilo koje dopušta API domenu aplikacije ne pokriva završne točke razmjene poruka, koje su zasebne usluge.

To su odlazne veze s telefona. Ne objavljujete ulazni port na uređaju ni na VPN pristupniku, pa ako netko predloži prosljeđivanje porta, dizajn je već pogrešan. Isto vrijedi za pravilo koje otvara jedan port svim adresama 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 navodi da se FCM protokol isporuke ne može prenositi običnim HTTP proxyjem. Stoga to što preglednik radi kroz korporativni web proxy ništa ne dokazuje o push utičnici: to su dva različita klijenta s različitim putovima.

Provjerite isteke mirovanja koji ubijaju utičnicu

FCM veza ostaje otvorena između poruka, što je čini osjetljivom na NAT isteke i isteke inspekcije stanja. Firebaseove smjernice traže najmanje 30 minuta tolerancije mirovanja gdje se takva pravila primjenjuju. Petominutni istek sesije tiho uklanja mapiranje, a telefon se ponovno povezuje tek kad ga nešto probudi, pa poruke dolaze u naletima ili nikako.

Pročitajte tablicu sesija na vatrozidu 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 istek za te portove umjesto da mijenjate sva pravila na uređaju, jer je globalnu promjenu isteka teško opravdati i još teže poništiti.

Push isporuka također ovisi o tome da mapiranje završne točke preživi roaming između Wi-Fi i mobilne mreže. Mapiranje vezano uz jedno sučelje može se odbaciti 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 može koristiti temeljnu mrežu kad je to zaobilaženje dopušteno. Push kanal u tom slučaju ostaje šifriran, ali više ne nosi adresu tunela, pa se maskiranje IP-a VPN-a na njega ne primjenjuje. To je politička razmjena, a ne kvar.

Ako vaša politika zabranjuje zaobilaženje, put tunela mora nositi vezu: portovi otvoreni, isteci dovoljno dugi, proxy izvan puta. Ne isključujte tiho upravljani servis i ne popuštajte zaključavanje samo zato što obavijesti rade na neupravljanoj mreži. Ikona VPN-a ne govori kojim je putem određena usluga krenula

Odvojite isporuku od prikaza, pa testirajte jednom

Dopuštenje, postavke kanala, Ne uznemiruj i prekidači po aplikaciji odlučuju hoće li se isporučena poruka prikazati. Na Androidu 13 i novijem dopuštenje za obavijesti daje se tijekom izvođenja, a odbijeno dopuštenje stvara tišinu koja izgleda točno kao blokiran port. Poruka koja je stigla ali nije prikazana problem je prikaza; rješavajte je zasebno.

Napravite jedan kontrolirani test umjesto slanja poruka nasumce. Držite uređaj, račun i aplikaciju nepromijenjenima, pošaljite jednu poruku s poznatom vremenskom oznakom i usporedite stanje VPN-a s odobrenom mrežom bez VPN-a. Zabilježite vrijeme primitka u logcatu i vrijeme prikaza za svako izvođenje. Ako se isporuka razlikuje, a prikaz ne, mrežni je put varijabla; ako su oba ista, nastavite gledati aplikaciju.

Dajte vlasniku mreže portove, ograničenje proxyja, izmjereni istek i odluku o zaobilaženju u jednoj bilješci. «Isključi VPN» nije nalaz, a dopuštanje svega Google prometa nije ciljana popravka.

Povezani članci