Giriş

Bu adım adım rehberde bir proxy zinciri kuracak ve çalıştıracak, yapılandırmasını yönetmeyi, stabiliteyi kontrol etmeyi, hız ölçmeyi, hataları bulmayı ve gidermeyi öğreneceksiniz. Linux, macOS ve WSL üzerinde proxychains-ng’nin kurulumu ve yapılandırılması detaylarıyla ele alınacak, ayrıca Windows için grafik arayüze sahip bir alternatif de sunulacaktır. Süreç boyunca, tekrarlanabilir sonuçlar veren net, kontrol edilebilir bir eylem planı elde edeceksiniz.

Bu materyal, uygulamaların dış bağlantılarını yönetmek konusunda önemli olan ileri düzey kullanıcılar, mühendisler ve test uzmanları için hazırlanmıştır: kurumsal sistemlerin hata ayıklanması, dağınık hizmetlerin test edilmesi, çeşitli ağ koşullarının simülasyonu, uygulamaların çoklu proxy üzerinden yönlendirilmesi sırasında davranışlarının analizi gibi konularda. Yasalara aykırı senaryoları ele almıyoruz ve bunları teşvik etmiyoruz.

Terminal ile rahat çalıştığınız, ağ bağlantıları ve TCP/IP hakkında temel bilgileri anladığınız, programları kurabiliyor ve yapılandırma dosyalarını düzenleyebiliyor olmanız beklenmektedir. Tüm adımlar o kadar detaylı yazılmıştır ki, onları belirsizlik yaşamadan tekrar edebileceksiniz.

Ne kadar zaman gerekeceği: zincir hazırlamak ve toplamak 40-60 dakika sürer; tam bir kontrol, ölçüm ve hata ayıklama için ise karmaşıklığına ve proxy sayısına bağlı olarak 20-60 dakika daha gerekecektir. Ortalama olarak güvenilir bir sonuç için 1,5-2 saat ayırın.

Ön Hazırlık

Başlamadan önce, gerekli kaynaklara ve erişimlere sahip olduğunuzdan emin olun ve hedeflerinizi belirleyin. Bu, gereksiz denemelerden kaçınmanıza ve tüm ölçümleri doğru bir şekilde yorumlamanıza yardımcı olacaktır.

Gerekli Araçlar, Programlar, Erişimler

  • İşletim Sistemi: Linux (Debian/Ubuntu, CentOS/AlmaLinux vb.), macOS veya Windows 10/11 (WSL ile proxychains-ng kullanmak için tercih edilir), veya GUI ile alternatif bir Windows (örneğin, Proxifier veya ProxyCap).
  • Paketlerin kurulumu ve sistem yapılandırma dosyalarının düzenlenmesi için yönetici izinleri (Linux/macOS/WSL üzerinde).
  • Geçerli proxy sunucuları: HTTP(S) ve/veya SOCKS5, erişilebilir IP’ler, portlar ve gerektiğinde kullanıcı adı/parola. Güvenilirlik için, güvenilir sağlayıcılar kullanın. Örneğin, stabil mobil adresler ve kolay döngüleme için mobileproxy.space hizmetini değerlendirin.
  • Komut satırı araçları: curl, ping, traceroute veya mtr, time, dig/nslookup. Windows üzerinde eşdeğerleri ya da WSL sürümünü kullanın.

Sistem Gereksinimleri

  • Boş alan: paketleri indirmek ve kurmak için 100-300 MB.
  • Ağınız tarafından kullanılan proxy portları üzerinde erişim kısıtlaması olmayan, istikrarlı bir internet bağlantısı.
  • Proxychains-ng için yapılandırma dosyalarına erişim (genellikle /etc/proxychains.conf veya /etc/proxychains4.conf) — okuma/yazma izinleri olmalı.

İndirilmesi, Kurulması ve Yapılandırılması Gerekenler

  • Linux/WSL: proxychains-ng paketi (genellikle proxychains4 olarak adlandırılır). Paket yöneticisi aracılığıyla kurun.
  • macOS: Homebrew aracılığıyla proxychains-ng yükleyin.
  • Windows (WSL olmadan): GUI aracılığıyla zincir oluşturmak için Proxifier veya ProxyCap yükleyin. Terminali tercih ediyorsanız, WSL kurun ve Linux yaklaşımını kullanın.

Yedekleme Oluşturma

Makinede zaten proxychains-ng yüklüyse, yapılandırma için bir yedek oluşturun:

  • /etc/proxychains.conf (veya /etc/proxychains4.conf) dosyasını bir tarih ile bir dosyaya kopyalayın, örneğin /etc/proxychains.conf.bak-YYYYMMDD.
  • Mevcut ayarları kaydedin: proxy listesini, zincir ve zaman aşımı ayarlarını saklayın.

⚠️ Dikkat: Yeteneklerinize güveniyorsanız bile, yedekleme, çalışır yapılandırmaya hızlı bir şekilde dönmenizi sağlar. Bu, belirgin olmayan hatalarda zaman tasarrufu sağlar.

✅ Kontrol: Proxy listesine, yazılım yükleme erişiminize ve yapılandırma yedeğine (varsa) sahip olduğunuzu kontrol edin. Zinciri ne için kurduğunuzu net bir şekilde anlamalı ve tüm proxy kullanıcı adı/parola bilgilerinizi elinizin altında bulundurmalısınız.

