Android push-tilkynningar virka ekki með VPN? Athugaðu þetta
FCM heldur eigin útleið á portunum 5228-5230. Athugaðu proxy-regluna, NAT-tímamörk og VPN-framhjáferð áður en þú snertir tilkynningastillingar.
Tilkynningar hætta að berast í síma sem annars vafrar vel í gegnum fyrirtækja-VPN. Vefsíður hlaðast, appið opnast og skilaboð birtast aðeins heima eða eftir að slöngunni er slökkt. Í appi sem byggt er á Firebase Cloud Messaging er push-rásin aðskilin langlíf útleið, ekki HTTPS-leiðin sem vafrinn var að sanna. Farðu í gegnum þessar athuganir í röð og stöðvaðu við þá fyrstu sem bregst.
Staðfestu að appið noti raunverulega FCM
Ekki er hver tilkynning push. Sumar tímasetur appið staðbundið, sumar eru sóttar yfir HTTPS og sumar berast um rás seljanda sem hefur ekkert með Firebase að gera. Ef manifest og hugtök appsins innihalda Firebase Messaging fer tilkynningunum venjulega um FCM-tenginguna og biðlarasafnið skráir skráninguna undir fyrirsjáanlegu merki.
adb logcat -s FirebaseMessaging:V
adb shell dumpsys package <package> | grep -i firebase
Skráningartákn í loggnum staðfestir flutninginn. Án þess ertu að kemba tilkynningarpípu á appstigi og eldveggsbreytingar munu ekki hjálpa. Þessi greinarmunur skiptir máli því skilaboð sem eru afhent en birtast aldrei og skilaboð sem koma aldrei líta eins út fyrir notandann.
Athugaðu útleiðarportin, ekki vefsíðuna
FCM-tengingar tækja eru TCP sem tækið hefur frumkvæði að á port 5228, með 5229 og 5230 sem varaleiðir og 443 sem síðasta úrræði. Eldveggur sem leyfir 443 fyrir vafur getur samt brotið push og regla sem leyfir API-lén apps nær ekki yfir endapunkta skilaboðanna, sem eru aðskildar þjónustur.
Þetta eru útleiðartengingar frá símanum. Þú birtir ekki innleiðarport á tækinu eða VPN-gáttinni, svo ef einhver stingur upp á portframstökkvun er hönnunin þegar farin úrskeiðis. Sama gildir um reglu sem opnar eitt port fyrir öll netföng á internetinu: takmarkaðu hana við skjalfestu áfangastaðina.
| 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 |
Netleiðbeiningar Firebase segir einnig að ekki sé hægt að flytja FCM-afhendingarprotokollið um venjulegt HTTP-proxy. Það að vafri virki um fyrirtækisvefproxy sannar því ekkert um push-sokkið: þetta eru tveir mismunandi biðlarar með mismunandi leiðir.
Athugaðu aðgerðarleysis-tímamörkin sem drepa sokkið
FCM-tengingin helst opin á milli skilaboða, sem gerir hana viðkvæma fyrir NAT- og stöðuskoðunartímamörkum. Leiðbeiningar Firebase biðja um að minnsta kosti 30 mínútur af aðgerðarleysistolerans þar sem slík stefna gildir. Fimm mínútna setutímamörk fjarlægja vörpunina hljóðlaust og síminn tengist aðeins aftur þegar eitthvað vekur hann, svo skilaboð berast í hrinum eða alls ekki.
Lestu setutöfluna á eldveggnum eða VPN-gáttinni og finndu tengingu símans við 5228-5230. Berðu saman eftirstöðvar líftíma hennar við skjalfest gildið. Ef hann er styttri skaltu hækka tímamörkin fyrir þessi port í stað þess að breyta allri stefnu tækisins, því erfitt er að réttlæta almenna tímamarkabreytingu og enn erfiðara að afturkalla hana.
Push-afhending fer líka eftir því að vörpun endapunktsins lifi reikið milli Wi-Fi og farsímanets af. Vörpun sem er bundin við eitt viðmót getur fallið við yfirfærsluna jafnvel þótt bæði netin leyfi portin.
Ákveddu hvort VPN-framhjáferð sé ásættanleg
Android VPN-biðlarar geta leyft umferð að fara fram hjá slöngunni og FCM getur notað undirliggjandi netið þegar sú framhjáferð er leyfð. Push-rásin helst dulkóðuð í því tilfelli en ber ekki lengur vistfang slöngunnar, svo IP-felning VPN-sins gildir ekki fyrir hana. Það er stefnuskilyrði, ekki bilun.
Ef stefnan þín bannar framhjáferð verður slönguleiðin að bera tenginguna: port opin, tímamörk nógu löng, proxy ekki í veginum. Ekki útiloka stýrða þjónustu hljóðlega og ekki slaka á læsingunni bara af því að tilkynningar virka á óstýrðu neti. VPN-táknið segir ekki hvaða leið tiltekin þjónusta valdi
Aðskildu afhendingu frá birtingu og prófaðu einu sinni
Heimild, rásarstillingar, Ekki trufla og rofar fyrir hvert app ákvarða hvort afhent skilaboð birtast. Í Android 13 og nýrri er tilkynningaheimildin veitt á keyrslutíma og synjuð heimild veldur þögn sem lítur nákvæmlega út eins og lokað port. Skilaboð sem bárust en birtust ekki eru birtingarvandamál; meðhöndlaðu þau sér.
Gerðu eitt stýrt próf í stað þess að senda skilaboð tilviljunarkennt. Haltu tækinu, reikningnum og appinu föstum, sendu eitt skilaboð með þekktu tímastimpli og berðu saman VPN-ástandið við samþykkt net án VPN. Skráðu móttökutíma í logcat og birtingartíma fyrir hverja keyrslu. Ef afhending er mismunandi en birting ekki er netleiðin breytan; ef bæði eru eins skaltu halda áfram að skoða appið.
Gefðu neteigandanum portin, proxy-takmörkin, mældu tímamörkin og ákvörðunina um framhjáferð í einni athugasemd. «Slökktu á VPN» er ekki niðurstaða og að leyfa alla Google-umferð er ekki afmörkuð lagfæring.