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.
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
# 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.orgDö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
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)Node.js ile tek adres
// 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 });
}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?#
| Belirti | Olası neden | Ne 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ı reddedildi | Port kapalı ya da sunucu servisi durmuş | Adres ölmüş olabilir; listeden çıkarın. |
| 407 Proxy Authentication Required | Kimlik 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 beklenmedik | Proxy sayfayı değiştiriyor ya da engel sayfası döndürüyor | Bu proxy’ye güvenmeyin; kullanmayın. |
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.