← Blog'a dön
SOCKS5 AUTH nodetonet.com

Kimlik doğrulamalı SOCKS5 — gerçekte nasıl çalışıyor ve kütüphaneler neden yanlış yapıyor

N Nodetonet Team
1 Mayıs 2026 8 dk okuma

SOCKS5, her şeyi kaldıran proxy protokolü olarak haklı bir ün kazanmıştır — ham TCP, UDP, her uygulama, her hedef. Ama kimlik doğrulama katmanı kendi RFC'sine, kendi kablo formatına ve istemci kütüphanelerinin bunu sessizce bozmasına dair uzun bir geçmişe sahip ayrı bir alt-protokoldür. Bir proxy sunucusunda kimlik bilgisi ayarlayın; popüler kütüphanelerin şaşırtıcı bir kısmı, bu kimlik bilgilerini gerçekten göndermeden bağlanmaya devam edecektir — çünkü bunun yerine no-auth müzakere ederler.

Özet: SOCKS5 kimlik doğrulaması RFC 1929'da tanımlanan iki turlu bir handshake'tir. Güvenli kalmak için sunucunun kimlik bilgileri yapılandırıldığında no-auth fallback'i reddetmesi gerekir — Nodetonet bunu varsayılan olarak yapar. Bu yazı, handshake'in her baytını, Nodetonet'in onu nasıl zorladığını ve kendi istemci kütüphanenizin kimlik doğrulamayı sessizce atlayıp atlamadığını nasıl doğrulayacağınızı açıklar.

SOCKS5 kimlik doğrulaması neden kendi başına bir dünyadır

Çoğu insan "kullanıcı adı ve şifreli SOCKS5" dediğinde HTTP Basic auth gibi çalıştığını hayal eder — header'da kimlik bilgisi, tamam. SOCKS5 bundan çok farklı çalışır. Protokol, yöntem müzakeresini (hangi auth türünü kullanacağınızı) kimlik bilgisi değişiminden (gerçek kullanıcı adı ve şifre) ayırır ve bunu, herhangi bir trafik akmadan önce iki farklı, sıralı handshake ile yapar. Her ikisi de bayt düzeyinde belirtilmiştir ve tek bir yanlış sekizlik bağlantıyı kapatır.

Handshake'i anlamak salt akademik değildir. En yaygın gerçek dünya arıza modu — bir scraper'ın günlerce kimlik bilgisi olmadan çalışması ve operatörün hiç fark etmemesi — doğrudan yöntem müzakeresinin yanlış gitmesinden kaynaklanır. Üst düzey bir genel bakış için SOCKS5 proxy sözlük girişine bakın, kablo detayı için burada okumaya devam edin.

İki aşamalı SOCKS5 handshake'i, bayt bayt

Aşama 1 — yöntem müzakeresi

Her SOCKS5 bağlantısı, istemciden bir selamlama ile başlar. İstemci, kullanmaya istekli olduğu kimlik doğrulama yöntemlerinin bir listesini gönderir:

05 02 00 02
^  ^  ^  ^
|  |  |  +-- yöntem 2: KULLANICI_ADI/PAROLA (0x02)
|  |  +----- yöntem 1: KIMLIK_DOGRULAMA_YOK (0x00)
|  +-------- sunulan yöntem sayısı
+----------- SOCKS versiyonu (5)

Sunucu listeyi okur, kabul ettiği tam olarak bir yöntemi seçer ve iki baytla yanıt verir:

05 02      -- "KULLANICI_ADI/PAROLA'yı seçiyorum"
05 00      -- "KIMLIK_DOGRULAMA_YOK'u seçiyorum" (tek sunduğunuz veya desteklediğim buysa)
05 FF      -- "Yöntemlerinizden hiçbiri kabul edilemez — hoşça kalın"

Sunucu FF ile yanıt verirse bağlantı hemen kapatılır. 02 ile yanıt verirse istemci kimlik bilgisi değişimine geçmek zorundadır. 00 ile yanıt verirse — ve istemci selamlayışında 00 sunduysa — bağlantı hiçbir kimlik bilgisi kontrolü olmadan devam eder. Bu, sessiz-fallback tuzağıdır.

