Hotspot'u açtınız, VPN'e bağlandınız, uygulamada bir port açtınız ve diğer cihaz hâlâ bağlanamıyor. Eksik parça neredeyse hiçbir zaman portun kendisi değildir. Soru, dinleme soketinin hangi makineye ait olduğu ve diğer cihazın hangi adrese ulaşması gerektiğidir. Buna telefondan dışarı doğru bakıyorum, çünkü bulunduğunuz ekran size üç giriş noktasından hangisini gerçekten test ettiğinizi söyler.

Hizmetin gerçekten çalıştığı yerden başlayın

Bağlantıyı kabul etmesi gereken uygulamayı açın ve kendi durum sayfasını okuyun. Dinliyor diyorsa bağlandığı adresi not edin, çünkü bu tek ayrıntı aşağıdaki durumların çoğunu belirler. 127.0.0.1 adresine bağlı bir uygulamaya yalnızca telefondan ulaşılabilir ve hiçbir hotspot istemcisi, operatör eşlemesi veya VPN çıkışı bunu değiştirmez.

Ardından hizmeti hangi cihazın çalıştırdığını doğrulayın. Ya telefondur ve soket o uygulamaya aittir ya da hotspot'un arkasındaki bir dizüstü bilgisayardır ve o zaman dinleyici ile güvenlik duvarı dizüstü bilgisayara aittir, telefon yalnızca paket iletir. Bunlar farklı sahiplere sahip farklı tasarımlardır ve bunları karıştırmak bir yerde açılan portun diğerinde hiçbir şey yapmamasının nedenidir.

Hata ayıklanabilir bir derlemede adb shell soketleri /proc/net/tcp üzerinden listeleyebilir, ancak çoğu kişi için uygulamanın kendi durumu dürüst kaynaktır. Bu aynı zamanda uygulamanın beklemediğiniz bir adreste açtığı soketi test etme tuzağından da kaçınmanızı sağlar.

Birinci giriş noktası: hotspot'taki diğer cihaz

Bu yerel durumdur ve doğru yapılması en kolay olanıdır. Diğer cihaz, kendi ağ geçidi olarak gördüğü adreste, uygulamanın dinlediği portta telefona ulaşır ve hotspot dışında hiçbir şeyin devreye girmesi gerekmez. Operatör eşlemesi gerekmez ve hiçbir sağlayıcı özelliğinin bulunması şart değildir, çünkü trafik yerel segmentten hiç ayrılmaz.

Bunu iki şey bozar. Uygulama loopback'e bağlanmıştır ya da telefondaki istemci ilkesi yerel bağlantıya izin vermiyordur. Uygulama kimlik doğrulaması yapıyorsa çıplak bir TCP bağlantısı yerine uygulamanın kendi protokolüyle test edin, çünkü kabul edip sonra reddeden bir dinleyici uzaktan kapalı bir port gibi görünür.

Hizmet bunun yerine telefona bağlı bir dizüstü bilgisayarda çalışıyorsa telefonun hotspot adresi hedef değildir. Hotspot arayüzündeki dizüstü bilgisayar adresine ve dizüstü bilgisayarda bir dinleyiciye ihtiyacınız vardır ve telefon artık iletmekten başka hiçbir şeye sahip değildir.

İkinci giriş noktası: operatör yolu

Telefona mobil ağdan ulaşmak başka bir sorundur ve çoğu zaman IPv4 için basitçe çalışmaz. Operatörler telefonları paylaşılan çevirinin arkasına koyar, bu yüzden RFC 6598 tam olarak böyle bir düzen için paylaşılan bir adres aralığı ayırmıştır. İstenmeyen bir gelen bağlantının içinden geçebileceği bir eşlemesi yoktur ve hiçbir yerel yapılandırma bunu oluşturmaz, çünkü çevirici sizin cihazınız değildir.

Root erişimi de bunu değiştirmez. Size telefonun yığını üzerinde kontrol verir, operatörün çeviricisi üzerinde değil, tersini vaat eden tarifler genellikle operatörün hiç atamadığı bir genel adres varsayar. Operatörün genel bir IPv6 öneki sunduğu yerlerde gelen bir yol olabilir, ancak dinleyici ve telefonun güvenlik duvarı bir şey yanıt vermeden önce hâlâ bilinçli bir yetkilendirme gerektirir.

Üçüncü giriş noktası: VPN çıkışı

Tünel açıkken bir web sitesinin bildirdiği adres, kapsanan giden trafik için çıkışın adresidir. Bu, sizin adınıza gelen bağlantıları kabul eden bir adresle aynı şey değildir. Gelen trafik için kullanmak, sağlayıcının gerçekten sunduğu bir özellik gerektirir; örneğin yönlendirilmiş bir port veya hesabınıza bağlı gelen bir eşleme, ayrıca çıkıştan istemciye kullanılabilir bir yol.

Yerel bir izin kuralı bu eşlemeyi üretemez. Yapabileceği şey, uygulamanın yanıtlarının hangi yolu izlediğini değiştirmektir ve bu, uygulama tünelden hariç tutulduğunda önemlidir: istek ve yanıt farklı ağ bağlamlarında sonlanabilir ve bağlantı güvenlik duvarı sorunu gibi görünen bir şekilde başarısız olur.

Bir yolu baştan sona test edin, sonra sahibini adlandırın

Test etmeden önce demeti yazın: amaçlanan kaynak, hedef adres, taşıma, port ve dinleme soketine sahip makine. Herhangi bir öğe tahminse, test size yararlı bir şey söylemez ve sonunda birinci katmanı açıklamak için ikinci katmanı değiştirirsiniz.

Ardından o tek yetkili yolu uygulamanın kimlik doğrulaması bozulmadan test edin. Belirsiz bir genel adres kontrolünün yanıt vermesi için geniş bir dinleyici yayımlamaktan veya ilgisiz kontrolleri kapatmaktan kaçının, çünkü her iki değişiklik de testten daha uzun yaşar ve hiçbiri tasarımın çalıştığını kanıtlamaz.

Android'in tethering alt sistemi aşağı yönlü trafiği kendi yolu üzerinden iletir, olağan uygulama VPN yakalamasından ayrıdır, bu yüzden bağlı bir dizüstü bilgisayarda çalışan tarayıcı telefondaki bir hizmete gelen erişim hakkında hiçbir şey söylemez. Çalışıyor demeden önce:

  • Dinleme soketi amaçlanan eşin ulaşabileceği bir adreste, loopback'te değil.
  • Eş, o giriş noktasına ait adresi kullanıyor, durum sayfasındaki çıkış adresini değil.
  • Operatör veya sağlayıcı tarafındaki her eşleme desteklenen bir özelliktir, yerel olarak eklediğiniz bir kural değil.
  • İstek ve yanıt aynı ağ bağlamından geçer ve uygulamanın kimlik doğrulaması hâlâ geçer.

İlgili makaleler