Postman Proxy Ayarları: Adım Adım Kurulum

Yayın tarihi:

10 dk okuma

Acar Diveroli
Yazar: Acar Diveroli
GET /ip isteği ve açık proxy anahtarı bulunan bir pencereden düğüm üzerinden dünyaya giden bağlantı çizimi

Postman'i çoğu zaman bir API'yi denemek için açarsınız ve istek doğrudan bilgisayarınızdan çıkar. Ama bazı durumlarda isteğin başka bir IP adresinden gitmesi gerekir: API yalnızca belirli bir ülkeden gelen isteklere farklı yanıt veriyordur, şirket ağı internete yalnızca bir proxy üzerinden çıkmaya izin veriyordur ya da bir entegrasyonun IP kısıtlamasını test ediyorsunuzdur. Postman bu işler için iki yol sunar: işletim sisteminin proxy ayarını kullanmak veya Postman'e özel bir proxy tanımlamak.

Bu yazıda Postman'in proxy ayarlarını nerede tuttuğunu, özel proxy'nin adım adım nasıl tanımlandığını, kullanıcı adı ve şifrenin nasıl ekleneceğini ve proxy'nin gerçekten çalıştığını nasıl doğrulayacağınızı anlatıyoruz. Ardından bypass listesini, en sık görülen bağlantı hatalarını ve komut satırında Newman ile proxy kullanımını ele alıyoruz.

Postman proxy'yi nasıl kullanır?

Postman, gönderdiğiniz API isteklerini masaüstü uygulamasının içinden çıkarır. Bu isteklerin proxy'den geçip geçmeyeceğini Settings > Proxy sekmesindeki ayarlar belirler. Postman'in proxy belgesine göre isteklerin proxy üzerinden gönderilmesi için iki seçenek vardır:

  • Sistem proxy'si (Use the system proxy): Postman, işletim sisteminin proxy ayarını ve HTTP_PROXY, HTTPS_PROXY, NO_PROXY ortam değişkenlerini kullanır. Bilgisayardaki bütün uygulamalar zaten aynı proxy'den çıkıyorsa pratiktir.
  • Özel proxy (Use custom proxy configuration): Postman'e, işletim sisteminden bağımsız olarak kendi proxy'sini tanımlarsınız. Yalnızca API testlerinin proxy'den geçmesini, tarayıcı ve diğer uygulamaların etkilenmemesini istiyorsanız doğru seçenektir.

Belgeye göre iki seçenek birlikte açıksa Postman özel proxy'yi kullanır. Karışıklığı önlemek için kullanmadığınız seçeneği kapalı tutmanızı öneririz.

Postman'in arayüzü sürümden sürüme değişebilir. Bu yazıdaki menü ve alan adları Postman'in güncel belgesine göre verilmiştir; farklı bir sürümde küçük farklılıklar görebilirsiniz.

Özel proxy nasıl tanımlanır?

  1. Postman masaüstü uygulamasını açın ve sağ üst köşedeki dişli simgesine tıklayıp Settings seçeneğine gidin.
  2. Açılan pencerede Proxy sekmesine geçin.
  3. İstek gönderme ayarlarının bulunduğu bölümde Use custom proxy configuration anahtarını açın.
  4. Use proxy for alanında proxy'nin hangi trafik için kullanılacağını seçin. API'lerin neredeyse tamamı HTTPS olduğu için HTTPS'in seçili olduğundan emin olun; iki kutuyu birlikte işaretlemek en güvenli seçenektir.
  5. Proxy server alanında önce protokolü seçin. Web API'leri için genellikle HTTP yeterlidir. SOCKS5 proxy kullanıyorsanız alan adı çözümlemesinin proxy tarafında yapılması için SOCKS5H seçeneğini tercih edin.
  6. Aynı satırda proxy sunucusunun adresini ve portunu girin, örneğin pr.proxynet.io ve 8000.
  7. Proxy kullanıcı adı ve şifre istiyorsa bir sonraki bölümdeki adımları uygulayın.
  8. Ayarlar otomatik kaydedilir. Pencereyi kapatıp bir istek göndererek test edin.
