407 Proxy Authentication Required: ne anlama gelir ve nasıl düzeltilir

12 dk

Proxy'den HTTP 407 mi alıyorsunuz? Proxy Authentication Required'ın ne demek olduğunu öğrenin, sonra kimlik bilgilerini, IP izin listesini ve paradaki özel karakterleri kontrol edin.

Bir proxy kurdunuz, bir istek gönderdiniz ve sayfa yerine 407 Proxy Authentication Required aldınız. Bu rehber, tarayıcıda, kazıyıcıda veya betikte ücretli bir proxy kullanan ve proxy'nin neden reddettiğini bulması gereken herkes içindir. Nedenleri genellikle göründükleri sırayla ele alırız. Top Proxy proxy hizmetlerini karşılaştırır; IP satmayız, ücretsiz kimlik bilgisi de vermeyiz, bu yüzden aşağıdaki her örnek yer tutucu değerler kullanır.

01407 Proxy Authentication Required ne demektir

HTTP 407 bir proxy kimlik doğrulama meydan okumasıdır. MDN bunu, «proxy sunucusu için geçerli kimlik doğrulama bilgisi eksik» olduğu için başarısız olan bir istek diye anlatır (MDN, 407). Durum RFC 9110, bölüm 15.5.8 içinde tanımlanır.

Akış şöyledir. Proxy 407 ve beklediği şemayı adlandıran bir Proxy-Authenticate başlığıyla yanıtlar, örneğin:

HTTP/1.1 407 Proxy Authentication Required
Proxy-Authenticate: Basic realm="proxy"

İstemcinin isteği, kimlik bilgilerini taşıyan bir Proxy-Authorization başlığıyla tekrarlaması beklenir. Yani tek bir 407 otomatik olarak başarısızlık değildir: kimi istemciler ilk isteği kimlik bilgisi olmadan gönderir, meydan okumayı alır, sonra onlarla yeniden dener. Sorun, istemci meydan okumayı yanıtladıktan sonra gelmeye devam eden bir 407 veya hiç yanıtlamayan bir istemcidir.

407'yi benzeri 401'den ayırmak işe yarar:

DurumGenelde kim yükseltirMeydan okuma başlığıKimlik bilgisi başlığı
401 UnauthorizedHedef site veya APIWWW-AuthenticateAuthorization
407 Proxy Authentication RequiredYoldaki bir proxyProxy-AuthenticateProxy-Authorization

401 normalde hedefin kendi girişini istediği anlamına gelir. Proxy girişinizin çalıştığına dair bir ipucudur, kanıt değil. Aynı şekilde 407 hangi tür kimlik doğrulamanın meydan okunduğunu söyler, ama durum kodu tek başına isteğin ne kadar gittiğini kanıtlamaz. Yoldaki herhangi bir aracı 407 döndürebilir, yapılandırdığınızın önündeki kurumsal bir proxy dahil. Yanıt sağlayıcınızınkine benzemiyorsa ağınızın trafiği önce başka bir proxy'den geçirip geçirmediğine bakın.

Kimi istemciler sayıyı hiç göstermez. Tarayıcı proxy için bir giriş penceresi açabilir, bir kütüphane başarısız tünel ve 407 diye bir hata yükseltebilir. Neden aynıdır.

02Yaygın nedenlere bakış

Kalıcı 407'lerin çoğu kısa bir sorun listesine iner. Başlayacağınız yeri seçmek için bu tabloyu kullanın, sonra eşleşen bölümü okuyun.

