VVinaProxy

رفع خطای ERR_TUNNEL_CONNECTION_FAILED هنگام استفاده از پروکسی

Updated:

برای بارگذاری یک صفحه https:// از طریق پروکسی، مرورگر یک درخواست CONNECT ارسال می‌کند و منتظر می‌ماند تا پروکسی یک تونل به سایت باز کند. خطای ERR_TUNNEL_CONNECTION_FAILED زمانی رخ می‌دهد که پروکسی به جای موافقت، با یک خطا به این درخواست پاسخ دهد. مشکل اینجاست که Chrome نوع خطا را به شما اعلام نمی‌کند، بنابراین اولین کار پیدا کردن کد خطای واقعی است.

پروکسی‌هایی سازگار با Puppeteer و Playwright

دو موردی که بازتولید کردیم

هر دو مورد روی یک پروکسی آزمایشی اجرا شدند که در اینجا با آدرس مستنداتی 203.0.113.10:8080 و user123:pass456 بازنویسی شده‌اند. در یک پنجره معمولی Chrome، خطای 407 به خطای تونل تبدیل نمی‌شود؛ در عوض، Chrome پنجره‌ای برای ورود نام کاربری و رمز عبور پروکسی باز می‌کند. بنابراین، خطاهای تونل ناشی از 407 بیشتر در ابزارهای اتوماسیون و برنامه‌هایی ظاهر می‌شوند که امکان درخواست رمز عبور را ندارند.

پاسخ پروکسی به CONNECTآنچه Chrome نشان می‌دهدآنچه curl نشان می‌دهد
407 بدون امکان وارد کردن رمز عبور (headless Chrome)ERR_TUNNEL_CONNECTION_FAILEDcurl: (56) CONNECT tunnel failed, response 407
502 به دلیل عدم دسترسی پروکسی به سایتERR_TUNNEL_CONNECTION_FAILEDcurl: (56) CONNECT tunnel failed, response 502

علت‌ها، به ترتیب احتمال

  • اسکریپت اتوماسیون اطلاعات ورود را ارسال نمی‌کند. فلگ --proxy-server در Chrome فقط host و port را می‌پذیرد، نه user:pass را. نسخه headless برنامه‌های Puppeteer یا Selenium خطای 407 دریافت کرده و شکست در برقراری تونل را گزارش می‌کنند.
  • برنامه موبایل در شبکه Wi-Fi دارای پروکسی محافظت‌شده با رمز عبور. این برنامه پنجره لاگین ندارد، بنابراین ارتباط HTTPS قطع می‌شود در حالی که مرورگر همچنان کار می‌کند.
  • پروکسی نمی‌تواند به مقصد دسترسی پیدا کند. پروکسی در پاسخ به CONNECT کد 502 برمی‌گرداند؛ صفحه خطای 502 Bad Gateway این موضوع را به طور کامل پوشش می‌دهد.
  • فقط برخی از سایت‌ها باز نمی‌شوند. مقصد مسدود شده یا از دسترس خارج است، در حالی که سایت‌های دیگر از طریق همان پروکسی کار می‌کنند.

یافتن کد خطای واقعی با یک دستور curl

دستور curl -v -x http://user123:[email protected]:8080 https://example.com را با مقادیر اختصاصی خود اجرا کنید. خط دقیقاً بعد از > CONNECT example.com:443 HTTP/1.1 را بررسی کنید: کد 407 یعنی باید راهنمای 407 را دنبال کنید؛ کد 502 به مقصد یا مسیر پشت پروکسی اشاره دارد. اگر ترجیح می‌دهید از ترمینال استفاده نکنید، این خط را در بررسی‌کننده پروکسی وارد کنید که در شرایط مشابه auth failed (407) یا HTTP 502 را گزارش می‌دهد.

راه‌حل‌ها بر اساس محیط

  • Puppeteer: هنگام راه‌اندازی --proxy-server=http://host:port را نگه دارید و قبل از هدایت به صفحه، page.authenticate({ username, password }) را فراخوانی کنید. نمونه کامل در راهنمای پروکسی Puppeteer.
  • Playwright: هنگام راه‌اندازی مرورگر، proxy: { server, username, password } را ارسال کنید تا Playwright خطای 407 را به طور خودکار برطرف کند؛ به Playwright مراجعه کنید.
  • Selenium: مرورگر Chrome اطلاعات user:pass را از طریق خط فرمان قبول نمی‌کند؛ راهنمای Selenium روش‌های کاربردی را نشان می‌دهد.
  • Chrome در Windows: اگر پنجره ورود هرگز ظاهر نمی‌شود، بررسی کنید آیا یک افزونه پروکسی مانع از نمایش آن می‌شود یا خیر، سپس در پنجره‌ای بدون افزونه مجدداً امتحان کنید.
  • گوشی‌های موبایل: برای برنامه‌هایی که به پروکسی دارای احراز هویت نیاز دارند، از یک برنامه پروکسی با پشتیبانی از user:pass مطابق راهنمای راه‌اندازی Android استفاده کنید.