AlanÖrnek değerAçıklama
Use custom proxy configurationAçıkPostman'e özel proxy'yi etkinleştirir
Use proxy forHTTP ve HTTPSHangi isteklerin proxy'den geçeceği
Proxy server — protokolHTTP veya SOCKS5HHTTP web API'leri için, SOCKS5H uzak DNS ile SOCKS
Proxy server — sunucupr.proxynet.ioPanelinizdeki proxy adresi
Proxy server — port8000Seçtiğiniz protokolün portu
Proxy authAçık / kapalıKullanıcı adı ve şifre gerekiyorsa açık
Username / PasswordPanel bilgileriIP whitelist kullanıyorsanız boş
Proxy bypasslocalhost,127.0.0.1Proxy'ye gönderilmeyecek adresler

Postman belgesi, SOCKS proxy üzerinden yalnızca HTTP ve HTTPS isteklerinin gönderilebildiğini belirtir. WebSocket, gRPC gibi diğer istek türlerinin proxy davranışını ayrıca test etmeniz gerekir.

Kimlik doğrulama nasıl eklenir?

Proxy'ye iki yolla bağlanabilirsiniz: kullanıcı adı ve şifreyle ya da bilgisayarınızın IP adresini panelde izinli listeye ekleyerek. İki yöntemin farkını ve güvenlik açısından karşılaştırmasını Proxy Kimlik Doğrulama: User:Pass ve IP Whitelist yazımızda anlattık.

Kullanıcı adı ve şifreyle:

  1. Proxy sekmesinde Proxy auth anahtarını açın.
  2. Username ve Password alanlarına panelinizdeki bilgileri girin.
  3. Şifreyi bu alanlara kodlamadan, olduğu gibi yazın. Adresin içine yazılan şifrelerde gereken %40 gibi kodlamalar burada gerekmez; Postman bilgileri ayrı alanlardan alıp Proxy-Authorization başlığını kendisi oluşturur.

IP whitelist ile:

  1. Proxy kapalıyken bilgisayarınızın genel IP adresini öğrenin. Postman'de https://api.ipify.org adresine GET isteği göndermek yeterlidir.
  2. Bu adresi müşteri panelinizdeki izinli IP listesine ekleyin.
  3. Postman'de Proxy auth anahtarını kapalı bırakın.

Ev bağlantınızın IP adresi değişiyorsa whitelist bir süre sonra çalışmaz hâle gelir; bu durumda kullanıcı adı ve şifreye geçmek daha az uğraştırır.

Proxy'nin çalıştığı nasıl doğrulanır?

Ayarları kaydettikten sonra isteğin gerçekten proxy'den geçtiğini görmek için IP adresini döndüren bir adrese istek gönderin.

  1. Yeni bir istek sekmesi açın ve yöntemi GET olarak bırakın.
  2. Adres çubuğuna https://httpbin.org/ip yazın ve Send düğmesine basın.
  3. Yanıt gövdesindeki origin değerine bakın.
json
{
  "origin": "203.0.113.25"
}

Bu adres proxy'nin çıkış IP adresi olmalıdır. Kendi IP adresinizi görüyorsanız istek proxy'den geçmiyordur; özel proxy anahtarının açık olduğunu ve Use proxy for alanında HTTPS'in seçili olduğunu kontrol edin.

İsteğin ayrıntılarını görmek için Postman Console penceresini açabilirsiniz (alt çubuktaki Console düğmesi). Konsol, gönderilen başlıkları, yanıt süresini ve varsa bağlantı hatasının tam metnini gösterir. Hata ayıklarken ilk bakılacak yer burasıdır.

Aynı kontrolü komut satırından da yapabilirsiniz. Postman'de bir istek çalışmıyorsa aynı proxy ile cURL denemesi, sorunun Postman ayarlarında mı yoksa proxy'de mi olduğunu hızla gösterir:

bash
curl -x "http://kullanici:parola@pr.proxynet.io:8000" https://httpbin.org/ip

