Proxy türü

SOCKS4 ve SOCKS4a proxy nedir?

SOCKS4, TCP bağlantılarını aktaran eski ve çok sade bir proxy protokolüdür. Kimlik doğrulaması yoktur, yalnızca IPv4 ve yalnızca TCP CONNECT bilir. Bu sayfada protokolün baytlarını, SOCKS4a eklentisini ve ne zaman hâlâ karşınıza çıktığını anlatıyoruz.

SOCKS4 neyi çözer?

SOCKS, HTTP gibi belirli bir uygulama protokolüne bağlı değildir: istemci proxy'ye “şu IP ve porta bir TCP bağlantısı aç” der, proxy bağlantıyı açar ve iki yöndeki baytları olduğu gibi aktarır. Bu yüzden web dışındaki TCP tabanlı uygulamalar da SOCKS üzerinden çalışabilir. HTTP proxy ile farkı için HTTP proxy sayfasına bakın.

SOCKS4'ün sınırları net: yalnızca IPv4, yalnızca TCP CONNECT, kullanıcı adı/parola ile kimlik doğrulama yok. Bunların hepsi SOCKS5 ile gelir.

Konsept · eğitim amaçlı

SOCKS4: tek bir istek, tek bir yanıt. Yalnızca IPv4 ve TCP CONNECT; parola ile kimlik doğrulama yoktur.

SOCKS4 proxy mesaj sırasıSOCKS4 proxy için istemci, proxy ve hedef arasındaki 4 adımlı mesaj sırası. Şu an 1. adım: İstemci bağlantı ister. Tüm adımlar aşağıdaki gizli listede yazılıdır.
  1. 1. İstemci → Proxy: İstemci bağlantı ister
  2. 2. Proxy → Hedef: Proxy hedefe TCP bağlantısı açar
  3. 3. Proxy → İstemci: Proxy yanıtlar
  4. 4. İstemci → Hedef: Veri proxy üzerinden aktarılır
adım 1/4 · İstemci → Proxy

Düz bağlantı

İstemci bağlantı ister

VN
0x04
CD
0x01 (CONNECT)
DSTPORT
2 bayt
DSTIP
4 bayt, IPv4
USERID
bayt dizisi + 0x00

SOCKS4a: DSTIP 0.0.0.x (x sıfırdan farklı), ardından ana makine adı + 0x00; adı proxy çözer.

USERID yalnızca bir tanımlayıcıdır, parola değildir. Ad çözümlemesini proxy’ye bırakmak için SOCKS4a kullanılır.

SOCKS4 el sıkışması: tek bir istek, tek bir yanıt.Konsept animasyonu

İstek ve yanıt biçimi

SOCKS4 CONNECT isteği (baytlar sırayla)
AlanUzunlukAnlam
VN1 baytSürüm: 4
CD1 baytKomut: 1 = CONNECT
DSTPORT2 baytHedef port
DSTIP4 baytHedef IPv4 adresi
USERIDdeğişkenTanımlayıcı metin; parola değildir
NUL1 baytUSERID sonu (0x00)

Yanıt 8 bayttır: ilk bayt VN=0, ikincisi sonuç kodu, sonra port ve IP (istemci bunları yok sayar). Sonuç kodları şunlardır:

KodAnlamPratikte
90İstek kabul edildiTünel açıldı; sonrası ham bayt akışı
91İstek reddedildi veya başarısızHedefe ulaşılamadı ya da proxy kuralı engelledi
92identd erişilemiyorProxy istemcinin identd servisine ulaşamadı
93identd kullanıcı kimliğiyle uyuşmuyorUSERID, identd’nin döndürdüğüyle eşleşmedi

SOCKS4a: alan adını proxy çözer

SOCKS4'te istemci hedefin IPv4 adresini bilmek zorundadır; alan adını kendisi çözmelidir. SOCKS4a bunu genişletir: DSTIP alanına 0.0.0.x biçiminde (x sıfırdan farklı) sahte bir adres yazılır ve USERID'nin ardından, ikinci bir NUL ile biten hedef alan adı eklenir. Böylece alan adını proxy çözer.

Bash
# SOCKS4: ad istemcide çözülür
curl --socks4 proxy.example.com:1080 http://203.0.113.10/

# SOCKS4a: ad proxy tarafında çözülür
curl --socks4a proxy.example.com:1080 http://example.com/
curl’de SOCKS4 ve SOCKS4a

Ne zaman SOCKS4 karşınıza çıkar?

  • Eski yazılım, eski ağ cihazları ve ücretsiz listelerdeki bazı kayıtlar SOCKS4 konuşur.
  • Kimlik doğrulama gerekmeyen, yalnızca IPv4 hedefe TCP bağlantısı yeten basit senaryolar için çalışır.
  • Yeni bir kurulum yapıyorsanız SOCKS5 daha esnektir: kimlik doğrulama, alan adı ve IPv6 desteği sunar.

Sorun giderme

  1. 1

    Yanıt 91 mi?

    Hedef IP/port erişilemez ya da proxy kuralı engelliyor olabilir. Aynı hedefi başka bir proxy ile deneyin.

  2. 2

    Bağlantı hemen kapanıyor mu?

    Proxy SOCKS4 değil SOCKS5 ya da HTTP konuşuyor olabilir. SOCKS5 ve HTTP ile deneyin.

  3. 3

    IPv6 hedef mi?

    SOCKS4 yalnızca IPv4 adreslerini taşır; IPv6 hedefe bağlanılamaz.

  4. 4

    Kimlik bilgisi mi gerekiyor?

    SOCKS4 kimlik doğrulaması sunmaz. Parolalı bir proxy iseniz SOCKS5 gerekir.

Proxy kontrol aracımızda protokol olarak SOCKS4 seçebilirsiniz; araç yukarıdaki 8 baytlık yanıtı okuyup kodu raporlar. Protokol ürün olarak sunulmadığı için saglamproxy.com paketlerinde SOCKS4 seçeneği yoktur; sipariş sırasında HTTP ya da SOCKS5 seçilir (ayrıntı).

SOCKS4 proxy’nizi 90–93 kodlarıyla birlikte sınayın.

Proxy Kontrol Et

Sık sorulan sorular

İlgili sayfalar