חיבור SOCKS יכול להיכשל באופן מקומי לפני שהפרוקסי מספיק לפתור את היעד. בדקו אם הקוד שלכם פתר את היעד בזמן בניית כתובת ה-socket.

עבור socket של Java SOCKS, שמרו על שם המארח של היעד עם כתובת יעד לא פתורה:

Proxy proxy = new Proxy(Proxy.Type.SOCKS,
    new InetSocketAddress("203.0.113.10", 1080));
Socket socket = new Socket(proxy);
socket.connect(InetSocketAddress.createUnresolved(
    "destination.example", 443), 5000);

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

לאחר החיבור, לקוח HTTPS עדיין זקוק ל-הפעלת TLS עבור שם המארח של היעד. עטיפת TLS לא צריכה להשתמש בשם המארח של הפרוקסי כזהות העמית.

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

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