SOCKS55 dk okuma

SOCKS5 ile HTTP Proxy Farkı Nedir?

İki protokol de trafiği aktarır ama farklı katmanlarda çalışır. Tarayıcı, oyun ve betikler için doğru seçimi anlatıyoruz.

İçindekiler

HTTP proxy web isteklerini anlar ve iletir; SOCKS5 ise trafiğin ne olduğuna bakmadan bağlantıyı aktarır. Tarayıcı ve betiklerde HTTP çoğu zaman yeterlidir; e-posta, SSH ya da oyun gibi web dışı bağlantılarda genellikle SOCKS5 gerekir. Yazıda iki protokolü katman farkı, HTTPS tüneli, DNS çözümü, kimlik doğrulama ve uygulama uyumluluğu açısından yan yana koyuyoruz.

Katman farkı: HTTP uygulama düzeyinde, SOCKS5 oturum düzeyinde

HTTP proxy, HTTP protokolünü konuşur. İsteğin yöntemini, adresini ve başlıklarını görür; bu yüzden web odaklıdır ve tarayıcılar, HTTP kütüphaneleri ve scraping araçları için doğal bir seçimdir. Düz HTTP isteklerinde içeriği de görebilir; HTTPS isteklerinde ise yalnızca hedef adresi ve portu bilir.

SOCKS5 (RFC 1928) uygulama protokolünü anlamaz: bağlantı isteğini alır, hedefe bir bağlantı açar ve baytları olduğu gibi iletir. Trafiğin HTTP, SSH, e-posta ya da bir oyunun kendi protokolü olması fark etmez. Standart, TCP bağlantısının yanında UDP için de bir yöntem tanımlar; ancak bir paketin UDP taşıyıp taşımadığı bu sitede doğrulanmış bir bilgi değildir, UDP gerekiyorsa siparişten önce destekten teyit edin.

Bu fark pratikte şunu getirir: HTTP proxy yalnızca HTTP konuşan istemcilere hizmet verebilir, ama istek başlıkları üzerinde işlem yapabilir. SOCKS5 ise kendisinin tanımadığı protokolleri bile taşır; karşılığında başlıkları okuyamadığı için HTTP düzeyinde müdahale yapamaz.

HTTPS trafiği proxy’den nasıl geçer?

İki protokol aynı hedefe farklı yollarla varır. HTTP proxy’de tarayıcı, HTTPS bir site için CONNECT ile tünel ister; proxy hedefe TCP bağlantısı açar, 200 yanıtıyla tünelin hazır olduğunu bildirir ve sonrasında şifreli baytları olduğu gibi aktarır. SOCKS5’te aynı iş bir el sıkışmayla yapılır: istemci desteklediği kimlik doğrulama yöntemlerini bildirir, proxy birini seçer, istemci hedef adresi ve portu iletir ve proxy bağlantıyı açar.

Metin
# Düz HTTP: proxy tüm isteği görür
GET http://example.com/ HTTP/1.1
Host: example.com
Proxy-Authorization: Basic <KULLANICI:PAROLA, base64>

# HTTPS: proxy yalnızca hedef adresi ve portu görür
CONNECT example.com:443 HTTP/1.1
Host: example.com:443
Proxy-Authorization: Basic <KULLANICI:PAROLA, base64>

HTTP/1.1 200 Connection established
HTTP proxy: düz HTTP isteği ve HTTPS için CONNECT tüneli (basitleştirilmiş)
Metin
istemci -> proxy : desteklediğim yöntem: kullanıcı adı ve parola
proxy -> istemci : kullanıcı adı ve parola yöntemini seçtim
istemci -> proxy : KULLANICI, PAROLA
proxy -> istemci : kimlik doğrulandı
istemci -> proxy : example.com:443 adresine bağlan
proxy -> istemci : bağlantı kuruldu, bundan sonrası ham bayt akışı
SOCKS5 el sıkışması (basitleştirilmiş)

İkisinde de proxy şifreli HTTPS içeriğini göremez. Fark, HTTP proxy’nin protokolü bilmesi, SOCKS5’in bilmemesidir.

DNS nerede çözülür? socks5 ile socks5h

