Sipariş: saglamproxy.com

Giriş Yap ↗

Geliştirici Rehberleri

cURL ile Proxy Testi

cURL, bir proxy’nin çalışıp çalışmadığını tek satırda sınamanın en hızlı yoludur. Bu yazı HTTP ve SOCKS5 testlerini, verbose çıktının okunmasını ve yaygın hata nedenlerini anlatır.

3 dk okuma

Bir uygulamaya proxy ayarı yapmadan önce, sorunun uygulamada mı yoksa proxy bağlantısında mı olduğunu cURL ile ayırabilirsiniz. Komut satırı aracı en az değişkenle çalıştığı için hata ayıklamada ilk durak olarak uygundur. Örneklerde KULLANICI, SIFRE, proxy.example.com ve PORT yer tutucudur.

Temel kullanım: -x bayrağı

Proxy -x (--proxy) ile verilir. Kimlik bilgisi URL içinde yazılabilir ya da -U (--proxy-user) ile ayrı verilebilir. İkincisi komut geçmişinde şifrenin URL içinde görünmesini azaltır, ancak yine de şifre süreç listesinde görünebilir; paylaşımlı makinelerde ortam değişkeni kullanın.

Bash
# Kimlik bilgisi URL içinde
curl -x "http://KULLANICI:[email protected]:PORT" https://example.com/ -I

# Kimlik bilgisi ayrı
curl -x "http://proxy.example.com:PORT" -U "KULLANICI:SIFRE" https://example.com/ -I
HTTP proxy üzerinden yalnızca yanıt başlıklarını almak için -I kullanılır.

SOCKS5 ve socks5h

cURL, SOCKS5 için iki şema tanır. socks5:// host adını istemcide çözer; socks5h:// ise ad çözümünü proxy’ye bırakır. DNS sorgusunun yerel ağdan çıkmasını istemiyorsanız socks5h kullanın. Aynı davranış --socks5-hostname bayrağıyla da elde edilir.

Bash
# DNS çözümü proxy tarafında
curl -x "socks5h://KULLANICI:[email protected]:PORT" https://example.com/ -I

# Aynı etkiyi veren bayrak
curl --socks5-hostname proxy.example.com:PORT -U "KULLANICI:SIFRE" https://example.com/ -I
cURL için proxy şemaları. Ayrıntı için [DNS sızıntısı ve socks5h](/bilgi-merkezi/dns-sizintisi-ve-socks5h).
Şema veya bayrakProtokolHost adı çözümü
http://HTTP proxyProxy tarafında
socks5://SOCKS5İstemci tarafında
socks5h://SOCKS5Proxy tarafında

Verbose çıktıyı okumak

-v bayrağı bağlantı kurulumunun adımlarını gösterir. HTTP proxy ile HTTPS hedefte CONNECT satırını ve proxy’nin yanıtını arayın: HTTP/1.1 200 Connection established tünelin açıldığını, 407 kimlik doğrulama sorununu, 403 ise proxy’nin hedefi veya portu kabul etmediğini gösterir.

Bash
curl -v -x "http://KULLANICI:[email protected]:PORT" https://example.com/ -o /dev/null
Verbose çıktı stderr’e yazılır; gövde atılır. Windows PowerShell’de /dev/null yerine NUL kullanın.

Şifrede @, :, / veya % gibi karakterler varsa URL biçiminde yüzde kodlaması gerekir; örneğin @ için %40. -U ile verirken bu kodlamaya gerek kalmaz, bu yüzden özel karakterli şifrelerde ikinci biçim daha az hataya açıktır. Test sırasında gateway’in yalnızca belirli portları ve protokolleri kabul ettiğini unutmayın: HTTP proxy portuna socks5h:// ile bağlanmak, ya da tersi, anlamsız bir hata ile sonuçlanır.

Süre ve durum ölçümü

-w ile çıktı biçimi tanımlanır. Aşağıdaki komut yalnızca HTTP durum kodunu ve toplam süreyi yazar. Bu süreler tek bir ölçümdür; bir ürünün hız veya gecikme özelliği olarak yorumlanmamalıdır.

