Tanpa KYC — tanpa ID, tanpa selfie, tanpa dokumen. Bayar dengan crypto: BTC, USDT, USDC, ETH, SOL, LTC
Bahasa: Bahasa Indonesia
Mulai sekarang

Referensi kesalahan proxy · Kode status HTTP

407 Proxy Authentication Required: arti dan cara memperbaikinya

Kode status HTTP (4xx, kesalahan klien): pesan tepat di tiap alat, penyebab yang mungkin secara urut, dan perbaikan yang berhasil.

Terakhir diperbarui: · 5 baca dalam menit

Jawaban cepat

Apa arti 407 Proxy Authentication Required dengan proxy?

407 Proxy Authentication Required berarti proxy menolak permintaan Anda karena tidak menerima kredensial atau kredensial salah. Situs target tidak pernah dihubungi. Dengan proxy residential CrawlRelay, periksa tiga hal: username adalah yang tertera di dashboard Anda, password sesuai, dan karakter khusus di keduanya sudah dienkode URL. Mengulangi permintaan yang sama tidak akan memperbaiki 407.

407 Proxy Authentication Required sekilas

Kesalahan407 Proxy Authentication Required
TipeKode status HTTP (4xx, kesalahan klien)
Dikirim olehGerbang proxy, bukan situs target
Didefinisikan dalamRFC 9110, section 15.5.8 (headers: Proxy-Authenticate 11.7.1, Proxy-Authorization 11.7.2)
Mencoba lagi?Tidak. Kredensial yang sama akan gagal lagi; perbaiki terlebih dahulu
Periksa pertamaJalankan tes curl di bawah ini dengan username polos tanpa parameter targeting

Apa arti 407 Proxy Authentication Required?

Kode 407 datang dari proxy, bukan dari situs yang Anda tuju. RFC 9110 menggambarkannya sebagai versi proxy dari 401: klien harus autentikasi ke proxy sebelum hal lain terjadi. Proxy mengirim header Proxy-Authenticate yang menyebutkan skema yang diterima, hampir selalu Basic. Klien Anda membalas dengan header Proxy-Authorization yang memuat username:password yang dienkode Base64.

Untuk target HTTPS, 407 muncul sebagai balasan atas permintaan CONNECT yang membuka tunnel. Itu sebabnya banyak pustaka melaporkan ini sebagai kesalahan tunnel atau koneksi, bukan status HTTP: sesi TLS ke situs tidak pernah dimulai.

Seperti apa a 407 dalam Python, curl, Node.js, dan browser?

Kegagalan yang sama dicetak berbeda di setiap alat. Ini adalah pesan yang perlu dicari di log Anda:

  • Python requests: ProxyError('Unable to connect to proxy', OSError('Tunnel connection failed: 407 Proxy Authentication Required'))
  • curl: curl: (56) CONNECT tunnel failed, response 407
  • Scrapy: TunnelError: Could not open CONNECT tunnel with proxy ... [{'status': 407, 'reason': b'Proxy Authentication Required'}]
  • Chrome, Playwright, Puppeteer: net::ERR_TUNNEL_CONNECTION_FAILED, atau pop-up login di browser yang terlihat
  • klien Node.js pada target http://: Request failed with status code 407

Apa penyebab a 407?

Kemungkinan besar pertama:

  • Username atau password salah. Kesalahan ketik, password lama setelah reset, atau kredensial pengguna sub yang lain.
  • Karakter khusus tidak dienkode. Password yang mengandung @, :, / atau # akan merusak URL user:pass@host. Enkode persen: @ menjadi %40, : menjadi %3A.
  • Suffix targeting yang rusak. Gateway yang membaca targeting dari username melihat satu username panjang. Salah ketik di kunci atau kode negara mengubahnya menjadi username yang tidak dikenal proxy.
  • Kredensial yang tidak pernah keluar dari kode Anda. Chrome mengabaikan username dan password yang ditulis di dalam --proxy-server. Puppeteer perlu page.authenticate(), dan Selenium perlu forwarder lokal.
  • Saldo habis. Pastikan akun Anda masih punya traffic sebelum debug kode.

Bagaimana cara mendiagnosis a 407 langkah demi langkah?

  1. Uji kredensial dengan curl tanpa targeting sama sekali (perintah di bawah). Baris HTTP/1.1 407 di output verbose mengonfirmasi masalah kredensial.
  2. Tambahkan parameter targeting satu per satu, jalankan ulang tes setelah masing-masing.
  3. Catat URL proxy yang program Anda bangun, password disamarkan, dan bandingkan karakter demi karakter dengan dashboard.
  4. Jika curl berhasil dan program Anda gagal, pustaka tidak mengirim kredensial. Baca perbaikan untuk alat Anda di bawah.
Uji URL yang gagal dengan curl (port HTTP, verbose)
# Use the URL that fails; with https://api.ipify.org instead, you test the gateway alone.
# "HTTP/1.1 200 Connection established" first, then the site's own status: the site answered.
curl -v -x http://USERNAME:[email protected]:7777 https://TARGET_URL