cURL çalışıyor, Postman çalışmıyorsa sorun Postman ayarlarındadır. cURL de çalışmıyorsa proxy bilgilerini veya ağınızı kontrol edin. cURL'ün proxy seçenekleri cURL ile Proxy Nasıl Kullanılır? yazımızda.

Bypass listesi ne işe yarar?

Proxy bypass alanı, proxy'ye gönderilmeyecek adresleri virgülle ayrılmış olarak alır. Bu alan en çok şu durumlarda gerekir:

  • Yerel geliştirme sunucusu. localhost:3000 üzerinde çalışan API'nizi test ederken isteğin proxy'ye gitmesi anlamsızdır; proxy yerel ağınızdaki adrese zaten ulaşamaz.
  • Şirket içi servisler. 10.0.0.0 bloğundaki veya .local uzantılı iç servisler.
  • Kimlik doğrulama sunucuları. Token aldığınız servisin IP kısıtlaması yoksa ve yalnızca asıl API isteğinin proxy'den gitmesi gerekiyorsa.

Örnek değer:

text
localhost,127.0.0.1,*.sirket.local,10.0.0.5

Bypass listesine eklemeyi unuttuğunuz yerel adresler, proxy açıkken zaman aşımına uğrar ya da proxy'nin döndürdüğü bir hata sayfasıyla sonuçlanır.

Konum bazlı API yanıtlarını test etmek

Postman'de proxy kullanmanın en yaygın nedenlerinden biri, bir API'nin farklı ülkelerden gelen isteklere nasıl yanıt verdiğini görmektir. Bir fiyatlandırma servisi para birimini, bir içerik API'si dil ve katalog içeriğini, bir ödeme servisi desteklenen yöntemleri isteğin geldiği ülkeye göre değiştirebilir.

Bu testlerde izlenecek düzen:

  1. Her ülke için ayrı bir proxy bilgisi hazırlayın.
  2. Postman'de her ülke için bir Environment oluşturup beklenen para birimi, dil gibi değerleri değişken olarak kaydedin.
  3. Proxy ayarını test edilecek ülkenin çıkış noktasına göre değiştirin.
  4. İsteğin Tests sekmesine beklenen değeri kontrol eden bir doğrulama yazın.
javascript
pm.test("Para birimi ülkeye uygun", () => {
  const body = pm.response.json();
  pm.expect(body.currency).to.eql(pm.environment.get("beklenenParaBirimi"));
});

Postman'in proxy ayarı ortam (environment) bazında değil uygulama bazındadır. Ülke değiştirirken Settings ekranındaki proxy adresini de değiştirmeniz gerekir. Çok sayıda ülkeyi düzenli test ediyorsanız bu işi aşağıdaki Newman yöntemiyle otomatikleştirmek daha pratiktir. Yerelleştirme testlerinin kurgusu yerelleştirme çözümü sayfamızda, genel uygulama testi senaryoları ise uygulama testi çözümü sayfamızda.

Her testte farklı bir çıkış IP'si gerekiyorsa, adresi değiştirmeden her bağlantıda yeni bir IP veren Rotating Proxy kullanılabilir. Aynı IP'nin test boyunca sabit kalması gerekiyorsa sabit bir adres tercih edin.

Sık hatalar ve çözümleri

Hata veya belirtiOlası nedenÇözüm
407 Proxy Authentication RequiredKullanıcı adı veya şifre yanlış, IP whitelist'te değilProxy auth bilgilerini yeniden girin; whitelist'teki IP'yi kontrol edin
tunneling socket could not be establishedProxy tünel kurulumunu reddetti; çoğunlukla 407 veya yanlış portKonsoldaki statusCode değerine bakın; port ve protokolü kontrol edin
ECONNREFUSEDAdres veya port yanlış, proxy bu portta dinlemiyorSunucu adını ve portu panelle karşılaştırın
ETIMEDOUT veya uzun beklemeAğınızdaki firewall proxy portunu engelliyorAynı bağlantıyı cURL ile deneyin; ağ yöneticinizle görüşün
unable to get local issuer certificateKurumsal proxy TLS denetimi yapıyorŞirketin CA sertifikasını Settings > Certificates bölümüne ekleyin
Dönen IP kendi adresinizÖzel proxy kapalı veya HTTPS için etkin değilAnahtarı ve Use proxy for seçimini kontrol edin
localhost istekleri zaman aşımına uğruyorYerel adres proxy'ye gönderiliyorBypass listesine localhost,127.0.0.1 ekleyin