Hedef bir alan adıysa (example.com gibi) birinin bunu IP adresine çevirmesi gerekir. HTTP proxy’de alan adı proxy’ye iletilir ve çözümü proxy yapar. SOCKS5’te iki seçenek vardır; fark adres şemasında görünür:

  • socks5:// alan adını istemci tarafında çözer. DNS sorguları kendi ağınızdan çıkar; hangi alan adlarını sorguladığınız, bağlı olduğunuz ağdaki DNS sunucusu tarafından görülebilir.
  • socks5h:// (cURL’de --socks5-hostname) alan adını proxy’ye bırakır. DNS sorgusu da proxy’nin ağından yapılır.

Çıkış konumunun önemli olduğu işlerde, örneğin bir sitenin başka bir ülkedeki görünümünü kontrol ederken, genellikle socks5h tercih edilir.

Terminal
# Alan adı bu bilgisayarda çözülür
curl --proxy "socks5://KULLANICI:PAROLA@proxy.example.com:PORT" https://example.com

# Alan adı proxy tarafından çözülür
curl --proxy "socks5h://KULLANICI:PAROLA@proxy.example.com:PORT" https://example.com
Aynı SOCKS5 proxy, iki farklı DNS davranışı

Kimlik doğrulama nasıl yapılır?

HTTP proxy kimliği Proxy-Authorization başlığıyla doğrular. Kimlik bilgisi yoksa ya da yanlışsa 407 Proxy Authentication Required yanıtı döner. Basic yöntemi kullanıcı adı ve parolayı Base64 ile kodlar; bu kodlama şifreleme değildir, bu yüzden bilgilerinizi yalnızca güvendiğiniz bir proxy’ye gönderin. SOCKS5’te doğrulama bağlantı kurulurken, el sıkışmanın içinde (RFC 1929) yapılır; bilgiler yanlışsa proxy bağlantıyı kapatır ve istemci genellikle kimlik doğrulama ya da bağlantı hatası verir.

İki protokolde de kimlik bilgileri bağlantı adresinde KULLANICI:PAROLA@host:port biçiminde yazılabilir. Parolada @, : ya da / varsa bunları yüzde kodlamasıyla yazın (örneğin @ yerine %40); aksi halde adres yanlış ayrıştırılır.

Sık görülen hatalar ve anlamları

Bağlantı kurulamadığında hata mesajı çoğu zaman nedeni gösterir. Sık karşılaşılan belirtiler:

BelirtiOlası nedenNe yapmalı
407 Proxy Authentication RequiredKullanıcı adı ya da parola yanlış, ya da kimlik bilgisi hiç gönderilmediBilgileri kontrol edin; özel karakterleri yüzde kodlamasıyla yazın
Bağlantı hemen kapanıyor ya da anlamsız bir yanıt dönüyorProtokol ile port uyuşmuyor: SOCKS5 istemcisi HTTP portuna ya da tersine bağlanıyorSiparişte seçtiğiniz protokolü ve portu teyit edin
TLS ya da SSL el sıkışma hatasıProxy adresi https:// ile yazılmış ama proxy düz HTTP konuşuyorProxy şemasını http:// yapın; hedef site yine HTTPS olabilir
Bağlantı reddedildi (connection refused)Port kapalı ya da yanlış yazılmışAdresi ve portu panel bilgileriyle karşılaştırın
Zaman aşımıPort filtreleniyor, ağınız çıkışı kısıtlıyor ya da IP izni eşleşmiyorBaşka bir ağdan deneyin; IP izni kullanıyorsanız adresinizi kontrol edin
Belirti, olası neden ve çözüm

Tüm sütunları görmek için tabloyu yana kaydırın.

Uygulama uyumluluğu

Uygulama / istemciHTTP proxySOCKS5Not
Tarayıcılar ve eklentilerEvetEvetKimlik doğrulamalı SOCKS5 desteği tarayıcıya ve sürüme göre değişir
cURLEvetEvetsocks5h:// ile alan adı proxy’de çözülür
Python requestsEvetEk paketleSOCKS için requests[socks] kurulur
Node.js ve diğer HTTP kütüphaneleriGenellikleKütüphaneye göreSOCKS5 için çoğunlukla ayrı bir paket (proxy agent) gerekir
Masaüstü uygulamaları ve oyun istemcileriUygulamaya göreUygulamaya göreYalnızca proxy ayarı sunanlarda çalışır; ayarı yok sayan uygulamanın trafiği doğrudan çıkar
SSH, e-posta gibi web dışı istemcilerÇoğunlukla yokGenellikleÇoğu istemcide yalnızca SOCKS ayarı bulunur
Hangi istemcide hangi protokol kullanılır?

