შეტყობინებები წყვეტს მოსვლას იმ ტელეფონზე, რომელიც სხვა მხრივ კორპორატიული 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 უკანასკნელ საშუალებად. firewall, რომელიც ბრაუზინგისთვის 443-ს უშვებს, მაინც შეიძლება push-ს ამტვრიოს, და აპის API დომენის დამტკიცება არ ფარავს შეტყობინებათა ბოლო წერტილებს, რომლებიც ცალკე სერვისებია.

ეს ტელეფონიდან გამავალი კავშირებია. თქვენ არ აქვეყნებთ შემავალ პორტს მოწყობილობაზე ან VPN კარიბჭეზე, ამიტომ თუ ვინმე პორტის გადამისამართებას გთავაზობთ, დიზაინი უკვე არასწორია. იგივე ეხება წესს, რომელიც ერთ პორტს ინტერნეტის ყველა მისამართისთვის ხსნის: შეზღუდეთ ის დოკუმენტირებული დანიშნულებებით.

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

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 ტრაფიკის დაშვება შეზღუდული გამოსწორება არ არის.

დაკავშირებული სტატიები