Proxy kontrol, elinizdeki IP:port bilgisinin gerçekten bir proxy'ye çıkıp çıkmadığını, hangi protokolü konuştuğunu ve trafiğinizi hangi IP'den dışarı verdiğini doğrulama işidir. "Port açık" demek yeterli değildir: açık bir port başka bir hizmete ait olabilir, kimlik doğrulama reddediyor olabilir ya da proxy yalnızca düz HTTP'ye izin verip HTTPS tüneline kapı kapatmış olabilir.
Aşağıdaki sıra, hatayı en ucuz katmanda yakalamak için tasarlandı. Her adım bir öncekine dayanır; bir adımda takılırsanız sonrakilere geçmenin anlamı yoktur.
Kontrol dört katmanda ilerler
| Katman | Sorulan soru | Başarısızlık belirtisi |
|---|---|---|
| 1. TCP bağlantısı | Proxy'nin IP ve portuna ulaşabiliyor muyum? | Connection refused, zaman aşımı |
| 2. Protokol | Karşıdaki gerçekten HTTP/SOCKS5 proxy mi? | Bağlantı sıfırlanması, anlamsız yanıt |
| 3. Kimlik doğrulama | Kullanıcı adı ve parola kabul ediliyor mu? | HTTP 407, SOCKS5 yöntem reddi |
| 4. Hedefe çıkış | Proxy üzerinden bir siteye gidebiliyor muyum, çıkış IP'si ne? | CONNECT reddi, 502/504, hedefe ulaşılamadı |
1. adım: proxy bilgisini doğru yazın
Bilgi dört parçadan oluşur: sunucu adı veya IP, port, protokol ve (varsa) kullanıcı adı ile parola. Yaygın hata, protokolü yanlış varsaymaktır: HTTP proxy'ye socks5:// ile bağlanmak ya da tersi, çoğu zaman "bağlantı sıfırlandı" ile sonuçlanır. Sağlayıcı size hangi protokolü verdiğini söylemiyorsa üç seçeneği sırayla denemek gerekir; aşağıdaki adımlar bunu kolaylaştırır.
2. adım: cURL ile hızlı kontrol
cURL her sistemde bulunur ve hata kodları net olduğu için ilk tercihtir. -x proxy adresini, --proxy-user kimlik bilgisini verir. -w ile süreleri yazdırırsanız aynı komut hem doğrulama hem ölçüm olur.
curl -sS -o /dev/null -m 20 -x http://proxy.example.com:8080 --proxy-user KULLANICI:PAROLA -w 'kod=%{http_code} baglanti=%{time_connect} ilk_bayt=%{time_starttransfer} toplam=%{time_total}\n' https://example.com/curl -sS -o /dev/null -m 20 --socks5-hostname proxy.example.com:1080 --proxy-user KULLANICI:PAROLA -w 'kod=%{http_code} toplam=%{time_total}\n' https://example.com/time_connect değeri, proxy kullanıldığında proxy'ye TCP bağlantısı kurma süresidir; hedef siteye giden yolu göstermez. kod=200 ve makul bir toplam süre görüyorsanız dört katmanın hepsi geçilmiş demektir.
cURL çıkış kodları ne söyler?
| Çıkış kodu | Anlamı | İlk bakılacak yer |
|---|---|---|
| 5 | Proxy sunucusunun adı çözülemedi | Sunucu adındaki yazım, DNS |
| 7 | Proxy'ye bağlanılamadı | IP, port, güvenlik duvarı |
| 28 | Zaman aşımı | Süre limitleri, proxy'nin yanıt vermemesi |
| 35 | TLS el sıkışması başarısız | HTTPS proxy kullanıyorsanız proxy sertifikası |
| 56 | Veri alımı başarısız (ör. CONNECT tüneli reddedildi) | Hata metnindeki yanıt kodu: 407, 403, 502 |
| 97 | Proxy el sıkışması (SOCKS) başarısız | Protokol ve kimlik bilgisi |
3. adım: çıkış IP'sini doğrulayın
200 yanıtı proxy'nin trafiği ilettiğini gösterir ama hangi IP'den çıktığınızı göstermez. Çıkış IP'sini görmek için, IP'nizi yansıtan bir adrese proxy üzerinden istek atın ve sonucu proxy olmadan aldığınız IP ile karşılaştırın. Tarayıcıda yapacaksanız proxy'yi ayarlayıp IP Adresim aracını açmanız yeterlidir.
import time
import requests
PROXY = "http://KULLANICI:[email protected]:8080"
# SOCKS5 icin: "socks5h://KULLANICI:[email protected]:1080"
proxies = {"http": PROXY, "https": PROXY}
baslangic = time.perf_counter()
try:
r = requests.get("https://example.com/", proxies=proxies, timeout=(10, 20))
sure = time.perf_counter() - baslangic
print("durum:", r.status_code, "sure: %.2f sn" % sure)
except requests.exceptions.ProxyError as e:
print("proxy hatasi:", e)
except requests.exceptions.ConnectTimeout:
print("proxy'ye baglanti zaman asimina ugradi")
except requests.exceptions.ReadTimeout:
print("yanit zaman asimina ugradi")4. adım: denetleyiciyle doğrulayın
proxysorgula.tr denetleyicisi aynı dört katmanı sunucu tarafında sizin için çalıştırır: proxy'ye bağlanma süresini, protokol el sıkışmasını ve kimlik doğrulamayı ölçer, ardından önceden belirlenmiş bir sınama adresine proxy üzerinden gidip ilk baytın ne zaman geldiğini kaydeder. Protokolü bilmiyorsanız HTTP, HTTPS, SOCKS4 ve SOCKS5 sayfalarından ilgilisini seçin.
Denetleyici neyi ölçer, neyi ölçmez?
- Ölçer: proxy'ye bağlantı süresi, protokol el sıkışması, kimlik doğrulama sonucu, sınama adresinden gelen ilk baytın süresi.
- Ölçmez: indirme/yükleme bant genişliği. Bu bir hız testi değildir; ayrıntı için proxy hız testi rehberi sayfasına bakın.
- Söylemez: bir hedef sitenin bu IP'yi engelleyip engellemeyeceği. Denetleyici yalnızca kendi sınama adresine gider.
- Yapamaz: özel ağ,
localhostya da iç ağ adreslerindeki proxy'leri sınamak. Güvenlik gereği yalnızca herkese açık adreslere bağlanır; iç ağdaki proxy'yi cURL ile kendi makinenizden deneyin.
Çıkış IP'sinin anonimlik düzeyi (saydam, anonim, elite) ancak istek bizim düz HTTP yansıtma adresimize ulaştığında sınıflandırılır; başka durumlarda sonuç raporlanmaz, tahmin yürütülmez.
Sonucu yorumlama: tek başarılı kontrol neyi kanıtlar?
Başarılı bir kontrol, o anda ve o sınama adresi için proxy'nin çalıştığını gösterir. Yarın da çalışacağını, hedef sitenizde engellenmeyeceğini ya da yük altında aynı hızı vereceğini göstermez. Sürekli kullanacağınız bir proxy için kontrolü farklı saatlerde birkaç kez yinelemek, tek bir "yeşil" sonuçtan çok daha değerlidir.
- 1
Bilgiyi netleştirin
Sunucu, port, protokol ve kimlik bilgisini sağlayıcı panelinden kopyalayın.
- 2
cURL ile deneyin
Yukarıdaki komutu protokolünüze göre çalıştırın; çıkış kodunu tabloyla eşleştirin.
- 3
Çıkış IP'sini karşılaştırın
Proxy ile ve proxy olmadan aldığınız IP'nin farklı olduğunu görün.
- 4
Denetleyiciyle çapraz doğrulayın
Sonucu farklı bir ağdan alınmış ölçümle karşılaştırın; yerel güvenlik duvarı kaynaklı sorunları böyle ayırırsınız.
- 5
Tekrarlayın
Farklı saatlerde birkaç kez kontrol edin; dalgalanma varsa zaman aşımı ayarlarını gözden geçirin.
Proxy'nizi şimdi sınayın: bağlantı, protokol ve ilk bayt süresi tek ekranda.
Proxy Kontrol Et