Protocols

HTTP, HTTPS, SOCKS4 ve SOCKS5 Proxy'leri Arasında Seçim Yapmak

3 min read Published Updated 540 words

Proxy olarak adlandırılan dört protokol, isim dışında çok az ortak noktaya sahiptir. HTTP proxy'leri Katman 7'yi ayrıştırır ve başlıkları yeniden yazar; SOCKS proxy'leri trafiğinizi hiç okumaz. Bu ayrım, hangi proxy'nin tarama, kazıma ve ham tünelleme için uygun olduğunu belirler.

HTTP Proxy

Bir HTTP proxy, HTTP semantiğini bekler. İsteği açar, URL'yi okur, Via veya X-Forwarded-For gibi başlıklar ekleyebilir ve geçerli bir HTTP isteği olmayan her şeyi reddeder. Tarayıcılar, curl ve çoğu kazıma kütüphanesi, varsayılan olarak HTTP proxy'lerini kullanır çünkü yapılandırma neredeyse ücretsizdir — tek bir ortam değişkeni ayarlayın veya bir bayrak geçirin.

Bu basitliğin bedeli görünürlüktür. Proxy, tam URL'yi (yol ve sorgu dizesi dahil) görür ve düz metin HTTP'de gövdeyi de görür. Önbellekleme proxy'leri yanıtları yeniden yazabilir; şeffaf proxy'ler çerezleri kaldırabilir. Herhangi bir HTTP proxy'sini tam ayrıcalıklı bir aracı olarak kabul edin ve asla düz metin üzerinden kimlik bilgileri göndermeyin.

HTTPS Proxy ve CONNECT Yöntemi

"HTTPS proxy" biraz yanıltıcı bir etikettir. Ek olarak CONNECT yöntemini uygulayan bir HTTP proxy'sini ifade eder. CONNECT, proxy'ye hedef ana bilgisayara ham bir TCP tüneli açmasını ve baytları her iki yönde taşımasını söyler; istemci ve hedef, proxy orada değilmiş gibi TLS anlaşması yapar. Proxy, hedef ana bilgisayarı ve bağlantı noktasını, ayrıca bayt hacmini görür, ancak yükü görmez.

Bu nedenle "HTTPS destekleyen" bir proxy, TLS tünellemeyi destekleyen bir proxydir, kendisi TLS üzerinden çalışan bir proxy değildir. Makinenizden proxy'ye olan bağlantı bağımsız olarak düz metin veya şifreli olabilir. Bu bağlantının korunmasını önemsiyorsanız, SOCKS5-over-TLS uygulaması veya TLS uç noktasını yayınlayan ücretli bir ticari proxy kullanın.

SOCKS4

SOCKS4, 1994'ün minimumudur: yalnızca TCP, yalnızca IPv4, UDP yok, IPv6 yok, kimlik doğrulama yok, proxy'de ana bilgisayar adı çözümlemesi yok. El sıkışma altı bayt artı bir baytlık yanıt kodudur. Vahşi doğada hayatta kalır çünkü protokol o kadar küçüktür ki, TCP farkındalığı olan hemen hemen her araç onu doğru şekilde uygulayabilir. Bir liste SOCKS4 reklamı yapıyorsa, bir IPv4 adresine ham TCP yönlendirmesi bekleyin — başka bir şey değil.

SOCKS5

RFC 1928'de (1996) tanımlanan SOCKS5, çoğu modern aracın konuştuğu sürümdür. UDP yönlendirme, IPv6 adresleri, GSSAPI kimlik doğrulaması ve ana bilgisayar adlarını istemci yerine proxy'de çözümleme seçeneği ekler. SOCKS5, üzerinde çalışan uygulama katmanı hakkında herhangi bir varsayımda bulunmadığından, HTTP dışı iş yükleri için en esnek seçenektir: SSH, IRC, BitTorrent, özel RPC.

Performans ve Ek Yük

SOCKS proxy'leri, hiçbir şeyi ayrıştırmadıkları için istek başına daha düşük ek yüke sahiptir. HTTP ve HTTPS proxy'leri her bağlantıda tam istek ayrıştırma maliyeti öder. CONNECT içindeki tek bir uzun ömürlü TLS oturumu için fark ihmal edilebilir düzeydedir. Proxy'nin her seferinde yeni bir bağlantı açtığı binlerce kısa istek için SOCKS5 ölçülebilir şekilde kazanır — tipik olarak ayrıştırma yolu için istek başına 2–5 ms.

Anonimlik, Pratikte

Başlıklarınızı kaldırmayan bir HTTP proxy, istemci IP'nizi Via, X-Forwarded-For veya Forwarded aracılığıyla sızdırabilir. SOCKS proxy'lerinde bu tür başlıklar yoktur çünkü başlık kavramı yoktur. Bu, bir anonimlik özelliğinden çok, bir sızıntı yüzeyinin olmamasıdır. CONNECT ile tünellenmiş HTTPS içinde, hedef yalnızca TLS el sıkışmasını görür, bu nedenle proxy'deki herhangi bir HTTP düzeyinde sızıntı anlamsızdır.

Bağlantı Noktası Kuralları

Bu dizinde şunları göreceksiniz: HTTP için 80, 8080, 3128, 8888; CONNECT'yı açıkça destekleyen uç noktalar için 443; SOCKS için 1080. Birçok sağlayıcı, sıradan bağlantı noktası taramasından kaçınmak için standart dışı yüksek bağlantı noktaları (10.000'in üzerinde) sunar. Bağlantı noktası numarası kalite hakkında hiçbir şey söylemez — yalnızca operatörün neyi açığa çıkarmayı seçtiğini belirtir.