Temel Kavramlar

Açık Dille Anahtar Terimler

  • Proxy Sunucu — uygulamanın dış bağlantı kurduğu ara sunucu. HTTP(S) veya SOCKS5 olabilir. SOCKS5 genellikle TCP seviyesinde çeşitli protokoller için daha evrenseldir.
  • Proxy Zinciri — bağlantıların geçtiği birden fazla proxy sunucusunun dizilimi: uygulama → proxy 1 → proxy 2 → … → hedef kaynak. Bu, yönlendirme ve bağlantı koşullarını esnek bir şekilde yönetmeyi sağlar.
  • Proxychains — ağ çağrılarını tek veya birden fazla proxy üzerinden, belirtilen yapılandırmaya göre yönlendiren bir araçtır. Genellikle proxychains-ng kullanılır (güncel sürüm).
  • Zincir Modları — zincirde proxy seçim ve kullanım yöntemleri: sıkı sıra, dinamik (çalışmayan düğümleri atlama), rastgele sıralama vb.
  • Zaman Aşımı — bağlantı kurma ve veri okuma için zaman kısıtlamaları. Çok kısa olanlar sık sık kopmalara; çok uzun olanlar ise uzun süreli 'takılı kalma' girişimlerine neden olur.

Temel Çalışma İlkeleri

Proxychains, sistem çağrılarını algılar ve uygulama trafiğini belirlenen proxyler üzerinden yönlendirir. Yapılandırma, kaç düğüm kullanılacağını, hangi sırada, hatalarda nasıl davranılacağını, DNS sorgularının nereye gönderileceğini (yerel veya proxy üzerinden) belirler. Zincir ve modları, bağlantının dayanıklılığı ve özelliklerini belirler.

Proxy Zincirlerinin Ne Zaman Gerektiği ve Gerekmeyebileceği

  • Dağıtık uygulamaları test ediyorsanız, farklı ağ yollarında istemci yazılımının davranışını kontrol ediyorsanız, ağ gecikmesini ve jitter’ı simüle ediyorsanız ya da güvenilir düğümler aracılığıyla dış bağlantıları merkezileştiriyorsanız gereklidir.
  • Firma onaylı internet çıkış noktalarından bağlantıları düzenleme, erişimi kuralara göre sınırlama, dış oturumları günlüğe geçirme veya kontrollü yönlendirme ile yük testleri yapmak istiyorsanız gereklidir.
  • Genellikle, gerekli değildir, eğer bir güvenilir kurumsal proxy'niz varsa yeterli arıza toleransına sahip ve zincirin ek bir fayda sağlamayacağı durumlarda; düğümlerin eklenmesi gecikmeyi artırır, teşhis etmeyi zorlaştırır ve belirgin bir kazanç olmadan stabiliteyi azaltır.

İpucu: Öncelikle, sizin için önemli olanın ne olduğunu belirleyin — dayanıklılık mı yoksa hız mı. Bu, zincir modları ve zaman aşımı seçimlerinizi etkileyecektir. 'Adım 6: Hızı ve Stabiliteyi Optimize Ediyoruz' bölümünde, dengeyi sağlama konusunda detaylı bilgi bulacaksınız.

Adım 1: Görevleri ve Gereksinimleri Belirleme

Aşamanın Amacı: Zincirin neden gerekli olduğunu, kullanılacak proxy türlerini, önemli parametreleri (hız, stabilite, arıza kontrolü, DNS yönlendirme) belirlemek.

Detaylı Talimat

  1. Görevi bir cümle ile tanımlayın. Örnek: 'Test istemcisini çalıştırmalıyım, böylece tüm TCP bağlantıları üç düğüm üzerinden gitsin: veri merkezinde SOCKS5, sonra ofiste HTTP proxy, ardından mobil proxy' demelisiniz.
  2. Proxy türlerini seçin. Evrensel TCP bağlantıları için, en az birinci düğümde SOCKS5 kullanın. HTTP(S), HTTP trafiği ve curl gibi bazı araçlar için uygundur.
  3. Zincir modunu belirleyin. Eğer önemli olan 'bir şekilde çalışması' ise, çalışmayan düğümleri atlayan dinamik modu kullanın. Eğer sabit bir güzergah gerekiyorsa, sıkı sıra kullanın.
  4. DNS’i nasıl işleyeceğinizi belirleyin. DNS isteklerinin proxy üzerinden (uzak DNS) gönderilmesi önerilir; böylece zincirdeki son noktanın davranışıyla uyumlu olur.
  5. Her proxy için giriş bilgilerini toplayın: IP adresi veya alan adı, port, protokol (http, https, socks5), kullanıcı adı/parola, izin verilen bağlantı sınırları, sağlayıcının politikası.
  6. İstenilen zaman aşamalarını not edin. tcp_connect_time_out = 8000-10000 ms ve tcp_read_time_out = 15000-20000 ms ile başlayın. Daha sonra optimizasyon yapın.

Önemli Noktalar: Erişilebilirlik gereksinimlerini hız gereksinimlerinden net bir şekilde ayırın. Çok fazla düğüm eklediğinizde gecikme artacaktır. Her bağlantı, olası bir arıza noktasıdır.