SSL doğrulaması hakkında bir not. İnternette sık önerilen çözüm, Settings ekranındaki SSL certificate verification seçeneğini kapatmaktır. Normal bir forward proxy HTTPS trafiğini CONNECT tüneliyle taşır ve sertifikalara dokunmaz; bu yüzden standart bir proxy kullanırken sertifika hatası almamanız gerekir. Hata alıyorsanız aradaki bir sistem trafiği çözüyordur. Doğrulamayı kapatmak yerine o sistemin sertifikasını eklemek, gerçek bir güvenlik sorununu gözden kaçırmanızı önler.

HTTP durum kodlarının genel anlamlarını ve yeniden deneme mantığını Scraping'de HTTP Hata Kodları yazımızda anlattık.

Newman ile komut satırında proxy

Postman koleksiyonlarını CI hattında veya zamanlanmış görevlerde çalıştırmak için kullanılan Newman, masaüstü uygulamasının proxy ayarlarını okumaz. Newman'ın README belgesi, proxy için standart ortam değişkenlerinin kullanıldığını belirtir: HTTP_PROXY, HTTPS_PROXY ve NO_PROXY.

Linux ve macOS'ta:

bash
export HTTPS_PROXY="http://kullanici:parola@pr.proxynet.io:8000"
export HTTP_PROXY="$HTTPS_PROXY"
export NO_PROXY="localhost,127.0.0.1"

newman run koleksiyon.json -e ortam-de.json

Windows PowerShell'de:

powershell
$env:HTTPS_PROXY = "http://kullanici:parola@pr.proxynet.io:8000"
$env:HTTP_PROXY = $env:HTTPS_PROXY
$env:NO_PROXY = "localhost,127.0.0.1"

newman run koleksiyon.json -e ortam-de.json

Ortam değişkenindeki adres bir URL olduğu için şifrede @, : veya / gibi karakterler varsa kodlanmalıdır: @ karakteri %40 olarak yazılır.

Farklı ülkeleri sırayla test eden bir betik, her çalıştırmada ortam değişkenini ve Postman ortam dosyasını değiştirerek aynı koleksiyonu çalıştırabilir:

bash
#!/usr/bin/env bash
set -euo pipefail

for ulke in de fr tr; do
  export HTTPS_PROXY="http://kullanici-${ulke}:parola@pr.proxynet.io:8000"
  newman run koleksiyon.json -e "ortam-${ulke}.json" --reporters cli,junit \
    --reporter-junit-export "sonuc-${ulke}.xml"
done

Buradaki kullanici-${ulke} biçimi yalnızca örnektir; ülke seçiminin kullanıcı adıyla mı, farklı portla mı yoksa panelden mi yapıldığı sağlayıcıya göre değişir. Doğru biçimi müşteri panelinizde bulabilirsiniz. Postman'in yeni komut satırı aracı Postman CLI kullanıyorsanız proxy ayarını o aracın kendi belgesinden kontrol edin.

Kullanım senaryoları

  • Konum bazlı API davranışını test eden ekip: Farklı ülkelerin çıkış noktalarıyla aynı koleksiyonu çalıştırır. Web API'leri için HTTPS Proxy yeterlidir.
  • IP kısıtlamalı bir entegrasyonu doğrulayan geliştirici: Karşı taraf yalnızca belirli bir sabit IP'den gelen isteklere izin veriyorsa, Postman'i o IP'ye sahip proxy'den geçirerek entegrasyonu canlıya almadan test eder.
  • Kurumsal ağdan çalışan kullanıcı: Şirket internete yalnızca proxy üzerinden çıkmaya izin veriyorsa sistem proxy'si seçeneği yeterlidir; TLS denetimi varsa şirket sertifikası eklenir.
  • Rate limit davranışını inceleyen QA ekibi: Bir API'nin aynı IP'den gelen art arda isteklere nasıl yanıt verdiğini ve Retry-After başlığını doğru döndürüp döndürmediğini kontrol eder.

