האפשרות --preproxy של curl מתחברת לפרוקסי SOCKS לפני הגעה לפרוקסי HTTP או HTTPS. היא תומכת בשרשרת המסוימת הזאת, ולא ברשימה שרירותית של שרתי פרוקסי.

המסלול הוא לקוח → נקודת SOCKS → פרוקסי HTTP → יעד. החליפו את שתי נקודות הקצה לדוגמה בפקודה:

curl --preproxy socks5h://203.0.113.10:1080 --proxy http://203.0.113.20:8080 --noproxy '' --connect-timeout 5 --max-time 20 --verbose https://example.com/

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

מציאת השלב שנכשל

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

קראו את המעקב המפורט לפי סדר החיבורים. כשל SOCKS בהגעה לפרוקסי השני קודם להחלטת פרוקסי HTTP אם לקבל או לדחות CONNECT לאתר. תעדו איזו לחיצת יד נכשלה.

מתי השלב הנוסף עוזר

הסידור יכול להועיל כשאפשר להגיע לפרוקסי HTTP מורשה דרך מסלול SOCKS. הוא מוסיף גם שירות ונתיב רשת שעלולים להיכשל או להוסיף השהיה. שרשור נקודות מרשימת פרוקסי ציבורית אינו מבטיח אמינות או אנונימיות ועדיין מחייב אמון בגורמים המטפלים בחיבור.

--preproxy דורש curl 7.52.0 ומעלה; יישומים אחרים עשויים לא לתמוך באותו סידור.

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