VVinaProxy

Membaiki ERR_TUNNEL_CONNECTION_FAILED dengan proksi

Updated:

Untuk memuatkan halaman https:// melalui proksi, pelayar menghantar permintaan CONNECT dan menunggu proksi membuka terowong ke laman web tersebut. ERR_TUNNEL_CONNECTION_FAILED muncul apabila proksi membalas permintaan itu dengan ralat dan bukannya bersetuju. Masalahnya, Chrome tidak memberitahu anda ralat yang mana satu, jadi langkah pertama adalah mencari kod sebenar.

Proksi yang serasi dengan Puppeteer dan Playwright

Dua kes yang kami hasilkan semula

Kedua-duanya diuji pada proksi percubaan, ditulis semula di sini dengan alamat dokumentasi 203.0.113.10:8080 dan user123:pass456. Dalam tetingkap Chrome biasa, kes 407 tidak menjadi ralat terowong; sebaliknya Chrome membuka kotak dialog log masuk untuk nama pengguna dan kata laluan proksi. Oleh itu, ralat terowong yang disebabkan oleh 407 kebanyakannya berlaku dalam alat automasi dan aplikasi yang tidak boleh memaparkan permintaan kata laluan.

Proksi membalas CONNECT denganChrome memaparkancurl memaparkan
407 tanpa cara memasukkan kata laluan (headless Chrome)ERR_TUNNEL_CONNECTION_FAILEDcurl: (56) CONNECT tunnel failed, response 407
502 kerana proksi tidak dapat mencapai laman webERR_TUNNEL_CONNECTION_FAILEDcurl: (56) CONNECT tunnel failed, response 502

Punca, mengikut kebarangkalian tertinggi dahulu

  • Skrip automasi tidak menghantar kelayakan. Bendera --proxy-server Chrome hanya menerima hos dan port, bukan user:pass. Puppeteer atau Selenium headless menerima 407 lalu melaporkan kegagalan terowong.
  • Aplikasi telefon di sebalik proksi Wi-Fi yang dilindungi kata laluan. Aplikasi tiada dialog log masuk, jadi HTTPS gagal manakala pelayar masih berfungsi.
  • Proksi tidak dapat mencapai sasaran. Ia membalas 502 kepada CONNECT; halaman 502 Bad Gateway menerangkan perkara ini secara mendalam.
  • Hanya sesetengah laman web gagal. Laman destinasi menyekat capaian atau tergendala manakala laman web lain berfungsi melalui proksi yang sama.

Cari kod sebenar dengan satu arahan curl

Jalankan curl -v -x http://user123:[email protected]:8080 https://example.com dengan nilai anda sendiri. Perhatikan baris sejurus selepas > CONNECT example.com:443 HTTP/1.1: 407 bermakna anda perlu merujuk panduan 407; 502 pula menunjukkan masalah pada destinasi atau laluan di belakang proksi. Jika anda tidak mahu menggunakan terminal, tampal baris tersebut ke dalam penyemak proksi, yang akan melaporkan auth failed (407) atau HTTP 502 bagi situasi yang sama.

Penyelesaian mengikut persekitaran

  • Puppeteer: kekalkan --proxy-server=http://host:port semasa pelancaran dan panggil page.authenticate({ username, password }) sebelum menavigasi. Contoh lengkap dalam panduan proksi Puppeteer.
  • Playwright: sertakan proxy: { server, username, password } semasa melancarkan pelayar dan Playwright akan menguruskan 407 untuk anda; lihat Playwright.
  • Selenium: Chrome tidak menerima user:pass pada baris arahan; panduan Selenium menunjukkan pilihan alternatif yang boleh digunakan.
  • Chrome pada Windows: jika dialog log masuk tidak dipaparkan, semak sama ada sambungan proksi menyekatnya, kemudian cuba semula dalam tetingkap tanpa sambungan.
  • Telefon: bagi aplikasi yang memerlukan proksi dengan pengesahan, gunakan aplikasi proksi yang menyokong user:pass seperti dalam panduan persediaan Android.

