Та хотспотыг асааж, VPN-д холбогдож, апп дотор порт нээсэн ч нөгөө төхөөрөмж холбогдож чадахгүй хэвээр байна. Дутуу хэсэг нь бараг хэзээ ч порт өөрөө биш. Гол асуудал нь сонсголын socket аль машинтай холбоотой, нөгөө төхөөрөмж ямар хаяг руу хүрэх ёстой вэ гэдэгт байна. Би үүнийг утаснаас гадагш чиглүүлэн авч үзье, учир нь таны харж буй дэлгэц гурван нэвтрэх цэгийн алийг нь үнэхээр шалгаж байгааг хэлж өгдөг.

Үйлчилгээ үнэхээр ажиллаж буй газраас эхэл

Холболтыг хүлээж авах ёстой аппыг нээж, түүний төлөвийн хуудсыг унш. Сонсож байна гэж бичсэн бол аль хаягт холбогдсоныг нь тэмдэглэ, учир нь энэ нэг дэлгэрэнгүй доорх ихэнх тохиолдлыг шийднэ. 127.0.0.1 хаягт холбогдсон апп зөвхөн утаснаас л хүрч болно, хотспотын клиент, операторын mapping, VPN гаралт аль нь ч үүнийг өөрчлөхгүй.

Дараа нь үйлчилгээг аль төхөөрөмж ажиллуулж байгааг тогтоо. Энэ нь утас бол socket тухайн апп-д хамаарна; эсвэл хотспотын ард байгаа зөөврийн компьютер бол сонсогч болон түүний галт хана зөөврийн компьютерт хамаарч, утас зөвхөн пакет дамжуулна. Эдгээр нь өөр өөр эзэмшигчтэй өөр өөр загвар бөгөөд тэдгээрийг хольсон учраас нэг газарт нээсэн порт нөгөө газарт юу ч хийдэггүй.

Дибаг хийх боломжтой хувилбар дээр adb shell нь /proc/net/tcp-ээр дамжуулан socket-уудыг жагсааж чаддаг, гэхдээ ихэнх хүмүүст аппын өөрийнх нь төлөв нь шударга эх сурвалж юм. Энэ нь апп таны хүлээгээгүй хаяг дээр нээсэн socket-ийг шалгах урхинаас ч зайлсхийх боломж олгоно.

Нэгдүгээр нэвтрэх цэг: хотспот дээрх өөр төхөөрөмж

Энэ нь локал тохиолдол бөгөөд зөв хийхэд хамгийн хялбар. Нөгөө төхөөрөмж утас руу өөрийн гарц гэж харж буй хаягаар, апп сонсож буй портоор хүрнэ, хотспотоос гадуур юу ч оролцох шаардлагагүй. Операторын mapping шаардлагагүй, үйлчилгээ үзүүлэгчийн ямар ч функц байх шаардлагагүй, учир нь трафик локал сегментээс хэзээ ч гарахгүй.

Үүнийг хоёр зүйл эвддэг. Апп loopback-д холбогдсон, эсвэл утасны клиент бодлого локал холболтыг зөвшөөрөхгүй байна. Апп баталгаажуулалт хийдэг бол энгийн TCP холболт биш, аппын өөрийн протоколоор шалга, учир нь хүлээж аваад дараа нь татгалздаг сонсогч холоос харвал хаалттай порттой яг адилхан харагдана.

Хэрэв үйлчилгээ утастай холбогдсон зөөврийн компьютер дээр ажиллаж байвал утасны хотспотын хаяг огт очих газар биш. Хотспотын интерфейс дээрх зөөврийн компьютерын хаяг болон түүн дээрх сонсогч хэрэгтэй бөгөөд утас нь дамжуулалтаас өөр юу ч эзэмшихгүй болно.

Хоёрдугаар нэвтрэх цэг: операторын зам