Karar rehberi

DurumunuzÖneri
Bilgisayarın tamamı zaten proxy'den çıkıyorUse the system proxy
Yalnızca Postman isteklerinin proxy'den geçmesiUse custom proxy configuration
Web API'leri test ediyorsunuzHTTP protokolü
SOCKS5 proxy kullanıyorsunuzSOCKS5H (uzak DNS)
Dinamik IP'li ev bağlantısıProxy auth ile kullanıcı adı ve şifre
Yerel sunucu da test ediliyorBypass listesine localhost,127.0.0.1
CI hattında koleksiyon çalıştırmaNewman + HTTPS_PROXY ortam değişkeni
Sertifika hatası alıyorsunuzDoğrulamayı kapatmak yerine CA sertifikasını eklemek

Sık sorulan sorular

Postman'in web sürümünde proxy ayarı var mı?

Postman belgesine göre web sürümünde Postman'in kendi varsayılan proxy ayarı yapılandırılamaz; istek göndermek için sistem proxy'si veya özel proxy seçenekleri kullanılır. Ayarların tamamını tek ekranda görmek ve kontrol etmek için masaüstü uygulaması daha pratiktir.

Proxy yalnızca bir koleksiyon için tanımlanabilir mi?

Masaüstü uygulamasında proxy ayarı uygulama genelidir, koleksiyon veya ortam bazında tanımlanmaz. Koleksiyon bazında farklı proxy gerekiyorsa Newman ile her çalıştırmada farklı ortam değişkeni vermek en temiz yoldur.

Proxy açıkken Postman'in kendi senkronizasyonu etkilenir mi?

Postman'in hesabınızla eşitleme yaptığı kendi trafiği ile gönderdiğiniz API istekleri için ayarlar ayrı tutulur. Bu yazıda anlatılan ayar, gönderdiğiniz isteklere yöneliktir.

Şifremde özel karakter var, adrese mi yazmalıyım?

Postman masaüstü uygulamasında şifreyi Password alanına kodlamadan yazın. Newman'da ise şifre ortam değişkenindeki URL'nin içine yazıldığı için @, : ve / karakterleri kodlanmalıdır.

Proxy ile istekler neden yavaşladı?

Araya bir durak eklendiği için her istekte ek gecikme olur; proxy'nin çıkış noktası test ettiğiniz API'den uzaksa bu fark belirginleşir. Postman'deki yanıt süresi göstergesi ve konsol, sürenin bağlantıda mı yoksa sunucu yanıtında mı geçtiğini gösterir.

SOCKS5 mi HTTP mi seçmeliyim?

Postman'den yalnızca HTTP ve HTTPS API istekleri gönderiyorsanız HTTP proxy yeterli ve en sorunsuz seçenektir. Elinizde yalnızca SOCKS5 proxy varsa SOCKS5H seçeneğini kullanın. İki protokolün farkı SOCKS ve HTTP Proxy Farkı yazımızda.

Özetle

Postman'de proxy, Settings > Proxy sekmesinden ya işletim sisteminin ayarı kullanılarak ya da Postman'e özel bir yapılandırmayla tanımlanır. Özel proxy için sunucu, port ve protokol girilir; kimlik doğrulama gerekiyorsa şifre kodlanmadan ayrı alana yazılır. Ayarı https://httpbin.org/ip isteğiyle doğrulayın, yerel adresleri bypass listesine ekleyin ve CI hattında Newman için HTTPS_PROXY ortam değişkenini kullanın. Proxy'nin genel çalışma mantığı için Proxy Sunucu Nedir ve Nasıl Çalışır? yazımıza, API testleriniz için uygun paketlere proxy hizmetlerimizde göz atabilirsiniz.

ChatGPT'ye sorClaude'a sor