HTTP proxy’yi curl ile test edin
Cihazın genel proxy ayarını değiştirmeden proxy bağlantısını, HTTPS tünelini, yanıt durumunu ve atlama kurallarını süre sınırı olan bir curl testiyle inceleyin.
127.0.0.1:8080 yerine hizmetinizden veya HTTP proxy listesinden bir uç nokta koyun ve bunu zararsız bir HTTPS hedefine karşı çalıştırın:
curl --noproxy '' --proxy http://127.0.0.1:8080 --connect-timeout 5 --max-time 15 --verbose https://example.com/Geri döngü adresi, kendi makinenizdeki bir dinleyiciyi belirtir. Komut onu açıkça seçer, bu çağrı için curl’ün proxy atlama listesini temizler ve bağlantı kurulmasına beş saniye, toplamda on beş saniye tanır. Tarayıcının ve sistemin proxy ayarlarını değiştirmez.
Kabuğunuz curl adını başka bir programın takma adı olarak kullanıyorsa gerçek curl yürütülebilir dosyasını kullanın; curl --version derlemeyi tanımlar. Dinleyicinin kendisi TLS gerektiriyorsa belgelenmiş proxy URL şemasını kullanın.
Tek bir başarı işareti yerine dört sonucu okuyun
- Seçilen proxy’ye bağlanıldı: adres ve bağlantı noktası erişilebilir.
- CONNECT kabul edildi: proxy, HTTPS hedefine bir tünel açtı.
- Hedef sertifikası doğrulandı: TLS, beklenen güven kontrolleriyle tamamlandı.
- Hedeften yanıt alındı: uygulamanızın ihtiyaç duyduğu sonuç için durumunu ve içeriğini inceleyin.
Çalışan bir tünelin ardından hedef 403 veya 429 döndürebilir. curl, HTTP hata yanıtı aldıktan sonra da başarıyla çıkabilir; bu nedenle hem yanıt durumunu hem de curl’ün hata sonucunu kaydedin. Yalnızca TCP bağlantısı veya başarılı CONNECT yeterli değildir.
Tekrarlanan karşılaştırmalar için kısa bir sonuç
Unix benzeri bir kabukta gövdeyi atıp tünel durumunu, hedef durumunu, bağlantının karşı ucunu ve geçen süreyi yazdırın:
curl --noproxy '' --proxy http://127.0.0.1:8080 --connect-timeout 5 --max-time 15 --silent --show-error --output /dev/null --write-out 'http=%{http_code} connect=%{http_connect} peer=%{remote_ip} total=%{time_total}\n' https://example.com/http_connect tünel yanıtını; http_code son HTTP yanıtını açıklar. remote_ip, curl bağlantısının karşı ucudur; proxy’nin çıkış adresinin bağımsız bir ölçümü değildir. Başka sistemlerde /dev/null değerini değiştirin veya yanıt gövdesini saklayın.
Test başarısız olursa başarısız bağlantı kurma ya da aktarım adımını bulun ve bu yolun izinli olduğu yerlerde aynı hedefi doğrudan erişimle karşılaştırın:
curl --noproxy '*' --connect-timeout 5 --max-time 15 --verbose https://example.com/--noproxy '*' proxy’leri atlar. İki yolda da sertifika doğrulamasının başarısız olması ortak bir güven sorununa; doğrudan erişimin başarılı olup CONNECT’in reddedilmesi ise proxy kimlik doğrulamasına veya politikasına işaret eder. Ayrıntılı çıktıyı paylaşmadan önce inceleyin; kimlik belirleyici bilgiler içerebilir.
Uç noktayı, hedefi ve zaman damgasını sonuçla birlikte saklayın. Bu, o istekte neyin çalıştığını ortaya koyar; gelecekteki kullanılabilirlik, gizlilik ve yük altındaki performans ayrı kanıt gerektirir.