Гар утасны сүлжээнээс утас руу хүрэх нь өөр асуудал бөгөөд ихэнхдээ IPv4-д энгийнээр ажиллахгүй. Операторууд гар утсыг хуваалцсан хөрвүүлэлтийн ард байрлуулдаг тул RFC 6598 яг ийм зохицуулалтад зориулж хуваалцсан хаягийн мужийг тусгаарласан. Хүсээгүй ирж буй холболт ирэх mappingгүй бөгөөд локал тохиргоо хэчнээн ч хийсэн үүнийг үүсгэхгүй, учир нь хөрвүүлэгч нь таны төхөөрөмж биш.

Root эрх ч үүнийг өөрчлөхгүй. Энэ нь утасны stack-д хяналт өгдөг, операторын хөрвүүлэгчид биш, харин эсрэгээр амладаг жорууд ихэвчлэн оператор хэзээ ч олгоогүй нийтийн хаяг гэж үздэг. Оператор нийтийн IPv6 префикс санал болгодог газарт ирж буй зам байж болох ч сонсогч болон утасны галт хана юу ч хариулахын өмнө зориуд зөвшөөрөл шаардсаар байна.

Гуравдугаар нэвтрэх цэг: VPN гаралт

Туннель асаалттай үед вэбсайтын мэдээлдэг хаяг нь хамрагдсан гадагш трафикийн гаралтын хаяг юм. Энэ нь таны өмнөөс ирж буй холболтыг хүлээж авдаг хаягтай ижил зүйл биш. Үүнийг ирж буй трафикт ашиглахын тулд үйлчилгээ үзүүлэгчийн үнэхээр санал болгодог функц, жишээ нь дамжуулсан порт эсвэл таны бүртгэлтэй холбосон ирж буй mapping, мөн гаралтаас клиент хүртэлх ашиглах боломжтой зам хэрэгтэй.

Локал зөвшөөрлийн дүрэм ийм mapping үүсгэж чадахгүй. Харин аппын хариултууд аль замаар явдгийг өөрчилж чадна, энэ нь апп туннельд ороогүй үед чухал: хүсэлт ба хариу өөр өөр сүлжээний орчинд орж, холболт галт хананы асуудал мэт харагдах байдлаар бүтэлгүйтдэг.

Нэг замыг эхнээс нь дуустал шалга, дараа нь эзэмшигчийг нэрлэ

Шалгахын өмнө tuple-ийг бичиж аваарай: зорьсон эх сурвалж, очих хаяг, транспорт, порт, сонсголын socket-ийн эзэн машин. Хэрэв аль нэг элемент таамаг бол шалгалт танд хэрэгтэй зүйл хэлэхгүй бөгөөд эцэст нь эхнийхийг тайлбарлахын тулд хоёр дахь давхаргыг өөрчлөх болно.

Дараа нь тэр нэг зөвшөөрөгдсөн замыг аппын баталгаажуулалтыг хөндөхгүйгээр шалга. Тодорхой бус нийтийн хаягийн шалгалтад хариу өгөхийн тулд өргөн сонсогч нийтлэх эсвэл хамааралгүй хяналтыг унтраахаас зайлсхий, учир нь хоёр өөрчлөлт ч шалгалтаас урт насалж, аль нь ч загвар ажиллаж байгааг нотлохгүй.

Android-ийн tethering дэд систем нь доош чиглэсэн трафикийг ердийн апп VPN барьж авахаас тусдаа өөрийн замаар дамжуулдаг тул утастай холбогдсон зөөврийн компьютер дээр ажиллаж буй хөтөч нь утасны үйлчилгээ рүү ирж буй хандалтын талаар юу ч хэлэхгүй. Үүнийг ажиллаж байна гэж нэрлэхийн өмнө:

  • Сонсголын socket нь зорьсон peer хүрч чадах хаяг дээр байна, loopback дээр биш.
  • Peer нь тухайн нэвтрэх цэгт хамаарах хаягийг ашиглаж байна, төлөвийн хуудасны гаралтын хаягийг биш.
  • Оператор эсвэл үйлчилгээ үзүүлэгчийн талын аливаа mapping нь дэмжигдсэн функц, таны локалаар нэмсэн дүрэм биш.
  • Хүсэлт ба хариу нэг сүлжээний орчинд дамжиж, аппын баталгаажуулалт одоо ч давна.

Холбоотой нийтлэлүүд