Android push obavijesti ne rade s VPN-om? Provjerite ovo
FCM drži svoju odlaznu vezu na portovima 5228-5230. Provjerite pravilo proxyja, NAT timeout i zaobilaženje VPN-a prije nego dirate postavke obavijesti.
Obavijesti prestaju dolaziti na telefonu koji inače dobro pregledava web kroz korporativni VPN. 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 logu 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.
| 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 |
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 timeoutove mirovanja koji ubijaju utičnicu
FCM veza ostaje otvorena između poruka, što je čini osjetljivom na NAT i timeoutove inspekcije stanja. Firebaseove smjernice traže najmanje 30 minuta tolerancije mirovanja gdje se takve politike primjenjuju. Petominutni timeout 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 timeout za te portove umjesto da mijenjate sve politike na uređaju, jer je globalnu promjenu timeouta 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, timeoutovi 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 timeout i odluku o zaobilaženju u jednoj bilješci. «Isključi VPN» nije nalaz, a dopuštanje svega Google prometa nije ciljana popravka.