BelirtiOlası nedenNe kontrol edilmeli
İstemci kimlik bilgilerini gönderdikten sonra da 407 sürerYanlış kullanıcı adı veya parolaKimlik bilgilerini sağlayıcı panelinden yeniden kopyalayın
407 ve istemci hiç Proxy-Authorization göndermezKimlik bilgileri yapılandırılmamış veya desteklenmeyen bir kimlik doğrulama şemasıİstemcinin proxy ayarlarını ve desteklenen yöntemleri kontrol edin
Dün çalıştı, bugün reddedildi, yapılandırma değişmediDış IP'niz değişti ve IP izin listesi kullanıyorsunuzŞu anki genel IP'nizi izin listesiyle karşılaştırın
Yalnızca bir parolayla veya yalnızca bir araçta başarısızParoladaki özel karakterler bozuluyorProxy URL'sinin içinde yüzde kodlayın; ayrı alanlarda düz değeri geçin
Tarayıcı çalışır, betik düşer (veya tersi)İstemci başına farklı ayarlar, kaynak IP veya yolHer uygulamanın proxy ayarlarını ve ağ yolunu ayrı kontrol edin
Kullanıcı adında ülke, oturum veya tarife seçeneklerini değiştirdikten sonra redBozuk kullanıcı adı parametreleriKullanıcı adını sağlayıcının belgelendirdiği biçimden yeniden kurun
Tarife süresi dolduktan veya trafik bittikten sonra redHesap tarafı blokSağlayıcı panelinde tarife durumunu kontrol edin

Sağlayıcılar süresi dolmuş tarifeleri farklı işler: kimi 407 döndürür, kimi başka bir hata veya kapalı bir bağlantı, bu yüzden son satırı elemek için bakın.

03Önce kullanıcı adı ve parolayı kontrol edin

En yaygın neden en basiti: proxy beklediği kimlik bilgilerini almadı. Bunları sırayla geçin.

  1. Kimlik bilgilerini taze kopyalayın. Proxy kullanıcı adı ve parolasını eski bir nottan değil, sağlayıcının panelinden alın. Birçok sağlayıcı, panel girişinizden farklı ayrı proxy kimlik bilgileri verir.
  2. Artakalan boşluğa bakın. Parolayla kopyalanan sondaki bir boşluk veya satır sonu görünmez ama kimlik bilgilerini yanlış yapar.
  3. Seçenek taşıyorsa kullanıcı adını yeniden kurun. Birçok Residential ve mobil sağlayıcı hedeflemeyi kullanıcı adına kodlar; ülke kodu veya oturum jetonu gibi. Sözdizimi sağlayıcıya özgüdür; yanlış bir ayırıcı veya desteklenmeyen bir değer reddedilmiş bir girişe yol açabilir. Başka bir hizmetten kopyalanan biçim değil, sağlayıcınızın belgelerindeki biçimi kullanın.
  4. Ana bilgisayar ve portun kimlik bilgileriyle uyduğunu doğrulayın. Kimi sağlayıcılar farklı ürünler için farklı geçitler veya portlar kullanır; birinin kimlik bilgileri diğerinde çalışmayabilir.
  5. İstemcinin nasıl kimlik doğruladığını doğrulayın. Kimi uygulamalarda kullanıcı adı veya parola alanı yoktur. Yine sistem ayarları veya kurumsal ağların kullandığı müzakere edilmiş bir yöntemle kimlik doğrulayabilirler ya da kimlik bilgilerini yalnızca bazı proxy türleri için destekleyebilirler. Meydan okumayı yanıtlayabileceğini veya yanıtlayamayacağını varsaymadan önce istemcinin belgelerinde hangi proxy kimlik doğrulama yöntemlerini desteklediğine bakın.

Tel üzerinde ne olduğunu görmek için curl hızlı bir testtir. Yer tutucu değerlerle:

curl -q -v --noproxy '' --connect-timeout 10 --max-time 30 \
  --proxy http://proxy.example.net:8000 \
  --proxy-user 'USERNAME:PASSWORD' \
  https://example.com/

-q ilk gelmelidir; curl'ün testi değiştirebilecek .curlrc varsayılanlarını yok saymasını sağlar. --noproxy '' isteği aksi halde proxy'nin etrafından gönderebilecek bir NO_PROXY ayarını ezer ve iki zaman aşımı testi sınırlı tutar. -v bayrağı istek ve yanıt başlıklarını yazdırır; böylece 407'yi proxy'nin Proxy-Authenticate başlığıyla ve birçok yöntemde curl'ün yanıtlayıp yanıtlamadığını görürsünüz. curl varsayılan proxy kimlik doğrulama yöntemi olarak Basic kullanır; --proxy-anyauth proxy başka bir şey isterse uygun bir yöntem seçmesini söyler (curl kılavuzu).

