SOCKS5, bir istemci ile bir sunucu arasında TCP ve UDP trafiğini uygulama verilerini okumadan ileten bir proxy protokolüdür, bu nedenle yalnızca web tarayıcıları değil, SOCKS destekleyen herhangi bir uygulama ile çalışır. RFC 1928'de tanımlanmıştır, kullanıcı adı/şifre kimlik doğrulamasını destekler ve kendi başına trafiği şifrelemez.

SOCKS5, HTTP'yi ayrıştırmak yerine uygulama ve taşıma katmanları arasında çalıştığı için web trafiği ile sınırlı değildir. Kullanım durumunuz SOCKS5 gerektiriyorsa, taahhütte bulunmadan önce bir sağlayıcının bunu desteklediğini doğrulamak önemlidir.

SOCKS5 Bağlantısının Çalışma Şekli

  1. İstemci, geleneksel olarak TCP port 1080 üzerinden proxy'e bağlanır ve desteklediği kimlik doğrulama yöntemlerini listeler.
  2. Proxy, kimlik doğrulama gerektirmeyen veya kullanıcı adı/şifre gibi bir yöntem seçer ve istemci kimlik doğrulaması yapar.
  3. İstemci, hedefi bir IPv4 adresi, IPv6 adresi veya alan adı olarak gönderir. TCP için CONNECT veya UDP için UDP ASSOCIATE kullanır.
  4. Proxy bağlantıyı açar ve verileri her iki yönde iletir.

UDP için, proxy bir UDP relay adresi ile yanıt verir. İstemci, verilerini oraya gönderir ve ilişki, onu kuran TCP bağlantısı süresince devam eder.

SOCKS5 ve SOCKS4

SOCKS5, daha eski SOCKS4 protokolünü genişletir:

  • Kimlik Doğrulama: SOCKS4 yalnızca bir kullanıcı kimliği alanına sahiptir. SOCKS5, kullanıcı adı/şifre ve GSSAPI gibi yöntemler ekler.
  • UDP: SOCKS4 yalnızca TCP'yi işler. SOCKS5 ayrıca UDP'yi de iletebilir.
  • IPv6: SOCKS4 yalnızca IPv4 hedeflerini kabul eder. SOCKS5, IPv6 ekler.
  • Alan Adları: SOCKS5, istemcinin proxy'nin çözümlemesi için bir alan adı göndermesine izin verir. SOCKS4, bunu yapmak için SOCKS4a uzantısına ihtiyaç duyar.

SOCKS5 ve HTTP Proxy

Bir HTTP proxy, her HTTP isteğini okur ve Via gibi başlıklar ekleyebilir. SOCKS5 proxy, verileri okumadan ilettiği için web dışı trafiği de taşıyabilir. HTTP Proxy girişi yan yana bir tabloya sahiptir.

Kimlik Doğrulama ve Şifreleme

  • Gerekli yöntemler: RFC 1928, uyumlu uygulamaların GSSAPI'yi desteklemesi ve kullanıcı adı/şifreyi desteklemesi gerektiğini belirtir.
  • Açık metin şifreler: RFC 1929'da tanımlanan kullanıcı adı/şifre yöntemi, şifreyi şifrelenmemiş olarak gönderir. RFC, trafiğin dinlenebileceği yerlerde bunu önermemektedir.
  • Kendi başına şifreleme yok: SOCKS5, ilettiği verileri şifrelemez. HTTPS trafiği, TLS'nin uygulamanız ile web sitesi arasında çalışması nedeniyle şifreli kalır.

DNS Sorgularının Nerede Gerçekleştiği

  • curl: bir socks5:// proxy URL'si, alan adlarını makinenizde çözer. socks5h://, proxy'nin bunları çözmesini sağlar.
  • Chrome: SOCKS5 alan adları her zaman proxy'de çözülür. SOCKS4 için, Chrome bunları istemcide çözer.

Kendi makinenizde yapılan bir sorgu, ziyaret ettiğiniz siteleri yerel DNS çözümleyicinize ifşa edebilir, bu da bir DNS sızıntısıdır.

Web Kazıma İçin Ne Anlama Geliyor

  • Chrome SOCKS5 ile giriş yapamaz: Chrome'un belgeleri, SOCKS5 kimlik doğrulama yöntemlerini desteklemediğini ve yalnızca TCP istekleri için SOCKS5 kullandığını belirtir. Başsız Chrome için, IP tabanlı kimlik doğrulama veya kimlik bilgileri ile bir HTTP proxy kullanın.
  • Sorguları proxy'de tutun: DNS sorgularının ağınız yerine proxy üzerinden gitmesi için curl'de socks5h:// kullanın.
  • SSH ile test edin: ssh -D <port>, OpenSSH'nin yerel bir SOCKS4 ve SOCKS5 sunucusu gibi davranmasını sağlar, bu da SOCKS kurulumunu denemenin hızlı bir yoludur.

İlgili Terimler