Jawaban cepat
Apa arti ERR_TUNNEL_CONNECTION_FAILED dengan proxy?
net::ERR_TUNNEL_CONNECTION_FAILED berarti Chrome minta proxy buka tunnel ke situs HTTPS dan proxy tidak menjawab 200 Connection established. Browser menyembunyikan status aslinya. Dengan proxy residential CrawlRelay, penyebab biasanya kredensial hilang di Playwright atau Puppeteer lalu target tidak terjangkau gateway. Reproduksi dengan curl -v untuk lihat kode asli.
ERR_TUNNEL_CONNECTION_FAILED sekilas
| Kesalahan | ERR_TUNNEL_CONNECTION_FAILED |
|---|---|
| Tipe | Kesalahan jaringan Chromium |
| Dikirim oleh | Browser Anda, setelah proxy menolak atau gagal pada permintaan CONNECT |
| Didefinisikan dalam | CONNECT method: RFC 9110, section 9.3.6 |
| Mencoba lagi? | Hanya setelah Anda tahu status sebenarnya di baliknya |
| Periksa pertama | Reproduksi dengan curl -v untuk lihat status sebenarnya dari CONNECT |
Apa arti ERR_TUNNEL_CONNECTION_FAILED?
Untuk memuat halaman HTTPS lewat proxy HTTP, browser dulu mengirimkan CONNECT host:443. Jika proxy jawab 200, browser mulai TLS di dalam tunnel. Jawaban lain seperti 407, 403 atau 502 menghentikan percobaan, dan Chromium laporkan satu kesalahan umum.
Itulah mengapa error ini memberitahu lokasi kegagalan, tunnel, tapi tidak alasannya. Alasannya adalah kode status yang proxy kirim, yang bisa Anda lihat pakai curl.
Seperti apa ERR_TUNNEL_CONNECTION_FAILED dalam Python, curl, Node.js, dan browser?
Kegagalan yang sama dicetak berbeda di setiap alat. Ini adalah pesan yang perlu dicari di log Anda:
- Playwright:
page.goto: net::ERR_TUNNEL_CONNECTION_FAILED at https://... - Puppeteer:
Error: net::ERR_TUNNEL_CONNECTION_FAILED at https://... - Bilah alamat Chrome: 'Situs ini tidak dapat dijangkau' dengan kode
ERR_TUNNEL_CONNECTION_FAILED - Selenium dengan Chrome: kode yang sama di dalam
WebDriverException
Apa penyebab ERR_TUNNEL_CONNECTION_FAILED?
Kemungkinan besar pertama:
- Tidak ada kredensial yang dikirim (tersembunyi 407). Chrome mengabaikan nama pengguna dan kata sandi dalam
--proxy-server. - Tujuan ditolak (tersembunyi 403), seperti kategori yang diblokir oleh kebijakan penggunaan proxy.
- Target tidak dapat dijangkau (tersembunyi 502 atau 504): host mati, kesalahan ketik, atau kegagalan DNS di jalur keluar.
- Port salah: mengarahkan browser ke port SOCKS5 seolah-olah itu HTTP, atau sebaliknya.
Bagaimana cara mendiagnosis ERR_TUNNEL_CONNECTION_FAILED langkah demi langkah?
- Jalankan URL yang sama melalui curl dengan
-v(perintah di bawah) dan baca baris setelahCONNECT. 407berarti kredensial;403berarti tujuan ditolak;502atau504berarti target atau jalur keluar.- Pastikan browser menggunakan port HTTP untuk server proxy
http://. - Uji halaman sederhana seperti
https://api.ipify.orgsebelum target sebenarnya.
# 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_URLBagaimana cara memperbaiki ERR_TUNNEL_CONNECTION_FAILED?
- Playwright: masukkan
server,usernamedanpassworddalam opsiproxy, per browser atau konteks. Lihat panduan Playwright. - Puppeteer: jalankan dengan
--proxy-server=http://host:portdan panggilpage.authenticate()sebelumgotopertama. Lihat panduan Puppeteer. - Selenium: jalankan penerus lokal kecil yang menambahkan kredensial. Lihat panduan Selenium.
- Periksa tujuan terhadap Kebijakan Penggunaan yang Dapat Diterima kami.
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 ERR_TUNNEL_CONNECTION_FAILED?
Coba ulangi hanya setelah status tersembunyi diketahui. Status tersembunyi 407 atau 403 akan terus berulang; perbaiki konfigurasi. Status tersembunyi 502 atau 504 dapat dicoba ulang di jalur keluar baru, seperti kesalahan gateway manapun.
Bagaimana ERR_TUNNEL_CONNECTION_FAILED berlaku untuk CrawlRelay?
Port HTTP CrawlRelay membawa HTTPS melalui terowongan CONNECT, yang didukung oleh semua alat berbasis Chromium. Gunakan port HTTP untuk browser: Chromium tidak mendukung SOCKS5 dengan nama pengguna dan kata sandi.
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: 407 Proxy Authentication Required · ERR_PROXY_CONNECTION_FAILED · Panduan Playwright.
ERR_TUNNEL_CONNECTION_FAILED: pertanyaan yang sering ditanyakan pengembang
Mengapa curl berhasil tapi Playwright menunjukkan ERR_TUNNEL_CONNECTION_FAILED?
Karena curl mengirim kredensial dari URL proxy, sedangkan Chromium mengabaikan kredensial yang ditulis di alamat server proxy. Di Playwright, masukkan username dan password sebagai bidang terpisah dari opsi proxy. Di Puppeteer, panggil page.authenticate() sebelum menavigasi.
Bisakah saya menggunakan proxy SOCKS5 dengan autentikasi di Chrome?
Tidak langsung. Chromium mendukung proxy SOCKS5 tapi tidak autentikasi nama pengguna dan kata sandi SOCKS5. Gunakan port HTTP gateway sebagai gantinya, yang menangani situs HTTPS melalui terowongan CONNECT, atau jalankan penerus lokal yang mengautentikasi untuk browser.
Apakah ERR_TUNNEL_CONNECTION_FAILED disebabkan oleh situs web?
Jarang secara langsung. Terowongan ada antara browser dan proxy, jadi kesalahan terjadi sebelum situs web melihat handshake TLS. Situs bisa menjadi penyebab tidak langsung ketika tidak dapat dijangkau dan proxy menjawab 502 atau 504 pada permintaan CONNECT.
Kesalahan proxy lain dalam referensi ini
Kode status HTTP
- 401 Unauthorized vs 407
- 403 Forbidden
- 407 Proxy Authentication Required
- 429 Too Many Requests
- 502 Bad Gateway
- 503 Service Unavailable
- 504 Gateway Timeout
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.