گام به گام

  1. 1

    تشخیص پاسخ CONNECT

    دستور curl -v -x را با مشخصات پروکسی خود اجرا کنید، یا آن را در ابزار بررسی وارد کنید تا متوجه شوید پروکسی 407 برمی‌گرداند یا 502.

  2. 2

    برای 407: وارد کردن صحیح اطلاعات ورود

    در اسکریپت‌ها، به جای قرار دادن user:pass در --proxy-server، از هوک احراز هویت خود کتابخانه استفاده کنید.

  3. 3

    برای 502: یک سایت دیگر را امتحان کنید

    یک سایت بزرگ مانند example.com را از طریق همان پروکسی باز کنید. اگر کار کرد، مشکل از سایت مقصد اولیه است.

  4. 4

    اجرای مجدد و تأیید IP خروجی

    پس از باز شدن تونل، در همان مرورگر به IP من بروید تا مطمئن شوید ترافیک از پروکسی عبور می‌کند.

پرسش‌های متداول

چرا صفحات http باز می‌شوند اما صفحات https با خطا مواجه می‌شوند؟

پروتکل http ساده به CONNECT نیاز ندارد؛ پروکسی درخواست را مستقیماً فوروارد می‌کند. فقط https یک تونل باز می‌کند، بنابراین خطاهای تونل فقط در آن رخ می‌دهند.

علت خطای ERR_TUNNEL_CONNECTION_FAILED در Android چیست؟

در اغلب موارد، برنامه‌ای که نمی‌تواند نام کاربری و رمز عبور را به پروکسی Wi-Fi ارسال کند. همان صفحه را در Chrome برای Android امتحان کنید؛ اگر Chrome توانست درخواست مشخصات داده و صفحه را باز کند، مشکل از برنامه است.

آیا می‌توان user:pass را درون --proxy-server قرار داد؟

خیر. Chrome اطلاعات ورود در این فلگ را نادیده می‌گیرد که منجر به خطای 407 و خطای تونل می‌شود. در عوض از طریق Puppeteer، Playwright یا یک افزونه احراز هویت کنید.

آیا تغییر به SOCKS5 خطای تونل را برطرف می‌کند؟

تنها در صورتی که سفارش شما SOCKS5 باشد. VinaProxy هر دو پروتکل HTTP(S) و SOCKS5 را ارائه می‌دهد؛ پروتکلی را انتخاب کنید که سفارشتان در پنل نشان می‌دهد، زیرا عدم تطابق باعث خطاهای متفاوتی می‌شود.

پروکسی‌هایی سازگار با Puppeteer و Playwright

پروکسی‌های VinaProxy از ورود استاندارد با user:pass استفاده می‌کنند که کتابخانه‌های معروف اتوماسیون به صورت پیش‌فرض از آن پشتیبانی می‌کنند.

مشاهده قیمت‌ها

Related articles

خطاهای پروکسی
نحوه رفع خطای 407 Proxy Authentication Required
خطای 407 Proxy Authentication Required یعنی پروکسی پاسخ داده اما احراز هویت را رد کرده است. خروجی curl، دلایل احتمالی و راه‌حل هر برنامه را ببینید.
خطاهای پروکسی
خطای 502 Bad Gateway در پروکسی: تشخیص منشأ خطا
خطای 502 Bad Gateway هنگام استفاده از پروکسی یعنی سرور واسط پاسخ معتبری دریافت نکرده است. نحوه تشخیص خطا از سمت پروکسی یا وبسایت به همراه خروجی واقعی curl.
راه‌اندازی پروکسی
نحوه تنظیم پروکسی دارای احراز هویت در Puppeteer (Node.js)
آموزش تنظیم پروکسی‌های دارای احراز هویت HTTP(S) در Node.js Puppeteer با فلگ --proxy-server و await page.authenticate(). نمونه‌کدهای آماده را کپی کنید.
راه‌اندازی پروکسی
نحوه تنظیم پروکسی در Playwright (احراز هویت در سطح مرورگر و Per-Context)
پروکسی‌های احراز هویت‌شده HTTP(S) را در Playwright برای Node.js و Python تنظیم و چندین IP ثابت ایزوله در BrowserContextها اجرا کنید. نمونه‌ها را کپی کنید.
راه‌اندازی پروکسی
نحوه تنظیم پروکسی با احراز هویت در Selenium WebDriver
پیکربندی پروکسی‌های HTTP(S) با نام‌کاربری و رمز عبور در Selenium WebDriver با استفاده از selenium-wire یا افزونه onAuthRequired در Chrome. کد را ببینید.
ابزارهای رایگان
چکر پروکسی: بررسی آنلاین پروکسی‌های شما
چکر رایگان پروکسی: تا 100 پروکسی را به صورت ip:port:user:pass وارد کنید و وضعیت، IP خروجی و تاخیر را آنلاین بررسی کنید. با معنای هر خطا آشنا شوید.
راه‌اندازی پروکسی
نحوه تنظیم پروکسی در Google Chrome
تنظیم پروکسی‌های HTTP(S) شرکت VinaProxy در Google Chrome بدون تغییر IP کل سیستم با استفاده از افزونه‌ها، فلگ‌های proxy-server-- یا پروفایل‌های کاربری مجزا.
راه‌اندازی پروکسی
نحوه تنظیم پروکسی در Windows 10 و Windows 11
پیکربندی پروکسی‌های HTTP(S) متعلق به VinaProxy در Windows 10 و Windows 11 با تنظیمات WinINET سیستم، متغیرهای محیطی PowerShell یا netsh winhttp.