החליפו את 127.0.0.1:8080 בנקודת קצה של השירות שלכם או מתוך רשימת שרתי פרוקסי HTTP, והריצו את הפקודה מול יעד HTTPS שאינו מזיק:

curl --noproxy '' --proxy http://127.0.0.1:8080 --connect-timeout 5 --max-time 15 --verbose https://example.com/

כתובת הלולאה החוזרת מציינת נקודת האזנה במחשב שלכם. הפקודה בוחרת בה במפורש, מנקה את רשימת עקיפת הפרוקסי של curl עבור הקריאה הזאת, ומקצה חמש שניות להקמת החיבור וחמש־עשרה שניות בסך הכול. היא אינה משנה את הגדרות הפרוקסי של הדפדפן או המערכת.

השתמשו בקובץ ההפעלה האמיתי של curl אם המעטפת מגדירה את curl ככינוי לתוכנית אחרת; curl --version מזהה את גרסת הבנייה. אם נקודת ההאזנה עצמה דורשת TLS, השתמשו בסכמת כתובת הפרוקסי שמפורטת בתיעוד שלה.

קראו ארבע תוצאות, לא רק סימן הצלחה אחד

  1. חיבור לפרוקסי שנבחר: הכתובת והיציאה נגישות.
  2. CONNECT התקבל: הפרוקסי פתח מנהרה ליעד ה־HTTPS.
  3. תעודת היעד אומתה: TLS הושלם עם בדיקות האמון הצפויות.
  4. תגובת היעד התקבלה: בדקו את המצב והתוכן כדי להבין אם התוצאה מתאימה לצורכי היישום.

יעד יכול להחזיר 403 או 429 גם אחרי הקמת מנהרה תקינה. curl עשוי גם להסתיים בהצלחה לאחר קבלת תגובת שגיאת HTTP, ולכן יש לתעד גם את מצב התגובה וגם את תוצאת השגיאה של curl. חיבור TCP או CONNECT מוצלח לבדם אינם מספיקים.

תוצאה תמציתית להשוואות חוזרות

במעטפת דמוית Unix, ותרו על גוף התגובה והדפיסו את מצב המנהרה, מצב היעד, הצד השני בחיבור והזמן שחלף:

curl --noproxy '' --proxy http://127.0.0.1:8080 --connect-timeout 5 --max-time 15 --silent --show-error --output /dev/null --write-out 'http=%{http_code} connect=%{http_connect} peer=%{remote_ip} total=%{time_total}\n' https://example.com/

http_connect מתאר את תגובת המנהרה; http_code מתאר את תגובת ה־HTTP הסופית. remote_ip הוא הצד השני בחיבור של curl, ולא מדידה עצמאית של כתובת היציאה של הפרוקסי. במערכות אחרות החליפו את /dev/null או שמרו את גוף התגובה.

אם הבדיקה נכשלת, אתרו את שלב הקמת החיבור או ההעברה שנכשל, והשוו גישה ישירה לאותו יעד במקום שבו המסלול הזה מותר:

curl --noproxy '*' --connect-timeout 5 --max-time 15 --verbose https://example.com/

--noproxy '*' עוקף פרוקסי. כשל באימות התעודה בשני המסלולים מצביע על בעיית אמון משותפת; גישה ישירה מוצלחת לצד דחיית CONNECT מצביעה על אימות מול הפרוקסי או על המדיניות שלו. בדקו את הפלט המפורט לפני שיתוף, כי הוא עלול להכיל מידע מזהה.

שמרו את נקודת הקצה, היעד וחותמת הזמן יחד עם התוצאה. כך מתועד מה עבד עבור אותה בקשה; זמינות בעתיד, פרטיות וביצועים תחת עומס דורשים ראיות נפרדות.

מאמרים קשורים