# Same test through the SOCKS5 port, with DNS resolved at the exit
curl -v --socks5-hostname gw.crawlrelay.com:7778 --proxy-user USERNAME:PASSWORD https://TARGET_URL

Bagaimana cara memperbaiki a 407?

  • Enkode kredensial dengan urllib.parse.quote(value, safe='') di Python atau encodeURIComponent() di JavaScript sebelum bangun URL.
  • Browser: berikan username dan password di opsi Playwright proxy, panggil page.authenticate() di Puppeteer, dan gunakan forwarder lokal untuk Selenium. Lihat panduan Playwright dan Puppeteer.
  • Variabel lingkungan: jika Anda set HTTPS_PROXY, beri tanda kutip seluruh nilainya di shell agar @ dan $ tetap aman.
  • Ganti password di dashboard jika curiga bocor, lalu perbarui semua scraper yang menggunakannya.
Python: buat URL proxy dengan kredensial yang dikodekan
from urllib.parse import quote

import requests

user = "USERNAME-country-us"
password = "p@ss:word/1"  # example containing special characters

# safe="" also encodes "/", "@" and ":" inside the credentials
proxy = "http://{}:{}@gw.crawlrelay.com:7777".format(
    quote(user, safe=""), quote(password, safe="")
)
proxies = {"http": proxy, "https": proxy}  # http:// for both keys

r = requests.get("https://api.ipify.org", proxies=proxies, timeout=(10, 30))
print(r.status_code, r.text)
Playwright (Python): kredensial sebagai bidang terpisah
from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch(proxy={
        "server": "http://gw.crawlrelay.com:7777",
        "username": "USERNAME-country-us",
        "password": "PASSWORD",
    })
    page = browser.new_page()
    response = page.goto("https://api.ipify.org")
    print(response.status, page.inner_text("body"))
    browser.close()

Haruskah saya mencoba lagi setelah a 407?

Jangan ulangi 407 secara otomatis. Mengulangi dengan kredensial sama mengembalikan jawaban sama, dan pengulangan ketat hanya memenuhi log Anda. Perlakukan 407 sebagai kesalahan konfigurasi: hentikan pekerjaan, perbaiki kredensial, mulai ulang. Jika 407 muncul tiba-tiba di pekerjaan yang berjalan berhari-hari, kemungkinan password diubah atau sub-user dinonaktifkan.

Bagaimana 407 Proxy Authentication Required berlaku untuk CrawlRelay?

Gerbang CrawlRelay membaca username dan password setiap koneksi baru. Targeting dan pengaturan sesi ada di username, jadi password valid tetap bisa gagal jika suffix salah format. Bangun username dalam satu fungsi pembantu dan catat hasilnya sekali saat start-up. Halaman quick-start menunjukkan format tepatnya.

Gateway: gw.crawlrelay.com, port 7777 (HTTP, HTTPS melalui CONNECT) dan port 7778 (SOCKS5). Format username: USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes}. Terkait: Perbandingan 401 vs 407 · ERR_TUNNEL_CONNECTION_FAILED · Tidak bisa konek ke proxy.

407 Proxy Authentication Required: pertanyaan yang sering ditanyakan pengembang

Apakah 407 dikirim oleh situs web yang saya scrape?

Tidak. 407 selalu dikirim oleh proxy di antara Anda dan situs web. Permintaan tidak pernah sampai ke situs, jadi situs tidak bisa melihat traffic Anda, menghitung atau memblokir Anda karenanya. Jika situs meminta login, maka jawabannya 401. Perbaiki kredensial proxy maka 407 hilang.

Mengapa kode saya dapat 407 sementara curl berhasil dengan proxy yang sama?

Pustaka Anda tidak mengirim kredensial, atau mengirimnya dalam format berbeda. Penyebab umum adalah kredensial diketik di flag browser yang mengabaikannya, variabel lingkungan kehilangan karakter khusus, atau password tidak dienkode URL. Cetak URL proxy kode Anda buat dengan password tersembunyi, dan bandingkan dengan perintah curl.

Apakah 407 memakai traffic dari paket saya?

Respons 407 beberapa ratus byte, dan permintaan tidak pernah sampai target, jadi halaman tidak diunduh. Biayanya ada di lain tempat: scraper yang terjebak dalam pengulangan 407 membuang waktu dan memenuhi log Anda. Jadikan 407 sebagai pemberhentian keras di penanganan kesalahan Anda.

Kesalahan proxy lain dalam referensi ini

Kode status HTTP

Kesalahan browser dan klien

Error koneksi dan TLS

Proxy residensial dengan dokumentasi yang membahas kasus kegagalan

Proxy residensial CrawlRelay dari US$0,50/GB, lalu lintas yang tidak pernah kedaluwarsa.

Dari US$0,50/GB · tanpa KYC

Mulai sekarang