⚠️ Dikkat: Yalnızca yasal sağlayıcılar tarafından sağlanan ve sizin görevleriniz için uygun olan proxyleri kullanın. Kuruluşunuzun güvenlik politikalarına uyun. Zincirleri, yasaları veya hizmet koşullarını ihlal eden eylemler için kullanmayın.

İpucu: Giriş adresleri üzerinde esnek bir kontrol gerekiyorsa, sağlayıcıda IP döngüleme imkanı sunan mobil proxyleri değerlendirin. Bu, ağ ortamına bağımlı uygulamaların test edilmesi için uygundur. Mobilproxy.space gibi hizmetlerin sunudğu alternatifleri inceleyin.

Beklenen Sonuç: Proxy listesi, zincir modu, DNS ve zaman aşımı ayarları, hedefler ve başarı kriterleriyle birlikte bir dokümana sahip olacaksınız.

Olası Problemler ve Çözümler: Eğer proxy türlerinden emin değilseniz; bir SOCKS5 ve bir HTTP ile başlayın. Sağlayıcı alan adları verirse, kurulumdan önce dig/nslookup ile çözümlemelerini kontrol edin.

✅ Kontrol: Proxy listesinin tam olduğundan emin olun: her biri için adres/port, protokol, kimlik bilgileri (gerekirse) doğrulayın. Zincir modunu ve zaman aşımı ayarlarını belirlediğinizi kontrol edin.

Adım 2: Proxy Seçimi ve Hazırlığı

Aşamanın Amacı: Zincir için doğrulanmış, çalışır düğümler elde etmek, temel erişilebilirliği ve hızı test etmek, doğru kimlik bilgilerini kontrol etmek.

Detaylı Talimat

  1. Her proxy’nin IP/alan adı ve port üzerinden erişilebilirliğini kontrol edin. Linux/macOS/WSL'de telnet IP PORT veya nc -vz IP PORT komutunu kullanın. Windows’ta PowerShell’de Test-NetConnection IP -Port PORT komutunu kullanarak kontrol edebilirsiniz.
  2. Kimlik doğrulamasını kontrol edin. HTTP proxy için curl --proxy http://user:pass@IP:PORT http://example.org komutunu çalıştırın. SOCKS5 için curl --socks5 user:pass@IP:PORT http://example.org komutunu kullanın. Parametreleri kendi bilgilerinize göre değiştirin. Beklenen sayfanın veya 200-302 kodunun döndüğünden emin olun.
  3. Yaklaşık gecikmeyi ölçün. curl -w "%{time_connect} %{time_starttransfer} %{time_total}\n" -o /dev/null -s --proxy ... http://example.org komutunu çalıştırın. Bu, belirli bir düğüm üzerinden bağlantı için başlangıç metriklerini verecektir.
  4. Sonuçları bir tabloda kaydedin: düğüm, protokol, port, kimlik doğrulaması, ortalama gecikme, yorumlar. Açıkça istikrarsız düğümleri hariç tutun.
  5. Mobil proxyler kullanarak operatör ağlarını simüle ediyorsanız, sağlayıcının tarafında döngülemeyi test edin. Örneğin, mobileproxy.space gibi sağlayıcılarda genelde IP değişim sürelerini ayarlamak mümkün olur ve kişisel erişimler verilmekte.

Önemli Noktalar: Zincir oluşturmadan önce her düğümü ayrı ayrı test edin. Bu, problemleri daha kolay yerelleştirmenizi ve her proxy’nin gecikmeye katkısını anlayabilmenizi sağlar.

İpucu: Her proxy türü için en az bir yedek düğüm bulundurmak, arıza durumunda hızlıca geçiş yapabilmenize olanak tanır, böylece zincirin tamamen yeniden kurulmasına gerek kalmayacaktır.

Beklenen Sonuç: Her biri için doğru bağlantılar geçerli olan iki veya üç test edilmiş düğüm (gerekirse daha fazla) elde edeceksiniz ve onların temel gecikmelerini anlıyorsunuz.

Olası Problemler ve Çözümler: Eğer bağlantı kurulmazsa — yerel firewall’un proxy portunu engelleyip engellemediğini kontrol edin. Sağlayıcınıza sorun, kaynak IP adresi için bağlantı kısıtlaması olup olmadığını ve çıkış IP'nizin beyaz listeye eklenip eklenmediğini öğrenin (gerekirse).

✅ Kontrol: curl komutunu kullanarak her proxy üzerinden sayfayı başarıyla aldığınızdan ve gecikmelerin görevleriniz için makul sınırlar içinde olduğundan emin olun.

Adım 3: Proxychains-ng’yi Kurma ve Yapılandırma

Aşamanın Amacı: proxychains-ng’yi yüklemek, temel bir yapılandırma hazırlamak, gereken zincir modunu ve uzak DNS’i etkinleştirmek.