İki uyarı. Ayrıntılı çıktı kodlanmış kimlik bilgileri, çerezler ve jetonlar içerebilir; bir günlüğü paylaşmadan önce Proxy-Authorization, Cookie ve tüm jeton değerlerini maskeleyin. Komut satırına yazılan bir parola kabuk geçmişine girebilir ve süreç listesinde kısa süre görünür, curl kılavuzunun uyardığı gibi; bir ortam değişkenini argümana genişletmek bunu değiştirmez. Tek kullanımlık bir testin ötesinde, aracınızın korunan kimlik bilgisi girişini kullanın; yalnızca sizin okuyabildiğiniz bir yapılandırma dosyası gibi.

Bu test olağan TLS doğrulamasını tutar. 407'yi ayıklamak için -k veya herhangi bir «güvensiz» anahtara ihtiyacınız yoktur; doğrulamayı kapatmak proxy kimlik doğrulamasını düzeltmez, yalnızca gerçek sorunları gizler.

04IP izin listesi ve değişen bir dış IP

Birçok sağlayıcı başka bir kimlik doğrulama yolu sunar: genel IP adresinizi kaydedersiniz, proxy parola olmadan ondan gelen bağlantıları kabul eder. Kimi sağlayıcılar bunu kullanıcı adı ve parolayla birleştirmenize veya uç başına farklı yöntemler uygulamanıza da izin verir. İzin listesinin tam olarak «dün çalıştı» türü bir red üreten bir başarısızlık kipi vardır. Sağlayıcıya göre o red 407, 403, kesilmiş bir bağlantı veya başka bir hata olabilir.

Proxy, bağlantınızın geldiği IP'yi görür; bilgisayarınızın kendi ağ kartında gösterdiği adresi değil. O kaynak IP, proxy'ye giden yolunuza bağlıdır:

  • Ev ve mobil bağlantılar yönlendirici yeniden başlatmasından, yeniden bağlanmadan veya yalnızca zamanla sık yeni bir genel IP alır.
  • NAT ve taşıyıcı düzeyinde NAT sağlayıcının paylaşılan genel adresi görmesi demektir, yerel 192.168.x.x veya 10.x.x.x adresinizi değil.
  • Sağlayıcının önündeki bir VPN, kurumsal ağ veya başka bir proxy kaynak IP'yi o ağın çıkışına çevirir.
  • IPv4 ve IPv6. Bir IPv4 adresi izin listesine aldıysanız ama bağlantınız sağlayıcıya IPv6 üzerinden ulaşıyorsa veya tersi, proxy sizi tanımayabilir. Bunun geçerli olup olmadığı, sağlayıcının geçidinin IPv6 kabul edip etmediğine bağlıdır.

Kontrol için o tarayıcıda proxy kapalıyken IP adresim sayfasını açın ve gösterdiği adresi sağlayıcınızın izin listesiyle karşılaştırın. Sayfa, o tek tarayıcıdan o tek isteğin IP'sini gösterir. Betiğiniz bir sunucuda, bir kapsayıcıda veya bir VPN üzerinden çalışıyorsa kaynak IP'si farklı olabilir; bu yüzden başarısız istemcinin kullandığı aynı makine ve ağ yolundan kontrol edin.

İzin listesinden parolaya veya tersine geçtiyseniz, kullandığınız ucun artık gönderdiğiniz yöntemi beklediğini de kontrol edin.

05Paroladaki özel karakterler

@, :, /, #, % veya ? gibi simgeler içeren parolalar rastgele duran 407'lerin sık kaynağıdır: aynı kimlik bilgileri bir araçta çalışır, diğerinde düşer. Bu karakterlerin URL içinde anlamı vardır ve birçok araç proxy'yi http://user:password@host:port gibi tek bir URL olarak alır.