Aşama 2 — RFC 1929 kimlik bilgisi alt-müzakeresi

Sunucu yöntem 0x02'yi seçtiğinde, istemci tamamen RFC 1929 tarafından tanımlanan ayrı bir kimlik doğrulama paketi gönderir (temel SOCKS5 RFC'si değil):

01 <ulen> <kullanici_adi_baytlari> <plen> <parola_baytlari>
^
+-- alt-müzakere versiyonu (her zaman 0x01)

Sunucu kimlik bilgilerini doğrular ve yanıt verir:

01 00      -- kimlik doğrulama başarılı
01 01      -- kimlik doğrulama başarısız (sıfır dışı herhangi bir bayt reddet anlamına gelir)

Sıfır dışı bir durum baytı, sunucunun bağlantıyı kapattığı anlamına gelir. Yalnızca 01 00 başarısından sonra istemci gerçek CONNECT, BIND veya UDP_ASSOCIATE isteğini gönderir.

Tam akış tek bir bakışta

AdımGönderenİçeriğiAmacı
1İstemciSelamlama: versiyon + yöntem listesiKimlik doğrulama yöntemleri öner
2SunucuVersiyon + seçilen yöntemYöntemi seç (veya reddet)
3İstemciRFC 1929 kimlik doğrulama paketiKullanıcı adı + şifre gönder
4SunucuRFC 1929 yanıtıKimlik bilgilerini kabul et veya reddet
5İstemciCONNECT / BIND / UDP isteğiGerçek proxy tünelini aç
6SunucuSOCKS5 yanıtı (0x00 = Tamam)Tünelin açık olduğunu onayla

Adım 3 ve 4, sunucu KIMLIK_DOGRULAMA_YOK'u seçtiğinde tamamen yoktur. Tehlike, bir istemci kütüphanesinin selamlayışı 05 02 00 02 olarak sunabilmesi (her iki yöntemi sunarak) ama sunucunun 00'ı seçmesidir — kimlik bilgileri hiç gönderilmez ve tünel yine de açılır.

Nodetonet kimlik doğrulamasını nasıl zorlar

Nodetonet panelinde bir SOCKS5 proxy oluşturduğunuzda, benzersiz bir kullanici_adi:parola çifti otomatik olarak oluşturulur. Atanan portu dinleyen edge node, her yeni TCP bağlantısında şu kuralları uygular:

Müşteri başına kimlik bilgileri (proxy istemcileri)

Tek bir tünelde proxy istemcileri yapılandırdıysanız — her müşteriye kendi kullanıcı adı/şifrelerini verebilmek için birden fazla kimlik bilgisi seti — RFC 1929 paketindeki kullanıcı adı hangi istemcinin eşleştiğini belirler. O noktadan itibaren, o istemcinin bireysel kotası, thread sınırı, IP izin listesi ve domain kısıtlamaları tüm session boyunca uygulanır. Bu, tek bir SOCKS5 uç noktasının tam olarak izole edilmiş kontrollerle düzinelerce farklı müşteriye hizmet edebileceği anlamına gelir.

SOCKS5 kimlik bilgileri kablodan düz metin olarak iletilir — bu RFC 1929 tarafından belirtilmiştir, Nodetonet'in tercihi değil. İstemcinizden edge sunucusuna giden yol güvenilmez bir ağdan geçiyorsa, bağlantıyı uygulama katmanında TLS'e sarın veya uçtan uca şifrelemeyi destekleyen HTTP/HTTPS proxy seçeneğimizi kullanın. Çoğu kullanım durumunda edge ayrılmış veya zaten şifreli bir bağlantıyla erişildiğinden, SOCKS5 kimlik doğrulamasının düz metin niteliği pratikte nadiren sorun olur.

Sessiz-fallback tuzağı — ve nasıl tespit edilir

