Proxy türü

SOCKS5 proxy nedir, nasıl çalışır?

SOCKS5, bir TCP bağlantısını uygulama protokolünden bağımsız olarak aktaran proxy protokolüdür (RFC 1928). Kullanıcı adı/parola ile kimlik doğrulama, alan adıyla hedef belirtme ve IPv6 adres türünü destekler. Burada el sıkışmanın baytlarını, hata kodlarını ve socks5 ile socks5h farkını bulacaksınız.

SOCKS5 ne yapar, ne yapmaz?

SOCKS5 proxy, istemcinin istediği hedefe bir TCP bağlantısı açar ve baytları iki yönde olduğu gibi aktarır. İçeriği yorumlamaz; bu nedenle web, e-posta, mesajlaşma ve oyun gibi TCP kullanan farklı uygulamalar aynı proxy'den geçebilir. HTTP proxy ise yalnızca HTTP'yi anlar ve düz HTTP isteklerini okuyabilir (HTTP proxy).

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ı: karşılama, kimlik doğrulama, bağlantı isteği.Konsept animasyonu

El sıkışma adım adım

  1. 1

    1. Karşılama (greeting)

    İstemci VER=5, desteklediği yöntem sayısı ve yöntemleri gönderir: 0x00 kimlik doğrulamasız, 0x02 kullanıcı adı/parola. Proxy VER ve seçtiği yöntemi döner; hiçbiri kabul edilmiyorsa 0xFF yanıtı verir ve bağlantı biter.

  2. 2

    2. Kimlik doğrulama (RFC 1929)

    Yöntem 0x02 seçildiyse istemci VER=1, kullanıcı adı uzunluğu ve adı, parola uzunluğu ve parolasını gönderir. Proxy VER=1 ve durum döner; 0 başarıdır, diğer değerler başarısızdır.

  3. 3

    3. Bağlantı isteği

    İstemci VER=5, komut 1 (CONNECT), RSV=0, adres türü (1 IPv4, 3 alan adı, 4 IPv6), hedef adres ve port gönderir.

  4. 4

    4. Yanıt

    Proxy VER, REP (sonuç kodu), RSV, adres türü, bağlı adres ve port döner. REP=0 ise tünel açılmıştır ve sonrası ham bayt akışıdır.

REP hata kodları

RFC 1928 yanıt kodları
REPAnlamGenelde ne demek?
0BaşarılıTünel açıldı
1Genel SOCKS sunucu hatasıProxy tarafında tanımsız hata
2Kural kümesi izin vermiyorProxy erişim kuralı o hedefi engelliyor
3Ağ erişilemiyorProxy hedef ağa yol bulamıyor
4Makineye erişilemiyorHedef IP kapalı ya da yönlendirilemiyor
5Bağlantı reddedildiHedef portta dinleyen yok
6TTL süresi dolduHedefe giden yol çok uzun ya da döngüde
7Komut desteklenmiyorÖrneğin proxy yalnızca CONNECT bilir
8Adres türü desteklenmiyorÖrneğin proxy IPv6 ya da alan adı kabul etmiyor

socks5 ve socks5h: DNS çözümü kimde?

curl ve birçok kütüphanede socks5:// kullanırsanız alan adı sizin makinenizde çözülür ve proxy'ye IP adresi gider. socks5h:// ise alan adını olduğu gibi proxy'ye gönderir ve çözümü proxy yapar. Yerel DNS'inizin hedefi öğrenmesini istemiyorsanız socks5h kullanın; bu DNS sızıntısını önlemenin standart yoludur (DNS sızıntısı rehberi).

Bash
# Ad yerelde çözülür
curl --proxy socks5://KULLANICI:[email protected]:1080 https://example.com/

# Ad proxy'de çözülür (DNS sızıntısını önler)
curl --proxy socks5h://KULLANICI:[email protected]:1080 https://example.com/

# Eşdeğer eski bayraklar
curl --socks5 proxy.example.com:1080 --proxy-user KULLANICI:PAROLA https://example.com/
curl ile SOCKS5
Python
import requests

proxies = {
    "http": "socks5h://KULLANICI:[email protected]:1080",
    "https": "socks5h://KULLANICI:[email protected]:1080",
}
r = requests.get("https://example.com/", proxies=proxies, timeout=15)
print(r.status_code)
Python requests (PySocks ile)

SOCKS5 mi HTTP proxy mi?

DurumDaha uygun
Sadece web trafiği ve tarayıcı/araç HTTP proxy ayarı destekliyorHTTP proxy
HTTP olmayan TCP uygulaması (mesajlaşma, oyun istemcisi, FTP vb.)SOCKS5
Alan adının proxy tarafında çözülmesi önemliSOCKS5 (socks5h)
Uygulama yalnızca http:// proxy adresi alıyorHTTP proxy

Protokolün UDP ASSOCIATE komutu da vardır, ancak proxy kontrol aracımız yalnızca TCP CONNECT'i sınar; UDP desteği hakkında bir sonuç vermez. SOCKS5 üzerinden IPv6 hedef kullanımı sağlayıcı ve pakete bağlıdır; sipariş öncesi teyit edin.

saglamproxy.com üzerinde Türkiye ISP ve mobil paketlerinde sipariş sırasında HTTP ya da SOCKS5 seçilir; diğer ürünlerdeki protokol desteği ürün sayfalarında anlatıldığı gibidir. Karşılaştırma için HTTP & SOCKS5 Proxy sayfasına bakın.

SOCKS5 proxy’nizi kimlik doğrulamasıyla birlikte sınayın.

Proxy Kontrol Et

Sık sorulan sorular

İlgili sayfalar