Yer tutucu parola p@ss:w/rd%#1 olsun. Bir proxy URL'sinin içinde @ kimlik bilgilerinin sonu diye okunabilir; /, # veya % gerisini kesebilir veya bozabilir. Paroladaki düz bir :'nin nasıl işlendiği URL ayrıştırıcıları arasında değişir. Ayrıştırıcı davranışı farklı olduğu için güvenli kural, kullanıcı adı ve paroladaki her ayrılmış karakteri URL'ye koymadan önce yüzde kodlamaktır.

Düzeltme, aracın kimlik bilgilerini nasıl aldığına bağlıdır:

Araç kimlik bilgilerini nasıl alır → Ne yapılmalı

  1. 01İçinde user:password@ olan tek bir proxy URL'siKullanıcı adı ve parolayı URL'ye koymadan önce yüzde kodlayın
  2. 02Ayrı kullanıcı adı ve parola alanları veya curl'ün --proxy-user'ı gibi ayrı bir seçenekDüz parolayı girin, yüzde kodlamadan
  3. 03HTTPS_PROXY gibi bir ortam değişkeniBir URL'dir, bu yüzden yüzde kodlayın, sonra sizin aracınızın nasıl ayrıştırdığına bakın

Her yerde körlemesine yüzde kodlamayın. Bir parolayı kodlayıp sonra ayrı bir parola alanına yazarsanız proxy @ yerine %40 alır ve reddeder.

curl. Kılavuz, proxy dizgesindeki kullanıcı ve parolanın URL çözüldüğünü söyler; bu yüzden @'yi %40, iki noktayı %3a olarak geçebilirsiniz (curl kılavuzu). Yukarıdaki yer tutucu parolayla:

curl -q --noproxy '' --connect-timeout 10 --max-time 30 \
  --proxy 'http://USERNAME:p%40ss%3Aw%2Frd%25%231@proxy.example.net:8000' \
  https://example.com/

Alternatif olarak proxy URL'sini temiz tutun ve kimlik bilgilerini --proxy-user ile ayrı geçin; kabuğun $, ! veya # gibi karakterleri yorumlamaması için değeri tek tırnak içine alın. Yukarıdaki komut satırı görünürlüğü uyarısı her iki biçim için de geçerlidir.

Python. Her parçayı standart kütüphaneyle kodlayın, sonra URL'yi kurun:

from urllib.parse import quote
import requests

username = "USERNAME"
password = "p@ss:w/rd%#1"  # placeholder; load the real one from a secret store

proxy = (
    f"http://{quote(username, safe='')}:{quote(password, safe='')}"
    "@proxy.example.net:8000"
)

try:
    response = requests.get(
        "https://example.com/",
        proxies={"http": proxy, "https": proxy},
        timeout=(10, 30),  # connect timeout, read timeout
    )
    print(response.status_code)
except requests.exceptions.ProxyError:
    # Could be a 407 on the tunnel, a refused port, or another proxy failure
    print("Proxy connection failed; check the proxy address, auth, and allowlist.")

quote(..., safe='') yer tutucu parolayı p%40ss%3Aw%2Frd%25%231 yapar ve requests başlığı kurmadan önce kullanıcı adı ve parolayı proxy URL'sinden çözer. HTTPS bir hedef için proxy meydan okuması tüneli açarken olur; oradaki bir 407 genellikle herhangi bir yanıt nesnesi var olmadan ProxyError olarak yüzeye çıkar. ProxyError yine de kimlik doğrulamaya özgü değildir: kapalı veya yanlış bir proxy portu da onu yükseltir, bu yüzden ileti genel kalır. Örnek, kimlik bilgili proxy URL'sini içerebilen ham istisna yerine o kısa iletiyi yazdırır. Zaman aşımı değerleri bağlanmayı ve okumalar arasındaki beklemeyi sınırlar; isteğin toplam süresine tavan değildir. Sertifika doğrulaması açık kalır (varsayılan) ve yeniden deneme döngüsü yoktur: aynı kimlik bilgileriyle yeniden denemek 407'yi düzeltmez.

Kontrollü bir testte ne gördük

