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
| Özellik | HTTP proxy | SOCKS5 |
|---|---|---|
| Çalıştığı düzey | Uygulama (HTTP) | Oturum/aktarım üzerinde, protokolden bağımsız |
| Desteklenen trafik | HTTP ve (CONNECT ile) HTTPS tüneli | Herhangi bir TCP bağlantısı; UDP ASSOCIATE protokolde tanımlıdır |
| Düz HTTP trafiğini görme | Evet, okuyabilir ve değiştirebilir | Hayır, uygulama baytlarını yorumlamaz |
| HTTPS trafiğini görme | Hedef ana makine adı ve port görünür; içerik görünmez | Hedef adres ve port görünür; içerik görünmez |
| Kimlik doğrulama | Çoğunlukla Basic (Proxy-Authorization), 407 ile istenir | Kullanıcı adı/parola (RFC 1929) ya da hiçbiri |
| Ad çözümlemesi | Proxy yapar (istek ana makine adını taşır) | İstemci ya da proxy yapabilir (socks5 / socks5h) |
| Şifreleme | Proxy 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.
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 establishedBir 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.
SOCKS5 (RFC 1928): yöntem pazarlığı, isteğe bağlı kullanıcı adı/parola (RFC 1929), bağlantı isteği ve yanıt.
- 1. İstemci → Proxy: İstemci desteklediği yöntemleri sunar
- 2. Proxy → İstemci: Proxy bir yöntem seçer
- 3. İstemci → Proxy: Kullanıcı adı ve parola gönderilir (isteğe bağlı)
- 4. Proxy → İstemci: Proxy kimlik bilgisini onaylar (isteğe bağlı)
- 5. İstemci → Proxy: İstemci bağlantı ister
- 6. Proxy → Hedef: Proxy hedefe TCP bağlantısı açar
- 7. Proxy → İstemci: Proxy sonucu bildirir
- 8. İstemci → Hedef: Veri proxy üzerinden aktarılır
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.
| Kod | Anlamı |
|---|---|
| 0 | Başarılı |
| 1 | Genel hata |
| 2 | Kural kümesi tarafından izin verilmedi |
| 3 | Ağa ulaşılamıyor |
| 4 | Ana makineye ulaşılamıyor |
| 5 | Bağlantı reddedildi |
| 6 | TTL doldu |
| 7 | Komut desteklenmiyor |
| 8 | Adres 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.
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/Hangi durumda hangisi?
| Durum | Tercih | Neden |
|---|---|---|
| Tarayıcı, curl, requests, Scrapy gibi HTTP istemcileri | HTTP (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) | SOCKS5 | HTTP proxy bu protokolleri anlamaz |
| Ad çözümlemesini yerelde yapmak istemiyorsunuz | SOCKS5 (socks5h) ya da HTTP | Her ikisinde de ad proxy tarafında çözülebilir |
| HTTP başlıklarını proxy üzerinde incelemek/filtrelemek | HTTP | SOCKS5 içeriği yorumlamaz |
| UDP gereken uygulama | SOCKS5 (UDP ASSOCIATE destekliyse) | HTTP proxy UDP taşımaz; sunucunun UDP desteği ayrıca teyit edilmeli |
| Yalnızca IPv6 hedefleri | HTTP(S) | Bazı hizmetlerde IPv6 yalnızca HTTP(S) ile sunulur; sağlayıcıdan teyit edin |
Python ve tarayıcıda kullanım
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)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)