En tehlikeli senaryo bir bağlantı hatası değil — başarılı olan ama kimlik doğrulaması olmadan çalışan bir bağlantıdır. Bu, istemci kütüphanesi selamlayışında hem KIMLIK_DOGRULAMA_YOK hem de KULLANICI_PAROLA sunduğunda, sunucu (yanlış yapılandırılmış veya çok izin verici) KIMLIK_DOGRULAMA_YOK'u seçtiğinde ve kütüphane neşeyle devam ettiğinde olur. Scraper'ınız çalışıyor gibi görünür ama hiçbir kimlik bilgisi doğrulanmamıştır.

Dile göre yaygın suçlular

Tek satırlık kanıt

Kesin test: kasıtlı olarak yanlış kimlik bilgileriyle bir istek gönderin. Proxy sunucunuz kimlik doğrulamayı doğru şekilde zorluyorsa, bu başarısız olmalıdır:

curl --socks5 kullanici:YANLIS_PAROLA@sub42.nodetonet.com:48888 https://api.ipify.org
# Beklenen: curl: (7) Unable to receive initial SOCKS5 response
#           VEYA: SOCKS5 authentication failed

İstek yanlış kimlik bilgileriyle başarılı olursa, sunucunuz KIMLIK_DOGRULAMA_YOK'u kabul ediyor demektir. Hangi IP'nin ortaya çıktığını IP adresim nedir aracıyla doğrulayabilirsiniz.

SOCKS5 kimlik doğrulaması ile Nodetonet gelişmiş özellikleri

Sticky oturumlar

Bir rotating proxy'de her yeni bağlantıda farklı bir çıkış IP'si alırsınız. Tüm bir giriş veya ödeme akışı için aynı IP'ye ihtiyaç duyuyorsanız — bir sticky oturum — kullanıcı adına bir oturum kimliği ekleyin: u8x2-session-abc123. Proxy, o oturum etiketi olan tüm bağlantıları oturum TTL'si boyunca aynı cihaz üzerinden yönlendirir. Bu, SOCKS5 ve HTTP'de aynı şekilde çalışır.

Kullanıcı adı değiştiricileriyle coğrafi hedefleme

Kimlik bilgilerini aynı kullanıcı adı dizisinde coğrafi hedefleme değiştiricileriyle birleştirebilirsiniz — örneğin u8x2-country-tr-session-1, sabitlenmiş bir oturumla Türk mobil IP'si üzerinden yönlendirir. Uç nokta değişikliği gerekmez. Konuma özgü seçenekler için Türkiye, İstanbul ve Turkcell sayfalarına bakın.

TCP parmak izi sahteciliği için SOCKS5 kullanımı

SOCKS5 HTTP katmanını yeniden yazmak yerine ham TCP ilettiği için Nodetonet ayrıca edge'de TCP/IP parmak izi sahteciliği uygulayabilir — hedef tarafından görülen işletim sistemi düzeyindeki TCP parametrelerini değiştirerek. Bu, istemci uygulamasına görünmezdir ve IP adresinin ötesinde başka bir güven katmanı ekler.

Nodetonet'te HTTP ile SOCKS5 arasında seçim

Nodetonet her iki protokolü de aynı cihaz havuzundan sunar, dolayısıyla bu bir platform kısıtlaması değil, kullanım durumuna göre bir seçimdir. Tam karşılaştırma için HTTP vs SOCKS5 — hangisini seçmeli sayfasına bakın. Hızlı bir kılavuz olarak:

SOCKS5 proxy'leri tam proxy listesinin yanında görmek ve istemci kimlik bilgilerini yönetmek için SOCKS5 ve HTTP proxy'ler özellik sayfasını ziyaret edin veya ücretsiz hesap oluşturun.

Devamını oku

Sıkça sorulan sorular