Linux ve WSL

  1. Depoları güncelleyin: sudo apt update (Debian/Ubuntu) veya sudo dnf makecache (RHEL/AlmaLinux) veya sudo zypper refresh (SUSE) komutunu çalıştırın.
  2. proxychains-ng paketini kurun: Debian/Ubuntu için sudo apt install -y proxychains4; RHEL/AlmaLinux için sudo dnf install -y proxychains-ng; Arch için sudo pacman -S proxychains-ng.
  3. Yapılandırma dosyasının yolunu bulun: genellikle /etc/proxychains.conf veya /etc/proxychains4.conf’tır. Kesin dosyayı görmek için ls /etc/proxychains* komutunu çalıştırın.
  4. Yedek oluşturun: sudo cp /etc/proxychains.conf /etc/proxychains.conf.bak-YYYYMMDD (dosya adı farklıysa yolu değiştirmeyi unutmayın).
  5. Yapılandırmayı bir editörde açın: sudo nano /etc/proxychains.conf (veya sudo nano /etc/proxychains4.conf).
  6. Zincir modunu seçin: bir direktifi yorumdan çıkarın: dynamic_chain (öncelikle önerilir), strict_chain (sıralı) veya random_chain (rastgele seçim). Başlangıçta dynamic_chain kullanın.
  7. Uzak DNS’i etkinleştirin: proxy_dns satırının mevcut olduğundan ve yorumlanmadığından emin olun. Bu, DNS’in zincir üzerinden yönlendirilmesini sağlar.
  8. Zaman aşımlarını ayarlayın: tcp_connect_time_out 10000 ve tcp_read_time_out 20000 satırlarını ekleyin veya düzenleyin (değerler milisaniye cinsindendir, kendi ağınıza göre ayarlayın).
  9. [ProxyList] bölümüne önceden belirlediğiniz sırada proxy’lerinizi ekleyin. Örnek formatlar: http IP PORT; http IP PORT USER PASS; socks5 IP PORT; socks5 IP PORT USER PASS.
  10. Dosyayı kaydedin ve editörden çıkın. Nano’dayken Ctrl+O, Enter, ardından Ctrl+X tuşlarına basın.

macOS

  1. Eğer kurulu değilse Homebrew’u yükleyin.
  2. brew install proxychains-ng komutunu çalıştırın.
  3. Yapılandırmayı genellikle /usr/local/etc/proxychains.conf veya /opt/homebrew/etc/proxychains.conf adresinden açın, mimariye bağlı olarak. Kesin yolu kontrol etmek için brew info proxychains-ng komutunu kullanın.
  4. Linux bölümündeki adım tekrar edin; mod seçimi, proxy_dns etkinleştirmesi, zaman aşımlarını belirleme ve [ProxyList] kısmını doldurma işlemlerini yapın.

Windows: iki seçenek

Seçenek A: WSL + proxychains-ng

  1. WSL’i ve Microsoft Store’dan Ubuntu dağıtımını yükleyin.
  2. WSL terminalini açın, Linux bölümündeki gibi proxychains-ng’yi kurun.
  3. Gerekli konsol araçlarını proxychains ile WSL’de çalıştırın. Windows uygulamalarını proxy üzerinden yönlendirmek gerekiyorsa, Seçenek B’yi değerlendirmeniz gerekebilir.

Seçenek B: Proxifier (veya ProxyCap)

  1. Proxifier’ı yükleyin.
  2. Profile → Proxy Servers → Add menüsünü açın.
  3. Her proxy’yi ekleyin: adres, port, protokol (SOCKS5/HTTPS), gereksinim duyulursa kullanıcı adı/parola belirtin. Bağlantıyı kontrol etmek için Check’e tıklayın.
  4. Zincir oluşturun: Profile → Proxy Chains → Add → sıralı proxy’leri seçin → OK.
  5. Kural ayarlarını yapın: Profile → Proxification Rules → Add → kural adını belirleyin, uygulamayı (veya 'Herhangi') seçin, ardından Action altında kullanılan zinciri belirtin.
  6. Profili kaydedin.

Önemli Noktalar: Proxychains-ng’de [ProxyList] bölümü, proxy üzerinden çözümleme yapılırken ele alınır, eğer uzak DNS etkinleştirilmişse. Mümkünse IP kullanarak, giriş sırasında gereksiz belirsizlikleri ortadan kaldırın.

İpucu: İki düğüm ile başlayın: SOCKS5 → HTTP. Böylece çalışır bir yapı görecek, gerekirse üçüncü düğümü daha sonra ekleyebilirsiniz.

Beklenen Sonuç: Proxychains kurulu, temel yapılandırma doldurulmuş durumda, zincir modu, proxy_dns ve zaman aşım süreleri ayarlanmış olmalıdır. Proxifier’da zincir ve bir kural oluşturulmuş olmalıdır.

Olası Problemler ve Çözümler: Eğer proxychains komutu bulunamıyorsa — paketin yüklü olduğundan emin olun ve ikili adı kontrol edin (bazı sistemlerde bu proxychains4’tür). macOS’ta yapılandırma yolunu brew info ile kontrol edin. Proxifier’da Check hataları varsa, kullanıcı adı/parola ve protokolü gözden geçirin.

✅ Kontrol: proxychains ile, bilinen bir erişilebilir siteye curl komutunu çalıştırın ve gelen yanıtın başarılı olduğunu kontrol edin. Proxifier’da, kural altında uygulamayı çalıştırın ve gerçek zamanlı log üzerinde bağlantıyı kontrol edin — tüm belirlenen düğümler üzerinden geçiş yapıldığını görmelisiniz.

Adım 4: Zinciri Oluşturma ve Kontrol Etme

Aşamanın Amacı: Düğümlerin sırasını doğru bir şekilde düzenlemek, her birinden geçişin onayını almak ve temel hız ve stabilite metriklerini elde etmek.