Langkah demi langkah

  1. 1

    Kenal pasti respons CONNECT

    Jalankan curl -v -x dengan baris proksi anda, atau tampalkannya ke dalam penyemak, untuk mengetahui sama ada proksi membalas 407 atau 502.

  2. 2

    Untuk 407: masukkan kelayakan dengan betul

    Dalam skrip, gunakan cangkuk pengesahan pustaka dan elakkan daripada meletakkan user:pass dalam --proxy-server.

  3. 3

    Untuk 502: cuba laman web lain

    Muatkan laman web besar seperti example.com melalui proksi yang sama. Jika ia berjaya dimuatkan, masalah berpunca daripada destinasi asal.

  4. 4

    Jalankan semula dan sahkan IP keluar

    Sebaik sahaja terowong dibuka, layari IP saya dalam pelayar yang sama untuk mengesahkan bahawa trafik melalui proksi.

Soalan lazim

Mengapakah halaman http boleh dimuatkan sedangkan halaman https gagal?

Halaman http biasa tidak memerlukan CONNECT; proksi memajukan permintaan secara terus. Hanya https yang membuka terowong, jadi ralat terowong hanya muncul pada protokol tersebut.

Apakah punca ERR_TUNNEL_CONNECTION_FAILED pada Android?

Kebanyakannya disebabkan oleh aplikasi yang tidak dapat menghantar nama pengguna dan kata laluan ke proksi Wi-Fi. Cuba buka laman yang sama dalam Chrome untuk Android; jika Chrome meminta log masuk dan memuatkannya, puncanya adalah aplikasi tersebut.

Bolehkah saya meletakkan user:pass di dalam --proxy-server?

Tidak. Chrome mengabaikan kelayakan dalam bendera itu, menyebabkan ralat 407 dan kegagalan terowong. Sebaliknya, sahkan kelayakan melalui Puppeteer, Playwright atau sambungan pelayar.

Adakah beralih kepada SOCKS5 akan menyelesaikan ralat terowong?

Hanya jika pesanan anda adalah untuk SOCKS5. VinaProxy menyediakan kedua-dua HTTP(S) dan SOCKS5; pilih protokol yang tertera pada pesanan anda di papan pemuka kerana ketidakpadanan protokol akan menimbulkan ralat lain.

Proksi yang serasi dengan Puppeteer dan Playwright

Proksi VinaProxy menggunakan log masuk user:pass standard yang disokong secara terus oleh pustaka automasi popular.

Lihat harga

Related articles

Ralat proksi
Cara membetulkan 407 Proxy Authentication Required
Ralat 407 Proxy Authentication Required bermaksud proksi membalas tetapi menolak log masuk anda. Lihat output curl sebenar, punca dan cara mengatasinya.
Ralat proksi
Ralat proksi 502 Bad Gateway: ketahui pihak yang menghantarnya
Ralat 502 Bad Gateway melalui proksi bermakna pelayan perantara tiada jawapan sah. Ketahui punca sama ada proksi atau laman web melalui output sebenar curl.
Persediaan proksi
Cara menyediakan proksi dengan pengesahan dalam Puppeteer (Node.js)
Konfigurasikan proksi HTTP(S) dengan pengesahan dalam Node.js Puppeteer menggunakan parameter --proxy-server dan await page.authenticate(). Salin contoh ini.
Persediaan proksi
Cara menyediakan proksi dalam Playwright (Autentikasi Browser & Per-Konteks)
Sediakan proksi HTTP(S) berautentikasi dalam Playwright untuk Node.js dan Python, serta jalankan pelbagai IP statik terasing pada BrowserContexts. Salin contoh.
Persediaan proksi
Cara menyediakan proksi berautentikasi dalam Selenium WebDriver
Konfigurasi proksi HTTP(S) berautentikasi username:password dalam Selenium WebDriver guna selenium-wire atau sambungan Chrome onAuthRequired. Lihat kod.
Alat percuma
Pemeriksa Proksi: Semak Proksi Anda Dalam Talian
Pemeriksa proksi percuma: tampal hingga 100 proksi format ip:port:user:pass; semak status, IP keluar serta kependaman dalam talian. Fahami maksud setiap ralat.
Persediaan proksi
Cara Mengkonfigurasi Proksi dalam Google Chrome
Konfigurasi proksi HTTP(S) VinaProxy di Google Chrome tanpa mengubah IP OS anda menggunakan sambungan, flag --proxy-server atau profil pengguna berasingan.
Persediaan proksi
Cara Mengkonfigurasi Proksi pada Windows 10 & Windows 11
Konfigurasi proksi HTTP(S) VinaProxy di Windows 10 & 11 menggunakan Tetapan Sistem WinINET, Pemboleh Ubah Persekitaran PowerShell, atau netsh winhttp.