Proxy Türleri

HTTP ve SOCKS5 proxy farkı: hangisini, ne zaman seçmelisiniz?

HTTP proxy web trafiğini anlar, SOCKS5 ise herhangi bir TCP bağlantısını aktarır. İkisinin protokol düzeyindeki farkını ve doğru seçimi örneklerle anlatıyoruz.

Kategori
Proxy Türleri
Okuma süresi
9 dk okuma
Yayın:

HTTP ve SOCKS5 proxy farkı özünde bir katman farkıdır. HTTP proxy, HTTP protokolünü konuşur: isteği okur, gerekirse değiştirir ve hedefe iletir. SOCKS5 ise uygulama protokolünü hiç yorumlamaz; yalnızca "şu adrese ve porta bir TCP bağlantısı aç" talimatını yerine getirir ve ardından baytları olduğu gibi aktarır. Bu fark; hangi uygulamanın çalışacağını, ad çözümlemesinin nerede yapılacağını ve proxy'nin neyi görebileceğini belirler.

Kısa karşılaştırma

ÖzellikHTTP proxySOCKS5
Çalıştığı düzeyUygulama (HTTP)Oturum/aktarım üzerinde, protokolden bağımsız
Desteklenen trafikHTTP ve (CONNECT ile) HTTPS tüneliHerhangi bir TCP bağlantısı; UDP ASSOCIATE protokolde tanımlıdır
Düz HTTP trafiğini görmeEvet, okuyabilir ve değiştirebilirHayır, uygulama baytlarını yorumlamaz
HTTPS trafiğini görmeHedef ana makine adı ve port görünür; içerik görünmezHedef adres ve port görünür; içerik görünmez
Kimlik doğrulamaÇoğunlukla Basic (Proxy-Authorization), 407 ile istenirKullanıcı adı/parola (RFC 1929) ya da hiçbiri
Ad çözümlemesiProxy yapar (istek ana makine adını taşır)İstemci ya da proxy yapabilir (socks5 / socks5h)
ŞifrelemeProxy bağlantısı için yok (TLS'li proxy ayrı)Yok

HTTP proxy nasıl çalışır?

Düz HTTP hedefe giderken istemci, isteği proxy'ye absolute-form ile gönderir; proxy bağlantıyı hedefe kendisi açar ve yanıtı iletir. HTTPS hedeflerde istemci önce bir CONNECT ister; proxy 200 dönerse bağlantı kör bir tünele dönüşür ve TLS el sıkışması hedefle uçtan uca yapılır.

HTTP
GET http://example.com/yol HTTP/1.1
Host: example.com

CONNECT example.com:443 HTTP/1.1
Host: example.com:443

HTTP/1.1 200 Connection established
HTTP proxy: düz HTTP isteği ve HTTPS için CONNECT

Bir HTTP proxy HTTP isteklerini iletirken CONNECT'i reddedebilir (çoğu yalnızca 443 portuna izin verir) ya da tersi olabilir. Bu yüzden iki yeteneği ayrı ayrı sınamak gerekir. Ayrıntılar için HTTP proxy nasıl test edilir rehberine bakın.

SOCKS5 nasıl çalışır?

SOCKS5 (RFC 1928) bir el sıkışmayla başlar. İstemci desteklediği doğrulama yöntemlerini bildirir; sunucu birini seçer. Gerekirse kullanıcı adı/parola alt müzakeresi (RFC 1929) yapılır. Ardından istemci hedefi bir IPv4, IPv6 ya da alan adı olarak bildirir ve sunucu bağlantıyı açar. Bu aşamadan sonra baytlar yorumlanmadan aktarılır.

Konsept · eğitim amaçlı

SOCKS5 (RFC 1928): yöntem pazarlığı, isteğe bağlı kullanıcı adı/parola (RFC 1929), bağlantı isteği ve yanıt.

SOCKS5 proxy mesaj sırasıSOCKS5 proxy için istemci, proxy ve hedef arasındaki 8 adımlı mesaj sırası. Şu an 1. adım: İstemci desteklediği yöntemleri sunar. Tüm adımlar aşağıdaki gizli listede yazılıdır.
  1. 1. İstemci → Proxy: İstemci desteklediği yöntemleri sunar
  2. 2. Proxy → İstemci: Proxy bir yöntem seçer
  3. 3. İstemci → Proxy: Kullanıcı adı ve parola gönderilir (isteğe bağlı)
  4. 4. Proxy → İstemci: Proxy kimlik bilgisini onaylar (isteğe bağlı)
  5. 5. İstemci → Proxy: İstemci bağlantı ister
  6. 6. Proxy → Hedef: Proxy hedefe TCP bağlantısı açar
  7. 7. Proxy → İstemci: Proxy sonucu bildirir
  8. 8. İstemci → Hedef: Veri proxy üzerinden aktarılır
adım 1/8 · İstemci → Proxy

Düz bağlantı

İstemci desteklediği yöntemleri sunar

VER
0x05
NMETHODS
sunulan yöntem sayısı
METHODS
0x00 kimlik yok · 0x02 kullanıcı/parola

SOCKS5 kendi başına şifrelemez. socks5:// ile ad istemcide, socks5h:// ile proxy’de çözülür. Kontrol aracımız yalnızca TCP CONNECT sınar.

SOCKS5 el sıkışması: yöntem seçimi, isteğe bağlı kimlik doğrulama ve CONNECT isteğiKonsept animasyonu
SOCKS5 yanıt (REP) kodları
KodAnlamı
0Başarılı
1Genel hata
2Kural kümesi tarafından izin verilmedi
3Ağa ulaşılamıyor
4Ana makineye ulaşılamıyor
5Bağlantı reddedildi
6TTL doldu
7Komut desteklenmiyor
8Adres türü desteklenmiyor

socks5 ve socks5h: DNS sızıntısını belirleyen fark

cURL ve birçok kütüphanede iki şema vardır. socks5:// ile hedef alan adını istemci yerelde çözer, proxy'ye IP adresini verir. socks5h:// ile alan adı proxy'ye ham olarak gönderilir ve proxy çözer. Yerel çözümleme, hangi siteye gitmek istediğinizi yerel DNS'e açık eder. Bu nedenle çoğu durumda socks5h tercih edilir. Konuyu DNS sızıntısı testi rehberinde ayrıntılı işliyoruz.

Bash
curl -x http://KULLANICI:[email protected]:8080 https://example.com/
curl -x socks5://KULLANICI:[email protected]:1080 https://example.com/
curl -x socks5h://KULLANICI:[email protected]:1080 https://example.com/
curl --proxy-user KULLANICI:PAROLA -x http://proxy.example.com:8080 -I http://example.com/
cURL ile aynı hedefe dört yol

Hangi durumda hangisi?

DurumTercihNeden
Tarayıcı, curl, requests, Scrapy gibi HTTP istemcileriHTTP (ya da SOCKS5)Her ikisi de desteklenir; HTTP en yaygın ve en az sürprizli seçenektir
Web dışı TCP uygulaması (SSH, IMAP, özel istemci)SOCKS5HTTP proxy bu protokolleri anlamaz
Ad çözümlemesini yerelde yapmak istemiyorsunuzSOCKS5 (socks5h) ya da HTTPHer ikisinde de ad proxy tarafında çözülebilir
HTTP başlıklarını proxy üzerinde incelemek/filtrelemekHTTPSOCKS5 içeriği yorumlamaz
UDP gereken uygulamaSOCKS5 (UDP ASSOCIATE destekliyse)HTTP proxy UDP taşımaz; sunucunun UDP desteği ayrıca teyit edilmeli
Yalnızca IPv6 hedefleriHTTP(S)Bazı hizmetlerde IPv6 yalnızca HTTP(S) ile sunulur; sağlayıcıdan teyit edin

Python ve tarayıcıda kullanım

Python
import requests

http_proxy = "http://KULLANICI:[email protected]:8080"
socks_proxy = "socks5h://KULLANICI:[email protected]:1080"  # pip install "requests[socks]"

for p in (http_proxy, socks_proxy):
    r = requests.get("https://example.com/", proxies={"http": p, "https": p}, timeout=15)
    print(p.split(":")[0], r.status_code)
requests: HTTP proxy ve socks5h

Chrome ve Edge'de sistem proxy ayarı kullanılır; SOCKS5 ayarlamak için işletim sistemi ayarları ya da komut satırı bayrağı gerekir. Firefox ise ayarlarda ayrı bir SOCKS ana makine alanına ve "SOCKS v5" seçeneğine sahiptir. Adım adım yönergeler için proxy nasıl ayarlanır rehberine bakın.

HTTP ve SOCKS5 seçimi satın almada nerede önem kazanır?

Proxy hizmetleri saglamproxy.com üzerinden satılır. Sağlayıcı sayfasına göre Türkiye ISP ve Türkiye mobil paketlerinde protokol sipariş sırasında seçilir: HTTP veya SOCKS5. SOCKS4 yoktur. IPv6 paketleri ise yalnızca HTTP(S)'dir. Kimlik doğrulama kullanıcı adı ve paroladır; ayrıntılar HTTP & SOCKS5 Proxy sayfasında ve kimlik doğrulama yöntemleri rehberindedir.

Bir proxy aldığınızda protokolün gerçekten beklediğiniz gibi çalıştığını HTTP kontrol ve SOCKS5 kontrol sayfalarından doğrulayabilirsiniz. Sağlayıcı beyanı veya protokol etiketi, doğrulama yerine geçmez.

HTTP ve SOCKS5 seçenekli paketleri sağlayıcı sayfasında inceleyin.

HTTP & SOCKS5 Proxy Satın Al (saglamproxy.com, yeni sekmede açılır)

Bu yazıda kullanılan araçlar

Sık sorulan sorular

İlgili rehberler