Detaylı Talimat

  1. Linux/macOS/WSL’de [ProxyList] yapılandırmasında sıralamayı ayarlayın. Örnek: önce socks5 203.0.113.10 1080 user pass, ardından http 198.51.100.20 3128 user pass, daha sonra socks5 192.0.2.30 1080 user pass. Dosyayı kaydedin.
  2. Eğer proxychains-ng’yi dinamik zincir modu ile kullanıyorsanız, onu bırakın; böylece herhangi bir düğümün erişim dışı olması durumunda trafik kalan düğümler üzerinden gidecektir. Sıkı kontrol istiyorsanız strict_chain’ı seçin ve tüm düğümlerin çalıştığını doğrulayın.
  3. Test komutu: proxychains curl -I http://example.org. Eğer sisteminizde ikili ad proxychains4 ise, değiştirin. HTTP yanıt başlıklarını bekleyin. Başarıyla geçtikten sonra, HTTPS kaynaklarına geçin: proxychains curl -I https://example.org.
  4. Çıkış IP’sini kontrol edin. proxychains curl -s https://ifconfig.me (veya diğer bir hizmet) komutunu çalıştırarak sonucu kaydedin. Ardından, düğüm sırasını geçici olarak değiştirin ve yanıtın değiştiğinden emin olmak için tekrarlayın.
  5. Temel metrikleri alın: proxychains time curl -o /dev/null -s -w "%{time_connect} %{time_starttransfer} %{time_total}\n" https://example.org. Bunu 3-5 kez tekrarlayın ve ortalamalarını alın.
  6. Windows’ta Proxifier ile curl komutunu CMD/PowerShell üzerinde çalıştırın ve Proxifier log’unda, trafiğin zincir üzerinden geçtiğini teyit edin. Veya belirli bir uygulamayı kural altında bağlayarak log’daki bağlantıları kontrol edin.

Önemli Noktalar: Doğru değerlendirme yapabilmek için yalnızca bir parametreyi bir seferde değiştirin: düğüm sırası veya zaman aşımı. Böylece dar boğazları daha hızlı tespit edebilirsiniz. Sonuçları bir tabloda kaydedin.

İpucu: Eğer mobil proxyyi son düğüm olarak ekliyorsanız, gecikmelerin veri merkezi düğümlerine göre daha yüksek olabileceğini dikkate alın. Bu durum normaldir ve operatör ağlarındaki gerçek koşulları yansıtır.

⚠️ Dikkat: Gereksiz yere zinciri karmaşık hale getirmeyin. Her ek düğüm, kopma olasılığını ve bağlantı kurma süresini artırır. 'Adım 1'deki hedeflerinize odaklanın.

Beklenen Sonuç: Zincir, trafiği başarıyla yönlendiriyor, çıkış IP’si beklenenle örtüşüyor ve temel gecikmeler kaydediliyor. Proxifier’da tüm düğümlerden geçişi görebilirsiniz.

Olası Problemler ve Çözümler: Eğer HTTPS bağlantıları koparsa, proxy’nin TLS tünellemesine uyumunu kontrol edin. HTTP proxy’nin CONNECT desteği olduğundan emin olun. DNS ile ilgili problemler varsa, yerel çözümlemeyi devre dışı bırakın ve proxy_dns’i etkinleştirin.

✅ Kontrol: Zincir üzerinden 3-5 isteği peş peşe gerçekleştirin ve yanıtın stabilliğinden ve zaman ölçümlerinin tekrarlanabilirliğinden emin olun. Çıkış IP’si, son düğümün veya belirli bir yapılandırmada beklediğiniz IP ile örtüşmelidir.

Adım 5: Zinciri Uygulama ve Araçlarla Entegre Etme

Aşamanın Amacı: Gerçek uygulamalar ve araçlar üzerinden zinciri başlatma, esnek yönlendirme için kurallar belirleme, DNS ve protokollerin doğru çalıştığını kontrol etme.

Detaylı Talimat

  1. Curl ve wget ile entegrasyon. curl komutunu proxychains ile çalıştırın: proxychains curl https://example.org. wget için: proxychains wget https://example.org/file.zip. İndirmenin başarılı olduğundan emin olun.
  2. Programlama araçları ile entegrasyon. Python için örnek: proxychains python -m pip install paket. Paketin yüklenmesini kontrol edin.
  3. Git ile entegrasyon. proxychains git clone https://adres/rep.git komutunu çalıştırın ve klonlama işleminin başarılı olduğunu doğrulayın.
  4. Tarayıcılar. Linux/macOS’te proxychains ile tarayıcı açabilirsiniz, ancak ağ aktivitesinin hacminin büyük olduğunu unutmayın. Öncelikle hafif uygulamalarla başlayın, sonra tarayıcıya geçin. Windows’ta Proxifier kuralı kullanarak tarayıcı yürütülebilir dosyasını yönlendirin.
  5. Docker/konteynerler. İstemci uygulamalarınızı konteynerlerde test ediyorsanız, proxychains’in erişilebilir olduğu bir ortamda başlatın veya HTTP_PROXY/HTTPS_PROXY/SOCKS5 değişkenlerini ayarlayın (eğer uygulama bunları destekliyorsa). Değişkenler alternatif bir yol sunar, ancak her zaman proxychains ile eşdeğer değildir.
  6. Proxifier’da esnek kurallar. Farklı uygulamalar için ayrı kurallar oluşturun: örneğin, test istemciniz için üç düğümlü bir zincir; güncelleme araçları için sadece bir güvenilir kurumsal proxy.

