SSH ile oturum açarsınız, -D 1080 eklersiniz ve komut başarılı olur. Artık telefonda bir SOCKS dinleyicisi var ve uygulamaların yarısı hâlâ mobil veriyle dışarı çıkıyor. Bu normal sonuçtur, bozuk tünel değil: ssh -D bir proxy uç noktası oluşturur ve Android uygulamaları proxy'yi yalnızca bir şey onları zorlarsa kullanır. Zinciri adım adım dolaşmak, işin her parçasının gerçekte nerede yaşadığını gösterir.

Trafiğin başladığı yerden başlayın

Tüneli kullanması gereken bir uygulama seçin ve kendi proxy ayarı olup olmadığına bakın. SOCKS alanı olan bir tarayıcı kolay durumdur: onu 127.0.0.1:1080 adresine yönlendirin, ayar varsa uzak DNS'i açın ve istek geçer. Sohbet istemcisi, harita uygulaması veya böyle alanı olmayan bir oyun dinleyiciyi kullanmanın bir yoluna sahip değildir ve SSH komutuna yazdığınız hiçbir şey bunu değiştirmez.

Başka herhangi bir şeyi devreye almadan önce, dinleyicinin telefonun kendi kabuğundan doğrudan SOCKS konuşan bir istemciyle çalıştığını kanıtlayın:

ssh -N -D 1080 [email protected]
curl --socks5-hostname 127.0.0.1:1080 https://ifconfig.me

Geri dönen adres telefonun değil, SSH sunucusunun adresi olmalıdır. Öyleyse proxy yarısı tamamdır ve işin geri kalanı kapsama ile ilgilidir. Değilse önce SSH tarafını düzeltin: anahtarla kimlik doğrulama, sunucunun hedefe ulaşma yeteneği ve SSH sunucusunun kendi çıkışı.

Android'in ihtiyaç duyduğu parçayı ekleyin

Proxy ayarı olmayan uygulamalar, paketlerini yakalayıp proxy bağlantısına dönüştüren bir şeye ihtiyaç duyar. root olmayan bir cihazda bu bir VPN hizmet adaptörü: sanal arayüzü alıp seçilen trafiği yerel SOCKS dinleyicisine ileten uygulama. Zincir uygulama, adaptör, SOCKS dinleyici, SSH bağlantısı, hedef haline gelir.

Adaptörü kurun, ona VPN izni verin ve yakalaması gereken uygulamaları veya rotaları seçin. Durum çubuğundaki anahtar simgesi o zaman adaptörü temsil eder, ayrı bir ticari VPN'i değil. Android kullanıcı profili başına tek etkin VPN hizmet bağlantısına izin verir, bu yüzden ikinci bir VPN uygulaması başlatmak zincire bir katman eklemez: aynı rol için yarışır.

Başarılı bir testin sizi yanıltabileceği adım da budur. Adaptör yalnızca daha önce proxy'ye yönlendirdiğiniz tarayıcıyı yakalayacak şekilde ayarlanmışsa her şey çalışır ve başka hiçbir şey kapsanmaz. Cihazın tünelde olduğu sonucuna varmadan önce yakalama listesini okuyun.

SSH taşımasını yakalamanın dışında tutun

SSH bağlantısının kendisi, sürdürdüğü SOCKS tüneline geri beslenmemelidir. Adaptör SSH uygulamasının trafiğini yakalarsa tünel, tüneli bekleyen bir bağlantıya bağlı kalır ve sonuç, adaptör başlar başlamaz takılan veya başarısız olan bir döngüdür.

Tümleşik uygulamalar kendi taşıma soketlerini korur. Ayrı uygulamalarla desteklenen bir istisnaya ihtiyacınız var: SSH uygulamasını yakalamanın dışında bırakın veya SSH uç noktasını adrese göre hariç tutun. İkisinin de bedeli var. Tüm bir terminal uygulamasını hariç tutmak, ilgisiz ağ etkinliğini de tünelden çıkarır ve adres istisnası, sunucunun adresi değiştiğinde veya ad bir sonraki bağlantıda farklı çözüldüğünde bozulur.

İstisnayı dışarıdan kontrol edin: adaptörü yeniden bağlayın, ardından SSH oturumunun hayatta kaldığını ve proxy'li isteğin hâlâ sunucunun adresini bildirdiğini doğrulayın. Adaptör başlayana kadar çalışıp sonra donan oturum o döngüdür.

DNS ve UDP'yi zincirin sonuna kadar izleyin

OpenSSH'nin dinamik yönlendirmesi TCP bağlantılarını taşır. UDP-associate veya ICMP taşıması değildir ve bir adaptör UDP paketlerini kabul ederek UDP yönlendirmesi uyduramaz. UDP'de ısrar eden her şey, QUIC ve WebRTC medyası dahil, uygulamaya bağlı olarak ya başarısız olur ya da TCP'ye geri döner.

DNS kendi kararına ihtiyaç duyar. Bir adı yerel olarak çözen uygulama, sorguyu bağlanmadan önce normal çözümleyici üzerinden gönderir, bu yüzden tünel bağlantıyı taşır ama aramayı taşımaz. Uzak DNS seçeneği olan proxy bilinçli istemci bundan kaçınır; o seçenek olmayan yakalanmış uygulama kaçınmaz. Adaptörün değiştirdiğini varsaymak yerine hangi çözümleyicinin yanıt verdiğini kontrol edin.

SOCKS dinleyicisini loopback'e bağlı tutun, ilk kullanımda SSH sunucusunun host anahtarını doğrulayın ve son site için normal HTTPS doğrulamasını yerinde bırakın. SSH telefon-sunucu bölümünü korur; sunucunun sonrasında yaptıklarını şifrelemez.

İki yaşam döngüsünü kontrol edin ve karar verin

Adaptör ve SSH oturumunun yaşam döngüleri ayrıdır. Adaptör yakalamaya devam ederken SSH düşerse uygulamalar belirgin bir hata olmadan takılabilir, çünkü paketleri hâlâ çalışan bir çıkışı olmayan sanal arayüze girer. Adaptör durursa uygulamalar cihazın VPN politikasına bağlı olarak doğrudan çıkar veya engellenir.

İki yönü de bilerek test edin: adaptör çalışırken SSH oturumunu öldürün, sonra SSH ayaktayken adaptörü durdurun. Telefonun her durumda yaptığı şey, kurulum talimatları ne iddia ederse etsin, gerçekten devreye aldığınız politikadır.

İş akışı öngörülebilir bir arıza moduyla tüm cihaz kapsaması gerektiriyorsa, gerçek bir IP VPN ya da bu zincir için tasarlanmış bakımlı bir adaptör dürüst yanıttır. İlgisiz bir yakalama uygulamasının yanında çalışmaya bırakılan bir kabuk oturumu bakımlı bir cihaz tüneli değildir; biri bittiğinde ne olacağı konusunda anlaşması olmayan iki bileşendir.

İlgili makaleler