Bash
curl -s -o /dev/null \
  --connect-timeout 5 --max-time 20 \
  -x "http://KULLANICI:[email protected]:PORT" \
  -w "durum=%{http_code} baglanti=%{time_connect}s toplam=%{time_total}s\n" \
  https://example.com/
Satır sonundaki \ karakteri bash içindir; Windows cmd için ^ kullanılır.

Ortam değişkenleri ve proxy dışı hedefler

cURL, http_proxy, https_proxy ve all_proxy ortam değişkenlerini okur; NO_PROXY ile belirli hostlar proxy dışında tutulur. Test sırasında eski bir ortam değişkeninin sonucu etkilemesini istemiyorsanız --noproxy "*" ile proxy’yi kapatarak doğrudan bağlantıyla karşılaştırma yapabilirsiniz. Böylece sorunun proxy’den mi yoksa hedeften mi geldiğini ayırırsınız.

Bash
# Doğrudan bağlantı (proxy kapalı)
curl --noproxy "*" -s -o /dev/null -w "durum=%{http_code}\n" https://example.com/

# Proxy ile aynı istek
curl -x "http://KULLANICI:[email protected]:PORT" -s -o /dev/null -w "durum=%{http_code}\n" https://example.com/
İki sonuç aynıysa proxy yolu çalışıyor demektir; farklıysa hedef çıkış IP’ye göre farklı yanıt veriyor olabilir.

IPv4 ve IPv6 ayrımı

İstemcinin hedefe IPv4 mü IPv6 mı kullanacağını -4 ve -6 bayraklarıyla zorlayabilirsiniz. Proxy kullanırken bu bayraklar istemci ile gateway arasındaki bağlantıyı etkiler; hedefe giden çıkış ailesi ürüne bağlıdır. IPv6 çıkışlı bir ürünü sınarken hedefin IPv6 desteklediğinden emin olun.

Yaygın hata nedenleri

Connection refused
Adres veya port yanlış ya da gateway o portu dinlemiyor.
Operation timed out
Gateway’e ulaşılamıyor; güvenlik duvarı veya yanlış adres olabilir. --connect-timeout ile süreyi sınırlayın.
407 Proxy Authentication Required
Kullanıcı adı veya şifre eksik/yanlış. Özel karakterleri yüzde kodlayın.
SOCKS5 reply: authentication failed
SOCKS5 kimlik doğrulaması (RFC 1929) reddedildi.
Proxy CONNECT aborted
Gateway tüneli açmayı reddetti; hedef host veya port izinli olmayabilir.

Bağlantı kuruluyor ama çıkış IP beklediğiniz gibi değilse adresi IP sorgulama aracıyla doğrulayın. Katmanların nasıl ayrıştırılacağı gateway, routing ve çıkış IP yazısında anlatılıyor.

Özet

  • Proxy -x ile verilir; kimlik bilgisi URL içinde ya da -U ile yazılır.
  • DNS çözümünün uzakta yapılması için socks5h:// veya --socks5-hostname kullanın.
  • -v çıktısında CONNECT yanıtı hatanın hangi katmanda olduğunu gösterir.
  • --connect-timeout ve --max-time ile testlerin takılmasını önleyin.
  • Ölçülen süreler tek seferlik gözlemdir; performans taahhüdü olarak okunmamalıdır.

01SIK SORULANLAR

Sık sorulan sorular

02İLGİLİ OKUMALAR

İlgili makaleler

03İLGİLİ ÜRÜNLER

Bu konuyla ilgili ürünler

Sipariş saglamproxy.com üzerinde, Türkçe arayüzde tamamlanır.
  • P-08

    HTTP & SOCKS5 Proxy

    Protokol katmanı: HTTP veya SOCKS5 seçimi sipariş sırasında. ISP Proxy ile aynı sipariş sayfası.

    • HTTP
    • SOCKS5
    • Kullanıcı / şifre
    Satın Al
  • P-06

    Datacenter Proxy

    Veri merkezi IPv4 adresleri. 30 günlük IP paketleri, HTTP, HTTPS ve SOCKS5.

    • IPv4
    • Veri merkezi
    • HTTP / HTTPS / SOCKS5
    Satın Al