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 מקבל מארח ופורט בלבד, ללא user:pass. סביבת Puppeteer או Selenium במצב headless מקבלת 407 ומדווחת על כשל במנהור.
  • אפליקציה בנייד מאחורי פרוקסי Wi-Fi המוגן בסיסמה. באפליקציה אין חלונית התחברות, ולכן חיבור ה-HTTPS נכשל בזמן שהדפדפן ממשיך לפעול כרגיל.
  • הפרוקסי אינו מצליח להגיע ליעד. הוא מחזיר 502 לבקשת CONNECT; המדריך 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) עם אימות ב-Puppeteer עבור Node.js באמצעות הדגל --proxy-server ו-await page.authenticate(). העתיקו את דוגמאות הקוד הפועלות.
הגדרת פרוקסי
כיצד להגדיר פרוקסי ב-Playwright (אימות דפדפן ואימות לפי Context)
הגדירו פרוקסי HTTP(S) עם אימות ב-Playwright עבור Node.js ו-Python, והפעילו כתובות IP סטטיות מבודדות בריבוי BrowserContexts. העתיקו את הדוגמאות.
הגדרת פרוקסי
כיצד להגדיר פרוקסי עם אימות ב-Selenium WebDriver
הגדירו פרוקסי HTTP(S) עם אימות שם משתמש וסיסמה ב-Selenium WebDriver באמצעות selenium-wire או תוסף Chrome מסוג onAuthRequired. צפו בדוגמאות הקוד.
כלים חינמיים
בודק פרוקסי: בדיקת הפרוקסים שלכם אונליין
בודק פרוקסי חינם: הדביקו עד 100 פרוקסים בתבנית ip:port:user:pass ובדקו סטטוס אונליין, כתובת exit IP וזמן תגובה (latency). גלו מה הפירוש של כל שגיאה.
הגדרת פרוקסי
איך להגדיר פרוקסי ב-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.