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

დაიწყეთ იქ, სადაც სერვისი ნამდვილად მუშაობს

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

შემდეგ დაადასტურეთ, რომელი მოწყობილობა უშვებს სერვისს. თუ ტელეფონია, socket იმ აპს ეკუთვნის; თუ hotspot-ის უკან ლეპტოპია, მსმენელი და მისი firewall ლეპტოპს ეკუთვნის, ტელეფონი კი მხოლოდ პაკეტებს გადასცემს. ეს ორი სხვადასხვა კონსტრუქციაა და მათი შერევა არის მიზეზი, რომ ერთ ადგილას გახსნილი პორტი მეორეში არაფერს აკეთებს.

გამართვად build-ში adb shell socket-ებს /proc/net/tcp-ის მეშვეობით ჩამოთვლის, მაგრამ ადამიანთა უმეტესობისთვის აპის საკუთარი მდგომარეობაა პატიოსანი წყარო.

პირველი შესასვლელი წერტილი: სხვა მოწყობილობა hotspot-ზე

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

ორი რამ ამტვრევს ამას: აპი loopback-ზე მიბმულია, ან ტელეფონის კლიენტის პოლიტიკა ლოკალურ კავშირს არ უშვებს. შეამოწმეთ აპის საკუთარი პროტოკოლით და არა შიშველი TCP-ით, რადგან მიმღები და შემდეგ უარმყოფი მსმენელი შორიდან დახურულ პორტს ჰგავს.

თუ სერვისი დაკავშირებულ ლეპტოპზე მუშაობს, ტელეფონის hotspot-ის მისამართი საერთოდ არ არის სამიზნე; საჭიროა ლეპტოპის მისამართი hotspot-ის ინტერფეისზე და იქ მსმენელი.

მეორე შესასვლელი წერტილი: ოპერატორის გზა

მობილური ქსელიდან ტელეფონამდე მისვლა სხვა პრობლემაა და IPv4-ისთვის ხშირად უბრალოდ არ მუშაობს. ოპერატორები მოწყობილობებს საერთო თარგმანის უკან აყენებენ და სწორედ ამიტომ გამოყოფს RFC 6598 საერთო მისამართების დიაპაზონს ასეთი წყობისთვის. მოუთხოვნელ შემომავალ კავშირს არ აქვს ასახვა, რომლითაც მოვა, და არც ერთი ლოკალური კონფიგურაცია არ ქმნის მას, რადგან თარგმანი თქვენი მოწყობილობა არ არის.

root-წვდომა ამასაც არ ცვლის; ის ტელეფონის Stack-ს აკონტროლებს და არა ოპერატორის თარგმანს. სადაც ოპერატორი საჯარო IPv6 პრეფიქსს გთავაზობთ, შემომავალი გზა შეიძლება არსებობდეს, მაგრამ მსმენელსა და firewall-ს მაინც გააზრებული ნებართვა სჭირდება.

მესამე შესასვლელი წერტილი: VPN-ის გასასვლელი

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

ლოკალური ნებართვის წესი ვერ შექმნის ამ ასახვას. ის ცვლის, თუ რომელი გზით მიდიან აპის პასუხები, და ეს მნიშვნელოვანია, როცა აპი გვირაბიდან გამორიცხულია: მოთხოვნა და პასუხი შეიძლება სხვადასხვა ქსელურ კონტექსტში მოხვდეს და კავშირი firewall-ის პრობლემასავით ჩავარდეს.

შეამოწმეთ ერთი გზა თავიდან ბოლომდე, შემდეგ დაასახელეთ მფლობელი

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

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

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

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

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