Önemli Noktalar: Tüm uygulamalar, çoklu düğümlü zincir üzerinden HTTP proxy ile aynı şekilde çalışmayabilir. Zor durumlarda, giriş düğümlerinde SOCKS5 kulanmayı tercih edin.

İpucu: Eğer uygulama kendi proxy ayarlarını destekliyorsa, iki yaklaşımın sonuçlarını karşılaştırın: yerleşik ayarlar ile proxychains üzerinden zorla çalıştırmayı karşılaştırın. Daha öngörülebilir ve az hata veren seçeneği tercih edin.

Beklenen Sonuç: Temel uygulamalar zincir üzerinden çalıştırılmakta, hatasız ağ eylemleri gerçekleşmekte ve log pencereleri belirlenen düğümler üzerinden yönlendirmeyi doğrulamaktadır.

Olası Problemler ve Çözümler: Eğer uygulama sistem çağrılarını görmezden geliyorsa ve proxychains etkili olmuyorsa — standart dışı ağ yığınları kullanıp kullanmadığını kontrol edin. Bu durumda Proxifier kurallarına güvenin (Windows) veya uygulama için proxyyi zorla kullanma seçeneklerini araştırın.

✅ Kontrol: Uygulamada hedef bir senaryoyu gerçekleştirin (örneğin, veri indirme) ve zincir boyunca bağlantıların geçtiğini ve çıkış IP’sinin bekleneni doğruladığını kaydedin.

Adım 6: Hızı ve Stabiliteyi Optimize Etme

Aşamanın Amacı: Gecikme ve güvenilirlik arasında bir denge kurarak, zaman aşım sürelerini ve modları ayarlamak, kopma ve yeniden deneme sayılarını en aza indirmek.

Detaylı Talimat

  1. Örnek metrikler toplayın. Her mod için (dynamic_chain, strict_chain, random_chain) 10 benzer isteği gerçekleştirin ve time_connect, time_starttransfer, time_total hakkında ortalama ve varyasyonu kaydedin.
  2. Zaman aşım sürelerini ayarlayın. Eğer sık sık bağlantıda uzun gecikmeler gözlemliyorsanız — tcp_connect_time_out değerini 2000-5000 ms kadar artırın. Eğer okumada sık sık 'takılma' başınıza geliyorsa — tcp_read_time_out’u 2000-5000 ms artırın. Her değişiklikten sonra ölçüm serisini tekrarlayın.
  3. Her düğümün katkısını değerlendirin. Geçici olarak trafiği bir düğüm üzerinden yönlendirin, ardından ikinciyi ekleyin ve gecikme artışını ölçün. Bu, dar boğazları gösterir.
  4. Düğümlerin farklı rollerini değerlendirin. En hızlı ve en stabil proxy’yi birinci sıraya koyun, böylece bağlantı daha hızlı kurulur. Ek mantık (mobil gibi) taşıyan düğümü, eğer nihai güzergah önemliyse en sona bırakın.
  5. random_chain modunda sıralamayı deneyin. Eğer rastgele sıralama kullanıyorsanız, birçok deneme için istatistikleri kontrol edin. Kritik senaryolarınıza de tamamıyla yavaş bir kombinasyon olmadığını kontrol edin.
  6. Proxifier’da alternatif zincirler ve kuralları test edin. Farklı uygulamalar için farklı zincirler tanımlayıp stabiliteyi karşılaştırın.

Önemli Noktalar: Her optimizasyon, metriklere dayanarak yapılmalıdır. Bir seferde çok fazla parametre değiştirmeyin. Değişiklikler ve sonuçlar için bir günlük tutun.

İpucu: Stabilizasyon aşamasında, proxychains-ng’de quiet_mode’u etkinleştirerek terminalde dikkatinizin dağılmasını azaltabilirsiniz. Tanılama aşamasında ise, ayrıntılı çıktıyı açık tutun.

Beklenen Sonuç: Hedef işlemler hızlı ve stabil bir şekilde gerçekleştirilerek, zaman aşımı sıklığı en aza indirilmiş ve metrikler tekrarlanabilir hale gelmiştir.

Olası Problemler ve Çözümler: Eğer zamanlama çok genişse, düğümler arasındaki ağ kalitesini kontrol edin, proxy sağlayıcınızdan limitler ve mevcut yükler hakkında bilgi alın. Gerekirse, yavaş düğümü yedek listenizden bir tanesi ile değiştirin.

✅ Kontrol: 20-30 isteği tekrar gerçekleştirin. Eğer ortalama zaman ve 95. yüzdelik sürekli olarak belirlenen sınırların içinde kalıyorsa, optimizasyon başarılı olmuştur.

Sonucun Kontrolü

Artık her şeyi bir araya getirip, zincirin 'Adım 1'deki hedeflerle uyumlu olduğundan emin olalım.