SOCKS5 ile kimlik doğrulamalı SOCKS5 arasındaki fark nedir?
Düz SOCKS5, herhangi bir istemcinin kimliğini kanıtlamadan bağlanmasına izin verir (NO_AUTH modu). Kimlik doğrulamalı SOCKS5, herhangi bir trafik akmadan önce istemcinin RFC 1929'da tanımlanan kullanıcı adı/şifre değişimini tamamlamasını gerektirir. Kablo protokolü aynıdır — yalnızca yöntem müzakeresi sonucu değişir. Nodetonet'te, kimlik bilgileri yapılandırıldığında kimlik doğrulama her zaman zorlanır.
SOCKS5 istemcim neden ayarladığım kullanıcı adı ve şifreyi yok sayıyor?
En yaygın neden, selamlayışta KULLANICI_PAROLA'nın yanı sıra KIMLIK_DOGRULAMA_YOK da sunan bir kütüphanedir. Sunucu da KIMLIK_DOGRULAMA_YOK'u kabul ediyorsa, daha kolay seçeneği seçer ve kimlik bilgileriniz hiç istenmez. Çözüm, kasıtlı olarak yanlış bir şifreyle test etmektir — bağlantı yine de başarılı olursa sunucunuz kimlik doğrulamayı zorlamıyor demektir.
SOCKS5 kimlik doğrulaması şifreli mi?
Hayır. RFC 1929, kullanıcı adı ve şifrenin düz metin olarak gönderildiğini belirtir. İstemcinizle proxy sunucusu arasındaki ağ yolu güvenilmez ise, bağlantıyı TLS'e sarın (veya HTTPS ile HTTP proxy kullanın). Pratikte, çoğu Nodetonet bağlantısı ayrılmış veya zaten şifreli bağlantılar üzerinden çalışır, bu nedenle bu nadiren bir sorun olur.
Tek bir SOCKS5 proxy uç noktasında birden fazla kullanıcı adı kullanabilir miyim?
Evet, Nodetonet'in proxy istemcileri özelliği aracılığıyla. Tek bir tünelde birden fazla kimlik bilgisi seti oluşturursunuz ve her biri kendi kotasına, thread sınırına, IP izin listesine ve domain kısıtlamalarına sahip olur. RFC 1929 handshake'indeki kullanıcı adı, o oturum için hangi istemcinin etkin olduğunu seçer.
SOCKS5 proxy'ye sticky oturum nasıl eklerim?
Kullanıcı adınıza bir oturum etiketi ekleyin: örneğin u8x2'yi u8x2-session-abc123 olarak değiştirin. Bu etiketli kullanıcı adını kullanan tüm bağlantılar, oturum TTL'si boyunca aynı cihazdan çıkar. Aynı kullanıcı adı dizisinde bir oturum etiketini coğrafi değiştiricilerle de birleştirebilirsiniz.
Nodetonet'te yanlış SOCKS5 şifresi gönderirsem ne olur?
Edge node, RFC 1929 durumu 01 01 (sıfır dışı = başarısız) ile yanıt verir ve TCP bağlantısını hemen kapatır. İstemciniz "SOCKS5 authentication failed" gibi bir bağlantı hatası görecektir. Başarısız girişimler, panelinizdeki proxy denetim izinde görüntüleyebileceğiniz denetim kaydına kaydedilir.
SOCKS5 kimlik doğrulaması rotating ve sticky proxy'lerde aynı şekilde mi çalışır?
Evet. RFC 1929 handshake'i, rotasyon modundan bağımsız olarak aynıdır. Değişen şey, kimlik doğrulama başarılı olduktan sonra proxy'nin çıkış cihazını nasıl seçtiğidir: rotating her bağlantıda yeni bir cihaz seçer, sticky oturum TTL'si için birine sabitler. Kimlik doğrulama her zaman ilk adımdır, herhangi bir yönlendirme kararı alınmadan önce.
Nodetonet'teki SOCKS5 proxy'ler web dışı trafiği taşıyabilir mi?
Evet. SOCKS5 genel bir TCP proxy protokolüdür — herhangi bir TCP bağlantısını tüneleyebilir: veritabanı istemcileri, oyun sunucuları, özel araçlar, SSH ve daha fazlası. HTTP proxy'lerin aksine, SOCKS5 yükü yorumlamaz veya yeniden yazmaz; bu da onu HTTP konuşmayan protokoller için uygun kılar.
N

Nodetonet Team

Nodetonet'i geliştiriyoruz — ngrok, Cloudflared ve bir residential proxy sağlayıcısının yerini tek panelle alan, peşin ödemeli proxy + tünel platformu.