Hata Giderme

Proxy bağlantı hataları: anlamı, nedeni ve çözümü

Proxy hatalarının çoğu birkaç ana nedene iner: kapalı port, yanlış protokol, kimlik bilgisi, CONNECT kısıtı ve zaman aşımı. Hata mesajından nedene giden bir başvuru tablosu.

Kategori
Hata Giderme
Okuma süresi
8 dk okuma
Yayın:

Proxy bağlantı hataları farklı araçlarda farklı mesajlarla görünür ama arkasındaki neden sınırlıdır. Aynı sorun cURL'de curl: (7), Node.js'te ECONNREFUSED, Python'da ProxyError, tarayıcıda ERR_PROXY_CONNECTION_FAILED olarak karşınıza çıkabilir. Bu rehber mesajı önce nedene, sonra çözüme çevirir.

Önce hatanın hangi aşamada oluştuğunu belirleyin

Bir proxy isteği sırayla şu aşamalardan geçer: proxy adının çözülmesi, proxy'ye TCP bağlantısı, protokol el sıkışması, kimlik doğrulama, hedefe bağlantı, yanıt. Hata mesajının bu sıradaki yeri çözüm yolunu belirler. Yukarıdaki aşamalardan biri bozuksa sonrakilerin denenmesinin anlamı yoktur.

Proxy kontrol akışıKonsept animasyonu: HTTP proxy için örnek bir kontrol akışı döngüde oynar. İstemci, proxy ve test ucu arasında DNS, bağlantı, TLS, protokol, kimlik ve istek aşamaları gösterilir. Ölçüm içermez.Konsept animasyonu
Denetleyici motorunun aşamaları: bağlantı, el sıkışma, kimlik doğrulama, sınama adresi. Hatanın hangi aşamada olduğu çözümü belirler.Konsept animasyonu