Bu davranışları kontrol etmek için aynı makinede yerel bir test proxy'sine karşı Python 3.14.4 üzerinde Python Requests 2.34.2 çalıştırdık; dummy kimlik bilgileri (demo ve @, :, /, #, % içeren bir parola) ve TLS doğrulaması açık. Bu, istemci ve protokolün nasıl davrandığını gösterir, ticari bir sağlayıcının performansını değil.

Durum → Gözlenen sonuç

  1. 01HTTP hedef, proxy kimlik bilgisi yokDurum 407 ile yanıt
  2. 02HTTPS hedef, proxy kimlik bilgisi yok407'den bahseden ProxyError, yanıt nesnesi yok
  3. 03HTTP ve HTTPS, proxy URL'sinde yüzde kodlanmış kimlik bilgileriDurum 200
  4. 04HTTPProxyAuth yardımcısı, HTTP hedefDurum 200
  5. 05HTTPProxyAuth yardımcısı, HTTPS hedef407'den bahseden ProxyError
  6. 06socks5h:// URL'sinde yüzde kodlanmış kimlik bilgileriyle SOCKS5Durum 200
  7. 07Proxy portu kapalı407'siz ProxyError
  8. 08Proxy kimliği kabul edildi, hedef 401 döndürürDurum 401

Bu testte HTTPProxyAuth yardımcısı düz HTTP isteklerini kimlik doğruladı ama HTTPS tünelini doğrulamadı; bu yüzden HTTPS için kodlanmış kimlik bilgilerini proxy URL'sine koyun.

06Düzeltmeyi doğrulayın

Gerçek proxy kontrolü geçersiz-biçim sonucu; 407 veya başarılı bir proxy testi değil

Proxy kontrolü ile başlayın. Proxy ayrıntılarını girin; sunucumuzdan bağlanır ve ucun yanıt verip vermediğini bildirir. Sonucu iki çekinceyle okuyun. Birincisi, kontrol kendi IP'sinden bağlanır, sizinkinden değil. Sağlayıcınız IP izin listesi kullanıyorsa ve kontrolün IP'si izinli değilse kontrol 407, 403, kesilmiş bir bağlantı veya başka bir hatayla reddedilebilir; bu tek başına kurulumunuzun bozuk olduğu anlamına gelmez. İkincisi, başarılı bir kontrol, ucun o kimlik bilgilerini kontrolün konumundan kabul ettiğini gösterir. Tarayıcınızın veya betiğinizin proxy üzerinden gittiğini kanıtlamaz.

İkinci kısım için curl testini sorunlu makineden çalıştırın, sonra yapılandırılmış proxy üzerinden IP adresim sayfasını ziyaret edin. Gördüğünüz IP'yi sağlayıcınızın almanız gerektiğini söylediği çıkış IP'si, aralık veya uç ile karşılaştırın. Farklı bir IP tek başına doğru yolun kanıtı değildir (bir VPN de değiştirirdi) ve değişmeyen bir IP tek başına proxy'nin atlandığını kanıtlamaz; beklenen çıkışa ve istemcinin aldığı yola karşı kontrol edin. Yalnızca ülke veya konum da yetmez, çünkü bir proxy kendi ülkenizde de çıkabilir.

Kontrol geçer ama istemciniz hâlâ 407 alıyorsa iki yol arasındaki farka bakın: kaynak IP ve IP sürümü, uç ve port, kimlik doğrulama yöntemi, istemcinin özel karakterleri nasıl işlediği veya ağınızdaki önce yanıt veren başka bir proxy.

07Başka bir sağlayıcıya bakma zamanı

Yukarıdaki nedenleri elediniz ve belgelenmemiş kullanıcı adı sözdizimine veya kafa karıştırıcı kimlik bilgisi kurulumlarına zaman kaybetmeye devam ediyorsanız, kimlik doğrulama seçeneklerini açık belgelendiren hizmetleri karşılaştırmak işe yarayabilir. Mobil proxy hizmetlerine bakabilir veya bu katalog kayıtlarıyla başlayabilirsiniz. Burada listelemek, herhangi birini sizin özgül istemcinize karşı denediğimiz anlamına gelmez.

