כיצד לתקן שגיאת 407 Proxy Authentication Required
Updated:
שגיאת 407 היא בשורה טובה יותר ממה שנדמה: המכשיר שלכם הגיע לפרוקסי ונתיב הרשת פתוח. הפרוקסי פשוט מודיע שהוא לא קיבל שם משתמש וסיסמה תקינים. זו הסיבה שכמעט כל שגיאת 407 נפתרת ברמת פרטי הגישה, ולא בנתב או בחומת האש שלכם.
הגורמים לשגיאת 407, מהסביר ביותר ומטה
- שם משתמש או סיסמה שגויים או חסרים. תו בודד שהוקלד לא נכון, או רווח עודף שהועתק יחד עם הסיסמה. זהו ההסבר למרבית הדיווחים על 407.
- הדבקת שדות בתיבות הלא נכונות. כל השורה
ip:port:user:passמודבקת בתיבת ה-Host, או ששם המשתמש מגיע לתיבת הסיסמה. חלק מהכלים מפצלים את ארבעת השדות עבורכם, ואחרים לא. - האפליקציה אינה שולחת פרטי גישה כלל. הגדרת פרוקסי ברמת מערכת ההפעלה שומרת רק את הכתובת והפורט. אפליקציות שאינן יודעות להציג בקשת סיסמה מתחברות ללא כותרת אימות ומקבלות שגיאת 407 בחזרה.
- תווים מיוחדים בתוך כתובת ה-URL של הפרוקסי. במבנה
http://user:pass@host:port, תווים כגון@,:או#בסיסמה חייבים קידוד אחוזים (@הופך ל-%40), אחרת המחרוזת מפוצלת במקום הלא נכון.
איך שגיאת 407 נראית בפועל
שחזרנו את השגיאה על פרוקסי לבדיקה, המוצג כאן עם כתובת התיעוד 203.0.113.10:8080 ופרטי הגישה השגויים בכוונה user123:pass456. מול אתר HTTPS, הפקודה curl -x http://user123:[email protected]:8080 https://example.com מדפיסה curl: (56) CONNECT tunnel failed, response 407. מול אתר HTTP רגיל עם -w %{http_code}, curl מדפיס פשוט 407.
הוסיפו -v כדי לראות אם פרטי הגישה נשלחו בכלל. ה-trace מציג > CONNECT example.com:443 HTTP/1.1, לאחר מכן > Proxy-Authorization: Basic ..., ורק אז את ה-407. אם השורה Proxy-Authorization חסרה, הלקוח שלכם מעולם לא שלח את פרטי ההתחברות.
ה-proxy checker של VinaProxy מדווח על אותו מקרה בתור auth failed (407). דפדפן Headless Chrome, שאין לו חלונית התחברות, מציג זאת כ-ERR_TUNNEL_CONNECTION_FAILED; ראו את עמוד שגיאת המנהור.
פתרונות לפי סביבת עבודה
- Windows ו-Chrome: דפדפן Chrome פועל לפי הגדרות הפרוקסי של Windows (הגדרות > רשת ואינטרנט > פרוקסי), המחזיקות רק כתובת ופורט. בטעינת העמוד הראשונה Chrome פותח חלונית התחברות עבור שם המשתמש והסיסמה של הפרוקסי. אם הקלדתם אותם שגוי והחלונית אינה מופיעה שוב, סגרו את כל חלונות Chrome ופתחו מחדש.
- דפדפני אנטי-דיטקט (AdsPower, GoLogin, GenLogin): שמרו על שדות Host, Port, Username ו-Password מופרדים. נקו לחלוטין את שדה הסיסמה והדביקו אותה שוב במקום לערוך אותה. עזרה מפורטת לפי שדות זמינה ב-מדריך הגדרת GoLogin.
- טלפונים ניידים: ב-iPhone יש מתג אימות תחת הגדרות > Wi-Fi > (i) > קביעת תצורת פרוקסי; השארתו כבוי מייצרת שגיאת 407. Android בדרך כלל מקבל רק host ו-port, ולכן אפליקציות הדורשות התחברות עשויות להציג שגיאת חיבור כללית במקום זאת.
- curl: העבירו את
-U "user:pass"בנפרד במקום להטמיע אותו בתוך ה-URL, מה שעוקף בעיות של תווים מיוחדים. - Python requests: הגדירו את
http://user:pass@host:portעבור שני המפתחותhttpו-httpsבמילון ה-proxies, וקדדו סיסמאות מורכבות באמצעותurllib.parse.quote.
פרטי הגישה נכונים אך שגיאת ה-407 נשארת
השלב הבא הוא להשוות פרוטוקולים. VinaProxy מוכרת פרוקסי HTTP(S) עם התחברות user:pass וגם SOCKS5, לכן בחרו בפרוטוקול המופיע בהזמנה שלכם בלוח הבקרה. אם הבודק מחזיר not socks5, הפורט הזה תומך ב-HTTP ואין להגדיר אותו כ-SOCKS5.
שלב אחר שלב
- 1
העתקת שורת הפרוקסי מלוח הבקרה
פתחו את ההזמנה בלוח הבקרה של VinaProxy והעתיקו את השורה המלאה במקום להקליד אותה.
- 2
בדיקה באמצעות ה-proxy checker
הדביקו אותה ב-proxy checker. תוצאה של
auth failed (407)מאשרת שמדובר בבעיה בפרטי הגישה ולא בבעיית רשת. - 3
הזנה נקייה מחדש של שם המשתמש והסיסמה
נקו את שני השדות בתוכנה שלכם והדביקו אותם מחדש ללא רווחים בתחילה או בסוף.
- 4
התאמת הפרוטוקול להזמנה
הגדירו את סוג הפרוקסי כ-HTTP או SOCKS5 בדיוק כפי שמצוין בהזמנה, ולאחר מכן שמרו.
- 5
מעקב עם curl -v אם הבעיה נמשכת
הריצו
curl -vעם הערכים האמיתיים שלכם ובדקו אם מופיעה שורתProxy-Authorizationלפני ה-407.
שאלות נפוצות
האם שגיאת 407 נגרמת מחסימת הפרוקסי על ידי ה-ISP שלי?
לא. שגיאת 407 נשלחת על ידי שרת הפרוקסי עצמו, כך שהחיבור עבר. נתיב חסום מופיע במקום זאת כ-timeout או כסירוב חיבור; ראו proxy timeout.
מדוע Chrome ממשיך לבקש את פרטי ההתחברות לפרוקסי?
כל הזנה שגויה גוררת שגיאת 407 נוספת ו-Chrome מבקש שוב. בדקו את מקש ה-Caps Lock וודאו שמקלדת וייטנאמית או שיטת קלט אחרת אינה מוסיפה סימני הטעמה לסיסמה.
כיצד מזינים סיסמה המכילה @ בתוך כתובת URL של פרוקסי?
מקודדים אותה: @ הופך ל-%40, : הופך ל-%3A, ו-# הופך ל-%23. ב-curl, הדגל -U מונע לחלוטין את הצורך בקידוד.
ב-Selenium או ב-Puppeteer מופיעה שגיאת מנהור במקום 407. האם זו אותה בעיה?
בדרך כלל כן. דפדפן Headless Chrome אינו יכול להציג חלונית התחברות, ולכן ה-407 מופיע בתור ERR_TUNNEL_CONNECTION_FAILED. ספקו פרטי גישה דרך מנגנון האימות של הספרייה, כפי שמוסבר ב-מדריך Selenium.
פרוקסי פרטי עם פרטי גישה ברורים
כל הזמנה ב-VinaProxy מספקת לכם שורת ip:port:user:pass מוכנה להעתקה פעם אחת ולהדבקה בכל מקום.
צפו במחירי הפרוקסי