İçeriğe geç

Uygulama3 dk okuma

Proxy Nasıl Kontrol Edilir?

Bir proxy adresi listede görünüyor diye çalışıyor demek değildir. Kontrol; bağlantının kurulup kurulmadığını, doğru protokolün kullanıldığını, çıkış IP’sinin ne olduğunu ve yanıt süresini sınamak anlamına gelir. Bu rehberde hem hazır aracı hem de kendi betiğinizi yazarak kontrol etmenin yollarını bulacaksınız.

Kategori
Uygulama
Yayın
Güncelleme
Okuma süresi
3 dakika

Kontrol neleri kapsar?#

Tek bir “çalışıyor” cevabının arkasında birkaç ayrı soru vardır. Port açık mı? Sunucu beklediğiniz protokolü konuşuyor mu? İstek hedefe ulaşıyor ve yanıt dönüyor mu? Hedef sizi hangi IP adresiyle görüyor? Yanıt ne kadar sürede geliyor? Bunların her biri farklı bir arızayı gösterir; hepsini birlikte sınadığınızda proxy’nin gerçekten kullanılabilir olup olmadığını anlarsınız.

Proxy kontrol akışıKontrol önce adresin genel olup olmadığına bakar, sonra TCP bağlantısı ve protokol el sıkışması dener, hedefe test isteği gönderir ve yanıtı doğrular. Herhangi bir adım başarısız olursa sonuç Çalışmıyor olur; hepsi geçilirse Çalışıyor olur.özel/yereladres reddi01Adresdenetimizaman aşımıveya ret02TCPbağlantısıHTTP/CONNECTveya SOCKS03Protokolel sıkışmasıhedefeörnek istek04Testisteğibeklenenyanıt mı?05YanıtdoğrulamaÇalışıyortüm adımlargeçildiyseÇalışmıyor — hangi adımda koptuğu kayda geçerBu zincir yalnızca ulaşılabilirliği ölçer; proxy'nin güvenli olduğunu göstermez.ÇALIŞIYOR = TÜM ADIMLAR BAŞARILI
Şekil 1Kontrol akışı: bağlantı, protokol, hedefe ulaşma ve çıkış IP’si sırayla doğrulanır.

En hızlı yol: hazır araç#

Proxy kontrol aracına bir ya da birkaç adres girerek protokolü otomatik algılatabilir, çıkış IP’sini, gecikmeyi ve varsa anonimlik seviyesini görebilirsiniz. Protokolü zaten biliyorsanız HTTP proxy kontrol ve SOCKS5 proxy kontrol sayfaları daha odaklıdır. Yalnızca portun açık olup olmadığına bakmak isterseniz port kontrol yeterlidir.

Komut satırıyla kontrol#

curl ile temel sınama

Bash
# HTTP/HTTPS proxy
curl --proxy http://USERNAME:[email protected]:PORT \
     --max-time 10 --silent --show-error \
     --write-out "\nHTTP durum: %{http_code}  toplam süre: %{time_total}s\n" \
     https://api.ipify.org

# SOCKS5 proxy (alan adı proxy tarafında çözülür)
curl --proxy socks5h://USERNAME:[email protected]:PORT \
     --max-time 10 --silent --show-error https://api.ipify.org
--write-out ile durum kodu ve toplam süre ölçülür. Kimlik doğrulamasız proxy’lerde USERNAME:PASSWORD@ kısmını çıkarın.

Dönen yanıt bir IP adresiyse istek proxy’den geçmiştir. Bu adres kendi IP’nizden farklı olmalıdır; aynıysa trafik proxy’yi atlıyordur ya da proxy şeffaf biçimde doğrudan çıkıyordur.

Python ile birden çok adres

Python
import time
from concurrent.futures import ThreadPoolExecutor

import requests

TEST_URL = "https://api.ipify.org"
CANDIDATES = [
    "http://203.0.113.10:8080",
    "http://198.51.100.24:3128",
    "socks5h://192.0.2.77:1080",  # socks5h için: pip install "requests[socks]"
]

def check(proxy_url: str) -> dict:
    proxies = {"http": proxy_url, "https": proxy_url}
    started = time.perf_counter()
    try:
        r = requests.get(TEST_URL, proxies=proxies, timeout=8)
        r.raise_for_status()
        return {
            "proxy": proxy_url,
            "ok": True,
            "exit_ip": r.text.strip(),
            "ms": round((time.perf_counter() - started) * 1000),
        }
    except requests.RequestException as exc:
        return {"proxy": proxy_url, "ok": False, "error": type(exc).__name__}

with ThreadPoolExecutor(max_workers=10) as pool:
    for result in pool.map(check, CANDIDATES):
        print(result)
Her adres ayrı bir iş parçacığında sınanır; zaman aşımı ve hata türü kaydedilir.

Node.js ile tek adres

JavaScript
// npm install undici
import { ProxyAgent, fetch } from 'undici';

const proxyUrl = 'http://USERNAME:[email protected]:PORT';
const agent = new ProxyAgent(proxyUrl);

const started = performance.now();
try {
  const res = await fetch('https://api.ipify.org', {
    dispatcher: agent,
    signal: AbortSignal.timeout(8000),
  });
  const exitIp = (await res.text()).trim();
  console.log({ ok: res.ok, exitIp, ms: Math.round(performance.now() - started) });
} catch (err) {
  console.log({ ok: false, error: err.name });
}
ES modülü olarak çalıştırın (.mjs uzantısı ya da package.json içinde "type": "module").