Tüm sütunları görmek için tabloyu yana kaydırın.

Proxy ayarı sunmayan uygulamalarda sistem ayarı çoğu zaman yeterli olmaz. Windows’ta uygulama bazlı yöntemler için Windows’ta SOCKS5 proxy kurulumu yazısına, kod örnekleri için cURL ve Python ile proxy kullanımı yazısına bakabilirsiniz.

Hangisini seçmelisiniz?

  1. Uygulamanızın proxy ayarına bakın. Yalnızca “HTTP/HTTPS proxy” yazıyorsa HTTP, “SOCKS” yazıyorsa SOCKS5 kullanın.
  2. Web sayfası ve API isteği atıyorsanız (tarayıcı, cURL, Python, scraping araçları) HTTP çoğu zaman yeterli ve kolay bir seçenektir.
  3. Web dışı bir bağlantıyı (SSH, e-posta, masaüstü uygulaması, oyun istemcisi) yönlendirecekseniz genellikle SOCKS5 gerekir.
  4. Alan adının proxy tarafında çözülmesini istiyorsanız socks5h ya da HTTP proxy kullanın.
  5. Elinizdeki proxy’nin protokolünden emin değilseniz Proxy Kontrol ile başlayın, protokolü otomatik dener; SOCKS5 Kontrol ve HTTP Proxy Kontrol ise protokolleri ayrı ayrı sınar.

Hız ve güvenlik hakkında

Hızı çoğu durumda protokol değil, ağ yolu, proxy’nin konumu ve hedef belirler. İki protokol de trafiği kendiliğinden şifrelemez: HTTPS sitelerin şifrelemesi proxy’den bağımsız sürer, düz HTTP trafiği ise proxy üzerinden okunabilir.

Listelediğimiz paketlerde protokol seçimi

Listelediğimiz paketlerde HTTP ve SOCKS5 ayrı ürünler değil, sipariş sırasında yapılan bir seçimdir. Türkiye ISP paketlerinde ve Türkiye mobil proxy’nin haftalık ve aylık paketlerinde HTTP ya da SOCKS5’i siparişte işaretlersiniz; kimlik doğrulama kullanıcı adı ve parolayladır. IPv6 Proxy paketleri yalnızca HTTP(S) ile çalışır; SOCKS4 sunulmaz. Datacenter ve residential gibi ürünlerde sağlayıcı sayfası HTTP(S) ve SOCKS5’i birlikte belirtir (sağlayıcı beyanı), ancak bu paketlerin sipariş formunda protokol alanı yoktur. Ayrıntı için HTTP & SOCKS5 Proxy sayfasına bakın.

Sonuç

Kısaca: HTTP proxy web trafiği için pratik ve yaygındır; SOCKS5 ise protokolden bağımsız olduğu için web dışı bağlantılarda genellikle tek seçenektir. Seçimi çoğu zaman uygulamanızın proxy ayarı belirler. Sabit adres isteyen işler için ISP Proxy, toplu adres gereken işler için Datacenter Proxy sayfalarını inceleyebilir, paketleri fiyatlandırma sayfasında yan yana görebilirsiniz.

SSS

Sık sorulan sorular

Hayır, tek başına değil. İkisi de trafiği kendiliğinden şifrelemez: HTTPS siteler uçtan uca şifreli kalır, düz HTTP siteler ise proxy üzerinden okunabilir. SOCKS5’in avantajı güvenlik değil, uygulama protokolünden bağımsız olmasıdır.

Ürünler

Bu yazıdaki ürünler

Konuyla en çok ilgili ürünler burada. Paketlere ve fiyatlara ürün sayfalarından ya da fiyatlandırma sayfasından bakabilirsiniz.

Sipariş ve ödeme adımları saglamproxy.com üzerinde tamamlanır.

Okumaya devam edin

İlgili yazılar

Tüm yazılar