SOCKS5 או SOCKS5h: היכן מתבצע פענוח שמות DNS
השוו פענוח DNS מקומי לפענוח בפרוקסי ב־curl, אבחנו כשלי שמות והבינו מה socks5h מגן עליו ומה לא.
ב־curl בחרו socks5h:// כשהפרוקסי צריך לפענח את שם היעד. בחרו socks5:// כש־curl צריך לפענח אותו מקומית ולשלוח כתובת לפרוקסי. שניהם משתמשים ב־SOCKS5; האות h בסוף היא מוסכמה של כתובת URL בצד הלקוח.
השוו את המצבים תוך החלפת נקודת ההאזנה המקומית בנקודת הקצה SOCKS5 שלכם:
curl --noproxy '' --proxy socks5://127.0.0.1:1080 --connect-timeout 5 --max-time 15 --verbose https://example.com/
curl --noproxy '' --proxy socks5h://127.0.0.1:1080 --connect-timeout 5 --max-time 15 --verbose https://example.com/רק מצב פענוח השמות משתנה. --noproxy '' מנקה את כללי העקיפה של הפרוקסי לקריאות האלה, ומגבלות הזמן תוחמות את משך ההשוואה. האפשרויות הייעודיות המקבילות הן --socks5 ו־--socks5-hostname. השתמשו בשם מארח כיעד: כתובת IP שנכתבת ישירות אינה מצריכה חיפוש שם יעד ולכן אינה יכולה להדגים את ההבדל.
שם יכול להיות מוכר רק בצד אחד
נניח שהפרוקסי פועל ברשת פיתוח שה־DNS שלה מכיר שם של שירות פנימי. המחשב הנייד שלכם עשוי לא להצליח לפענח את השם במצב socks5, ואילו socks5h מאפשר לפרוקסי לפענח אותו. במצב ההפוך, כשהשם מוגדר רק בקובץ hosts של המחשב, דווקא החיפוש המרוחק עשוי להיכשל.
גם DNS ציבורי עשוי להחזיר כתובות שונות מרשתות שונות. הבדל בתוצאות הוא סיבה להשוות את הכתובות שנבחרו ואת הנגישות שלהן, במקום להחליף מיד את הפרוקסי.
- לא ניתן לפענח את שם המארח של הפרוקסי: אף מצב לא יכול להתחיל. הלקוח עדיין מפענח את
proxy.exampleבתוךsocks5h://proxy.example:1080. - החיפוש המקומי של היעד נכשל: בדקו את מפענח השמות של הלקוח או השוו למצב שמעביר את שם המארח לפרוקסי.
- שרת SOCKS דוחה את היעד: בדקו את התשובה ואת המדיניות שלו. חיפוש מקומי מוצלח אינו מוכיח נגישות מהצד המרוחק.
- המנהרה פועלת אבל אימות התעודה נכשל: בדקו את TLS של היעד; בחירה במצב DNS אחר אינה פתרון כללי לבעיות אמון.
שם בדיקה שבשליטתכם ויומני השרת יכולים לאשר איזה סוג כתובת הגיע לפרוקסי שאתם מנהלים. דף שמציג IP יציאה לא יכול לעשות זאת: הוא מדווח על החיבור החוצה, לא על המקום שבו התבצע פענוח ה־DNS.
לתועלת הפרטיות יש היקף מוגדר
חיפוש בצד הפרוקסי מונע חיפוש מקומי של היעד עבור הבקשה הזאת. הוא אינו מצפין SOCKS, אינו מוכיח שהפרוקסי משתמש ב־DNS מוצפן ואינו מנתב תעבורה של יישומים אחרים או של אחזור מוקדם בדפדפן. Requests עם תמיכת SOCKS משתמש באותה הבחנה בין חיפוש מקומי לחיפוש בפרוקסי; לקוחות אחרים עשויים להציע הגדרה במקום צורת ה־URL של curl. בחרו פרוטוקול שהיישום שלכם תומך בו לפני העתקת נקודת קצה מתוך רשימת שרתי פרוקסי SOCKS5.