Kontrol hedefi seçerken dikkat edilecekler#

Kontrol için kullandığınız adres de sonucu etkiler. Çok yoğun kullanılan bir servis sizi sınırlandırabilir; çok yavaş bir servis ise gecikme ölçümünü bozar. Mümkünse hafif bir IP gösterme servisi seçin, sınama sıklığını makul tutun ve aynı hedefe kısa sürede çok sayıda istek göndermeyin. Kendi altyapınız varsa istekleri yansıtan basit bir uç nokta kurmak, hem başlık analizi hem de çıkış IP’si doğrulaması için en güvenilir seçenektir.

Gecikmeyi ölçerken tek bir değere bakmayın. İlk istek, bağlantı kurulumu ve DNS çözümlemesi nedeniyle genellikle sonrakilerden yavaştır. Birkaç ardışık deneme yapıp ortalamaya ve en kötü değere birlikte bakmak, proxy’nin gerçek davranışı hakkında daha dürüst bir fikir verir.

Sonuçlar ne anlama gelir?#

BelirtiOlası nedenNe yapmalı?
Zaman aşımıSunucu kapalı, port filtreli ya da çok yavaşBaşka bir adres deneyin; zaman aşımını kısa tutun.
Bağlantı reddedildiPort kapalı ya da sunucu servisi durmuşAdres ölmüş olabilir; listeden çıkarın.
407 Proxy Authentication RequiredKimlik bilgisi eksik veya yanlışKullanıcı adı ve parolayı gözden geçirin.
Protokol / SSL hatasıYanlış şema: HTTP proxy’ye socks5 veya tersi yazıldıProtokolü değiştirip yeniden deneyin.
Çıkış IP’si sizinkiyle aynıİstek proxy’yi kullanmamışAyarı ve ortam değişkenlerini kontrol edin.
Yanıt geliyor ama içerik beklenmedikProxy sayfayı değiştiriyor ya da engel sayfası döndürüyorBu proxy’ye güvenmeyin; kullanmayın.
Tablo 1Aynı belirti birden çok nedenle ortaya çıkabilir; ayırt etmek için farklı protokollerle yeniden deneyin.

Anonimlik ve sızıntı kontrolü#

Çıkış IP’sinin değişmesi tek başına yeterli değildir. Proxy üzerinden kendi kontrol ettiğiniz bir sunucuya istek atıp X-Forwarded-For ya da Via gibi başlıkların gelip gelmediğine bakarsanız proxy’nin gerçek IP’nizi sızdırıp sızdırmadığını anlayabilirsiniz. Ayrıntılı yöntem ve seviyeler için proxy anonimlik seviyeleri rehberine bakın. Ayrıca DNS sorgularınızın nereden gittiğini görmek için SOCKS5’te socks5h şemasını tercih edin.

Kontrolde sık yapılan hatalar#

  • Tek bir denemeye güvenmek: Ücretsiz proxy’ler dalgalanır; sonucu bir kez görüp kalıcı saymayın.
  • Zaman aşımını çok uzun tutmak: Yüzlerce adresi sınarken 8–10 saniyelik bir sınır yeterlidir.
  • Protokolü yanlış varsaymak: Aynı IP:port farklı şemalarla denenmeden elenmemeli.
  • Kimlik bilgisi içeren adresleri herkese açık araçlara girmek: Ücretli proxy’nizin kullanıcı adı ve parolasını güvenmediğiniz bir yere yapıştırmayın.

Aday bulma tarafı için çalışan proxy nasıl bulunur rehberine, güvenlik tarafı için ücretsiz proxy riskleri yazısına bakın. Önceden filtrelenmiş adaylar için ücretsiz proxy listesini kullanabilirsiniz.

Sık sorulan sorular

01Proxy’nin çalıştığını nasıl anlarım?
Proxy üzerinden bir IP gösterme servisine istek atın. Yanıt veriyorsa ve dönen IP sizinkinden farklıysa istek proxy’den geçmiştir.
02Hangi protokolü kullandığını bilmiyorum, ne yapmalıyım?
Proxy kontrol aracında otomatik algılamayı kullanın veya aynı adresi sırayla HTTP, SOCKS4 ve SOCKS5 şemalarıyla deneyin.
03Kontrol sonucu neden her denemede değişiyor?
Ücretsiz proxy’ler kararsızdır; yük, ağ yolu ve sunucu durumu sürekli değişir. Birkaç deneme yaparak genel eğilime bakın.
04Kontrol sırasında proxy bilgilerim kaydediliyor mu?
Aracımız girdilerinizi günlüğe yazmaz. Yine de ücretli bir proxy’nizin kullanıcı adı ve parolasını herhangi bir çevrimiçi araca girmemenizi öneririz.
05Gecikme düşükse proxy iyi midir?
Düşük gecikme yalnızca o anki yanıt süresini gösterir. Süreklilik, güvenlik ve içeriğin değişmemesi ayrıca değerlendirilmelidir.

Bilgiyi listede deneyin

Ücretsiz listedeki kayıtları protokole ve ülkeye göre süzebilirsiniz. Bu kayıtların güvenli ya da kalıcı olduğu garanti edilmez; hassas hesaplarınızda kullanmayın.