Bright Data — residential ve datacenter proxy
Bright Data — residential ve datacenter proxy4.41442

Bright Data, veri toplama için büyük bir proxy ağıdır: yaklaşık 195 ülkede residential, mobil, ISP ve datacenter IP'ler. Residential trafik abonelik olmadan kullandıkça ödenebilir; datacenter ve ISP adresleri 10 IP'lik paketlerden başlar. Residential ve mobil erişim kimlik doğrulaması ister.

10 ülke
$5,00
1 GB başı
Oxylabs — residential ve datacenter proxy
Oxylabs — residential ve datacenter proxy4.0771

Oxylabs residential, mobil, ISP ve datacenter proxy'leri $30'dan tek aylık abonelik altında satar. Alıcı ödemeleri: kartlar, havale, AliPay, PayPal.

10 ülke
$0,45
1 GB başı
SOAX — residential ve mobil proxy
SOAX — residential ve mobil proxy3.8218

SOAX rotating residential ve mobil proxy'yi ortak kredi havuzunda satar; datacenter ve ISP aynı tarifelerde. Builder ayda $200 + KDV'dan başlar (200 kredi); Builder'da Tier 1 trafik $3/GB.

85 ülke
$3,00
1 GB başı
Decodo (Smartproxy) — residential ve datacenter proxy
Decodo (Smartproxy) — residential ve datacenter proxy4.22118

Decodo (eski adı Smartproxy) residential ve datacenter proxy satar. Residential: aylık tarife olmadan $4/GB veya 3 GB için $3.75/GB'dan aylık paketler. Ödeme: kart, PayPal, Alipay, Google/Apple Pay, kripto (sınırlı).

83 ülke
$0,38
1 GB başı

08SSS

407 Proxy Authentication Required ne anlama gelir?

Yoldaki bir proxy kimlik doğrulama ister. Bir Proxy-Authenticate başlığı gönderir ve istemci bir Proxy-Authorization başlığıyla yeniden denemelidir. İlk 407 olağan bir adım olabilir; istemci yanıtladıktan sonra süren bir 407 kimlik bilgisi veya yapılandırma sorununa işaret eder.

401 ile 407 arasındaki fark nedir?

401 normalde hedef siteden veya API'den gelir ve kendi girişini ister. 407 proxy kimlik bilgileri için bir meydan okumadır. Proxy üzerinden 401 almak, proxy girişinin çalıştığına dair bir ipucudur, kanıt değil.

Hiçbir şey değişmediği halde proxy neden beni reddetmeye başladı?

IP izin listesi kullanıyorsanız genel IP'niz yeniden bağlanma, yönlendirici yeniden başlatması, VPN veya ağ değişiminden sonra değişmiş olabilir. Şu anki dış IP'nizi sağlayıcı panelindeki izin listesiyle karşılaştırın. Sağlayıcılar bunu 407, 403 veya kesilmiş bir bağlantı diye bildirebilir.

Proxy parolamı URL kodlamam gerekir mi?

Yalnızca parola http://user:password@host:port gibi bir proxy URL'sinin içine girdiğinde. O zaman ayrılmış karakterleri yüzde kodlayın. Ayrı kullanıcı adı ve parola alanlarında düz parolayı girin, çünkü kodlanmış karakterler olduğu gibi gönderilir.

Proxy kontrolü proxy'min çalıştığını söylüyor, ama uygulamam hâlâ 407 alıyor. Neden?

Kontrol kendi sunucusundan dener, bu yüzden yalnızca ucun o kimlik bilgilerini oradan kabul ettiğini gösterir. Uygulamanız farklı bir kaynak IP, IP sürümü, uç veya kimlik doğrulama yöntemi kullanıyor, özel karakterleri bozuyor veya önce başka bir proxy'den geçiyor olabilir.

407'yi geçmek için SSL doğrulamasını kapatmalı mıyım?

Hayır. 407 proxy ile bir kimlik doğrulama sorunudur ve sertifika doğrulamasını kapatmak onu düzeltmez. Yalnızca yanlış veya araya girilmiş bir bağlantıya karşı korumayı kaldırır.