Android push билдирүүлөрү VPN менен иштебей жатабы? Буларды текшериңиз
FCM өзүнүн чыгуучу байланышын 5228-5230 портторунда кармайт. Билдирүү жөндөөлөрүнө тийүүдөн мурун proxy эрежесин, NAT мөөнөтүн жана VPNди айланып өтүүнү текшериңиз.
Калган нерселерде корпоративдик VPN аркылуу жакшы серептеген телефонго билдирүүлөр келбей калат. Веб барактар жүктөлөт, колдонмо ачылат, ал эми билдирүүлөр үйдө же туннель өчүрүлгөндөн кийин гана көрүнөт. Firebase Cloud Messaging негизиндеги колдонмодо push каналы өзүнчө, узак өмүрлүү чыгуучу байланыш, браузер жаңы эле далилдеген HTTPS жолу эмес. Бул текшерүүлөрдү ирети менен аткарыңыз жана биринчи ийгиликсиз болгонунда токтоңуз.
Колдонмо чын эле FCM колдоноорун ырастаңыз
Ар бир билдирүү push эмес. Кээ бирин колдонмо жергиликтүү пландайт, кээ бири HTTPS аркылуу суралат, дагы кээ бири Firebase'ге эч кандай тиешеси жок жеткирүүчү каналы аркылуу келет. Эгер колдонмонун manifest жана көз карандылыктары Firebase Messaging камтыса, анын билдирүүлөрү адатта FCM байланышы аркылуу өтөт, ал эми клиент китепканасы каттоону болжолдуу тегдин астына жазат.
adb logcat -s FirebaseMessaging:V
adb shell dumpsys package <package> | grep -i firebase
Логдогу каттоо token ташууну ырастайт. Ансыз сиз колдонмо деңгээлиндеги билдирүү түтүгүн оңдоп жатасыз, ал эми firewall өзгөртүүлөрү жардам бербейт. Бул айырма маанилүү, анткени жеткирилген, бирок эч качан көрсөтүлбөгөн билдирүү менен такыр келбеген билдирүү колдонуучуга бирдей көрүнөт.
Чыгуучу портторду текшериңиз, веб-сайтты эмес
FCM түзмөк байланыштары — түзмөктөн башталган TCP, 5228 портуна, 5229 жана 5230 камдык, ал эми 443 акыркы чара катары. Серептөө үчүн 443кө уруксат берген firewall да push'ту буза алат, ал эми колдонмонун API доменине уруксат берген эреже өзүнчө кызматтар болгон билдирүү акыркы чекиттерин камтыбайт.
Булар телефондон чыгуучу байланыштар. Сиз түзмөктө же VPN дарбазасында кирүүчү порт жарыялабайсыз, ошондуктан бирөө портту багыттоону сунуштаса, долбоор эчак эле туура эмес. Бир портту интернеттеги бардык даректерге ачкан эрежеге да тиешелүү: аны документтелген багыттар менен чектеңиз.
| 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'тин тармактык көрсөтмөсү ошондой эле FCM жеткирүү протоколун кадимки HTTP proxy аркылуу өткөрүүгө болбойт деп белгилейт. Ошондуктан браузердин корпоративдик веб proxy аркылуу иштеши push socket жөнүндө эч нерсени далилдебейт: булар жолдору ар башка эки өзүнчө клиент.
Socket'ти өлтүргөн бош туруу мөөнөттөрүн текшериңиз
FCM байланышы билдирүүлөрдүн ортосунда ачык бойдон калат, бул аны NAT жана абалды текшерүү мөөнөттөрүнө сезимтал кылат. Firebase көрсөтмөсү ушундай саясаттар колдонулган жерде жок дегенде 30 мүнөт бош турууга чыдамдуулукту талап кылат. Беш мүнөттүк сессия мөөнөтү салыштырууну үнсүз жок кылат, ал эми телефон аны бир нерсе ойготкондо гана кайра туташат, ошондуктан билдирүүлөр топтолуп келет же такыр келбейт.
Firewall же VPN дарбазасындагы сессия таблицасын окуп, телефондун 5228-5230 менен байланышын табыңыз. Анын калган өмүрүн документтелген маани менен салыштырыңыз. Эгер ал кыскараак болсо, түзмөктүн бардык саясаттарын өзгөртүүнүн ордуна ошол порттордун мөөнөтүн узартыңыз, анткени глобалдык мөөнөт өзгөртүүсүн негиздөө кыйын, ал эми аны кайтаруу андан да кыйын.
Push жеткирүү ошондой эле акыркы чекиттин салыштырылышы Wi-Fi менен уюлдук тармактын ортосундагы роумингден аман өтүшүнө байланыштуу. Бир интерфейске байланган салыштырылыш эки тармак тең портторго уруксат берсе да, өткөрүү учурунда жоголушу мүмкүн.
VPNди айланып өтүүгө болобу, аны чечиңиз
Android VPN клиенттери трафиктин туннелди айланып өтүшүнө уруксат бере алат, жана бул айланып өтүүгө уруксат берилсе, FCM астынкы тармакты колдоно алат. Бул учурда push каналы шифрленген бойдон калат, бирок эми туннелдин дарегин ташыбайт, ошондуктан VPNдин IP жашыруусу ага колдонулбайт. Бул саясий компромисс, бузулуу эмес.
Эгер саясатыңыз айланып өтүүгө тыюу салса, туннелдин жолу байланышты ташышы керек: порттор ачык, мөөнөттөр жетиштүү узун, proxy жолдо тоскоол болбошу керек. Башкарылуучу кызматты үнсүз чыгарып салбаңыз жана билдирүүлөр башкарылбаган тармакта иштейт деп кулпуну бошотпоңуз. VPN белгиси кайсы кызмат кайсы жолду тандаганын айтпайт
Жеткирүүнү көрсөтүүдөн бөлүп, бир жолу сынаңыз
Уруксат, канал жөндөөлөрү, Мазалабаңыз жана ар бир колдонмонун которгучтары жеткирилген билдирүүнүн көрсөтүлүшүн чечет. Android 13 жана андан кийинкилерде билдирүү уруксаты аткаруу учурунда берилет, ал эми четке кагылган уруксат бөгөттөлгөн портко так окшош тынчтыкты жаратат. Келип, бирок көрсөтүлбөгөн билдирүү — көрсөтүү маселеси; аны өзүнчө караңыз.
Билдирүүлөрдү баш-аламан жөнөтүүнүн ордуна бир контролдонгон сыноо жасаңыз. Түзмөктү, аккаунтту жана колдонмону өзгөртпөй кармаңыз, белгилүү убакыт белгиси менен бир билдирүү жөнөтүңүз жана VPN абалын бекитилген VPN жок тармак менен салыштырыңыз. Ар бир иштетүү үчүн logcat кабыл алуу убактысын жана көрсөтүү убактысын жазыңыз. Эгер жеткирүү башкача болуп, көрсөтүү өзгөрбөсө, тармак жолу өзгөрмө; эгер экөө тең бирдей болсо, колдонмого көз салууну улантыңыз.
Тармак ээсине портторду, proxy чектөөсүн, өлчөнгөн мөөнөттү жана айланып өтүү чечимин бир жазууда бериңиз. «VPNди өчүр» — бул тыянак эмес, ал эми бардык Google трафигине уруксат берүү — чектелген оңдоо эмес.