Ağ düzeyi hatalar (proxy'ye ulaşılamıyor)

Bağlantı kurulamadığında görülen hatalar
Mesaj / kodAnlamıOlası nedenÇözüm
ECONNREFUSED, curl (7)Bağlantı reddedildiPortta dinleyen yok, port yanlış, hizmet kapalıPortu ve IP'yi sağlayıcıdan doğrulayın
ETIMEDOUT, curl (28)Zaman aşımıPaketler düşüyor, güvenlik duvarı, proxy çevrimdışıBaşka ağdan deneyin; zaman aşımı rehberine bakın
ENOTFOUND, curl (5)Proxy adı çözülemediAlan adında yazım hatası veya DNS sorunuDNS Sorgulama ile adı çözümleyin
EHOSTUNREACH / ENETUNREACHHedefe yol yokYerel yönlendirme, IPv6/IPv4 uyuşmazlığıAğ bağlantınızı ve IP sürümünü kontrol edin
ECONNRESETKarşı taraf bağlantıyı kestiYanlış protokol, proxy kapanıyor, hız sınırıProtokolü değiştirin; bir süre sonra yeniden deneyin

HTTP proxy yanıt kodları

Proxy'nin döndürdüğü yanıtlar
KodAnlamıNedeni ve çözümü
407Proxy kimlik doğrulaması gerekliBilgiler eksik/yanlış ya da IP izin listesinde değilsiniz; kullanıcı adı, parola ve çıkış IP'nizi kontrol edin
403YasakHesap, port veya hedef için kısıt; CONNECT yalnızca 443 olabilir
400Geçersiz istekYanlış biçimlendirilmiş istek satırı veya karşıdaki aslında proxy değil
502Hatalı ağ geçidiProxy hedeften geçersiz yanıt aldı ya da hedefe bağlanamadı; başka hedef deneyin
503Hizmet kullanılamıyorProxy aşırı yüklü ya da geçici olarak kapalı; sonra tekrar deneyin
504Ağ geçidi zaman aşımıProxy hedeften zamanında yanıt alamadı; hedefi ve süreleri inceleyin

Not: cURL, HTTPS için CONNECT isteği reddedildiğinde curl: (56) CONNECT tunnel failed, response 407 gibi bir mesaj verir. Buradaki sayı proxy'nin döndürdüğü koddur; yukarıdaki tabloyla eşleştirebilirsiniz.

SOCKS5 hataları

SOCKS5 kendi yanıt kodlarını taşır. Kod 2 kural kümesinin isteği yasakladığını, 3 ve 4 ağ ya da sunucunun erişilemez olduğunu, 5 hedef portun bağlantıyı reddettiğini, 7 komutun (ör. UDP) desteklenmediğini, 8 adres türünün desteklenmediğini gösterir. Ayrıntılı tablo ve kimlik doğrulama aşaması SOCKS5 kontrol rehberinde anlatılıyor.

TLS ve sertifika hataları

  • curl: (35) ve SSL_ERROR_SYSCALL: TLS el sıkışması yarıda kesildi. HTTPS proxy kullanıyorsanız proxy'nin TLS yapılandırmasını, değilseniz protokolün doğru olup olmadığını kontrol edin.
  • certificate has expired: proxy sertifikası süresi dolmuş. Sağlayıcıya bildirin.
  • hostname mismatch: sertifika, bağlandığınız ada ait değil. IP ile bağlanıyorsanız ve sertifika alan adı içinse, alan adıyla bağlanın.
  • self-signed certificate: sertifika herkese açık bir otorite tarafından imzalanmamış. Güvenmediğiniz bir sertifikayı yok saymak yerine kaynağı doğrulayın.

Tanı sırası: 5 dakikada kök nedeni bulma

  1. 1

    Aynı ayarı cURL ile deneyin

    Uygulamanızın dışında, yalın bir komutla çalıştırın. Çalışıyorsa sorun uygulamadadır; çalışmıyorsa proxy ya da ağdadır.

  2. 2

    Çıkış kodunu ve mesajı yazın

    Yukarıdaki tablolarda eşleşen satırı bulun.

  3. 3

    Başka bir ağdan deneyin

    Denetleyici veya mobil veri gibi bağımsız bir yoldan aynı proxy'yi sınayın; sorunun yerel olup olmadığını ayırırsınız.

  4. 4

    Farklı bir hedef deneyin

    Yalnızca bir sitede hata varsa sorun hedefte olabilir.

  5. 5

    Kimlik bilgisini yenileyin

    Sağlayıcı panelinden yeniden kopyalayın, sondaki boşluklara dikkat edin.

Bash
curl -v -m 20 -x http://proxy.example.com:8080 --proxy-user KULLANICI:PAROLA https://example.com/ -o /dev/null
Tek komutla ayrıntılı tanı: hangi aşamada durduğu çıktıda görünür
Python
import requests

PROXY = "http://KULLANICI:[email protected]:8080"

try:
    r = requests.get("https://example.com/", proxies={"https": PROXY}, timeout=(10, 20))
    print(r.status_code)
except requests.exceptions.ConnectTimeout:
    print("proxy'ye ulasilamadi (zaman asimi)")
except requests.exceptions.ProxyError as e:
    print("proxy hatasi (reddedildi, 407, CONNECT kisiti...):", e)
except requests.exceptions.SSLError as e:
    print("TLS/sertifika hatasi:", e)
except requests.exceptions.ReadTimeout:
    print("yanit gelmedi")
Python'da hata türünü yakalayıp sınıflandırma

Denetleyici hata sınıflandırmasında nasıl yardım eder?

Proxy denetleyicisi hata durumunda sonucu aşamayla birlikte verir: bağlantı reddi, zaman aşımı, protokol uyuşmazlığı, kimlik doğrulama hatası ya da sınama adresine ulaşılamama gibi. Bu sınıflandırma yukarıdaki tablolara denk gelir. Denetleyicinin göremediği iki şey vardır: bir proxy'nin hedef sitenizde neden engellendiği ve yerel ağınızdaki bir güvenlik duvarının etkisi.

Hata mesajının hangi aşamaya ait olduğunu denetleyicide görün.

Proxy Kontrol Et

Bu yazıda kullanılan araçlar

Sık sorulan sorular

İlgili rehberler