Kontrol Listesi

  • Proxychains veya Proxifier yüklenmiş ve yapılandırılmış olmalıdır.
  • Zincir modu bilinçli bir şekilde seçilmiştir (dinamik, sıkı veya rastgele).
  • Gerektiğinde uzak DNS (proxy_dns) etkin olmalıdır.
  • Proxy listesinin güncel olduğundan ve her düğümün ayrı ayrı test edildiğinden emin olunmalıdır.
  • Zaman aşım süreleri ayarlanmalı, takılmalar olmamalı veya nadiren meydana gelmelidir.
  • Temel uygulamalar zincir üzerinden çalışmalıdır.

Nasıl Test Edilir

  • proxychains ile HTTP ve HTTPS kaynaklarına curl -I ile 5-10 ardışık istekte bulunun. Stabiliteyi kontrol edin.
  • Çıkış IP’sini kontrol edin ve zincirin beklenen düğümüne uygun olup olmadığını kontrol edin.
  • Gerçek senaryonuzu kontrol edin: uygulama üzerinden veri yükleme, API erişimi, senkronizasyon vb.

Başarı Ölçütleri

  • Bağlantı hatası yok veya bunlar nadirdir ve belirlenen kriterler içindedir.
  • Yanıt süresi kaydedilen ölçümlere göre kabul edilebilir sınır içindedir.
  • Yönlendirme kuralları uygulanmıştır: gerekli uygulamalar zincir üzerinden giderken, diğerleri gitmemektedir (bu amaçla planlanmışsa).

✅ Kontrol: 'Adım 1'deki hedeflerle eşleştirin ve her birinin kapandığından emin olun. Gerekirse, ayrıntılı ince ayar için 'Adım 6’ya geri dönün.

Yaygın Hatalar ve Çözümler

  • Problem: Uçuncu kaynaktan cevap yok. Sebep: Sıkı bir zincirde çalışmayan bir düğüm. Çözüm: dynamic_chain’a geçin ve düğümleri teker teker kontrol edin. Arızalı olanı düzeltin veya değiştirin.
  • Problem: HTTPS istekleri kesiliyor. Sebep: Ara HTTP proxy CONNECT desteğine sahip değil. Çözüm: Onu değiştirin veya bu konumda SOCKS5 kullanın.
  • Problem: Uzun DNS çözümü veya tutarsız sonuçlar. Sebep: DNS yerel olarak çalışıyor ve zincir üzerinden gitmiyor. Çözüm: Yapılandırma içinde proxy_dns’i etkinleştirin.
  • Problem: Bağlantıda rastgele zaman aşım süreleri. Sebep: çok kısa tcp_connect_time_out veya aşırı yüklü bir düğüm. Çözüm: Zaman aşımını artırın ve/veya aşırı yüklü proxy’yi değiştirin.
  • Problem: Uygulama zincir üzerinden geçmiyor. Sebep: Standart dışı ağ çağrıları veya kendi yığınını kullanıyor. Çözüm: Windows’ta Proxifier kuralını uygulayın; uygulamanın belirli ayarlarını araştırın.
  • Problem: Çalışan düğümlerle bile uzun gecikmeler. Sebep: Aşırı sayıda düğüm veya 'yavaş' son düğüm. Çözüm: Düğüm sayısını azaltın veya hızlı olan proxy’yi öncelikle yerleştirin.
  • Problem: Mobil proxy ile istikrarsız performans. Sebep: Operatör ağlarının özellikleri ve IP döngüsü. Çözüm: Okuma zaman aşım sürelerini artırın, döngüleri inaktif zamanlarda planlayın, gerekiyorsa daha stabil bir ara düğüm kullanın.

İpucu: Herhangi bir hata durumunda öncelikle düğümleri tek tek curl ile kontrol edin. Bu, hata ayıklama sırasında zaman kazandırır.

Ek Olanaklar

Proxychains-ng İçin Gelişmiş Ayarlar

  • random_chain ile uzunluğun sınırlanması: random_chain etkinleştirerek chain_len = N belirleyin; böylece her seferinde N uzunluğunda rastgele bir alt dizi kullanabilirsiniz. Bu, dağılım testleri için faydalıdır.
  • quiet_mode: çıktıda 'gürültüyü' azaltır. Stabilizasyon sonrası kullanın.
  • Yapılandırmaların Ayrılması: farklı görevler için birkaç yapılandırma dosyası tutun, alternatif dosyayı başlatma sırasında (örneğin, ortam değişkeni veya farklı adlarla dosyaların kopyalarını kullanarak) değişiklik yapın.

Optimizasyon ve İzleme

  • Metrikleri ayrı bir senaryoya çıkarın. proxychains altında curl'ı 10-20 kez çağıran ve metrikleri CSV dosyasına yazan bir script, eğilimleri hızlıca görmenizi sağlar.
  • Düğümlerin düzenli kontrolü. Günde/bir haftada otomatik olarak proxy’nin erişilebilirliğini kontrol edin, sıralamaları değiştirin veya sorunlu düğümleri hariç tutun.
  • Planlı döngüleme. Eğer bir sağlayıcıda mobil proxy kullanıyorsanız, yoğun olmayan saatlerde planlayın, böylece aktif oturumları kesintiye uğratmamış olursunuz. mobileproxy.space gibi birçok sağlayıcı, döngüleme sürelerini esnek bir şekilde yönetmeyi sağlar.

Riskler ve Sorumluluklar

  • Teknik Riskler: performans düşüklüğü, hatalı zaman aşım sürelerinde takılmalar, uzun zincirlerde beklenmedik hatalar.
  • Kurumsal: oluşturulmamış dış düğümlerin kullanımı, iç bilgi güvenliği politikalarının ihlali.
  • Hukuksal: her zaman yasaların ve tedarikçilerle olan sözleşmelerin kapsamındaki olması. Zincirleri yalnızca meşru ve önceden belirlenmiş görevler için kullanın.

⚠️ Dikkat: Zincirleri, hizmetlerin kurallarını ihlal eden eylemler için yapılandırmayın. Ağ şemalarını her zaman görevlilerle koordine edin.

İpucu: Kritik senaryolar için bir 'B planı' tutun: daha az düğümlü ve daha hafif zaman aşım süreleri olan alternatif bir yapılandırma. Profil değişikliği çoğu zaman prodüksiyondaki derin hata ayıklamadan daha hızlıdır.

Başka Neler Yapılabilir

  • Hızlı başlangıç senaryoları: acil görevler için minimal zincir ile ayrı bir yapılandırma ve tam testler için başka bir yapılandırma.
  • Belgeler ve 'iç bağlantılar': kurumsal wiki’nize 'proxychains nasıl kurulur adım adım' ve 'sık karşılaşılan hatalar' bölümleri ekleyin. Bu rehberde, kolaylık olması açısından 'Sonucun Kontrolü' ve 'Yaygın Hatalar ve Çözümler' bölümlerine bakın.

Sıkça Sorulan Sorular

  • Soru: Zincir içinde yalnızca HTTP proxy kullanılabilir mi? Cevap: Evet, eğer uygulamalarınız HTTP/HTTPS üzerinden çalışıyorsa ve ara düğümler CONNECT desteğine sahipse kullanım mümkündür. Evrensellik açısından, en azından birinci düğümde SOCKS5 ilave etmek daha uygundur.
  • Soru: dynamic_chain mi yoksa strict_chain mı seçilmeli? Cevap: Eğer erişilebilirlik ve arıza toleransı daha önemliyse — dynamic_chain. Sürekli bir güzergah gerekiyorsa strict_chain kullanın.
  • Soru: Uzak DNS gerekli mi? Cevap: Çoğu durumda evet: bu, davranışı öngörülebilir ve nihai güzergah ile uyumlu hale getirir.
  • Soru: Belirli bir düğümün sorumlu olduğunu nasıl anlayabilirim? Cevap: Düğümleri teker teker çıkarak test edin ve metrikleri not edin. Gecikme veya zaman aşımı artışı yapan düğüm muhtemel suçludur.
  • Soru: Mobil proxy kullanmak mantıklı mı? Cevap: Evet, eğer uygulamaların operatör ağlarında nasıl davrandığını test etmek istiyorsanız gerekli olabilir. Uzun gecikmeleri ve olası IP döngülerini göz önünde bulundurun. mobileproxy.space gibi tedarikçiler, bu tür senaryoların yönetimini kolaylaştırır.
  • Soru: Farklı zincirler arasında hızlıca nasıl geçiş yapılır? Cevap: Birkaç proxychains yapılandırmasını elinizde tutun ve aktifleştirilen birini değiştirin; ya da Proxifier'da önceden tanımlanmış kurallarla farklı profiller kullanın.
  • Soru: Nadir, ama sıkıntılı zaman aşım süreleriyle ne yapılmalı? Cevap: tcp_read_time_out ve tcp_connect_time_out değerlerini biraz artırın, sağlayıcıdan belirli proxy’lerin durumunu kontrol edin ve gerekirse bir düğümü değiştirin.
  • Soru: Rastgele seçimde zincirin uzunluğunu sınırlamak mümkün mü? Cevap: proxychains-ng’de random_chain ve chain_len = N kullanarak uzunluğu sınırlayabilirsiniz.
  • Soru: Bağlantı süreçlerini nasıl kaydedebilirim? Cevap: Tanılama aşamasında quiet_mode'u kapatın ve proxychains’in ayrıntılı çıktısına bakın. Proxifier’da gerçek zamanlı log penceresini kullanın.

Sonuç

Tüm aşamaları tamamladınız: hedeflerinizi belirlemekten, proxy seçmeye, proxychains-ng veya Proxifier kurulumuna, zincir oluşturma, kontrol etme, optimizasyon ve hata ayıklama süreçlerine kadar. Artık uygulanabilir bir şema ve işletim ile tanılama süreçlerini basitleştiren bir dizi teknik elde etmiş olmalısınız. Gelecekte, metriklerinizi geliştirin, düğüm kontrollerinizi otomatikleştirin, farklı durumlar için konfigürasyon kütüphanesini koruyun ve görevlerinize göre zincir bileşenlerini düzenli olarak gözden geçirin. Eğer mobil ortam simülasyonu gerekiyorsa, güvenilir bir sağlayıcıdan kaliteli mobil proxy’leri seçin; merkezi senaryolar için güvenilir veri merkezi düğümlerini tercih edin. Ve unutmayın: basitlik, müttefikinizdir. Zincirlerinizi hedefinizi başarmak için gereken uzunlukta tutun ve neden olmadan karmaşık hale getirmeyin.

İpucu: Nihai çalışma yapılandırmanızı 'altın standart' olarak kaydedin ve değişikliklerde periyodik olarak onunla karşılaştırın. Bu, gelecekteki düzeltmelerde hata ayıklama süresini kısaltır.