ההתחברות ל-FTP משתמשת בחיבור בקרה. לאחר מכן רשימת תיקייה או הורדה זקוקה לחיבור נתונים, שעלול להיכשל גם כשההתחברות דרך SOCKS הצליחה.

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

שילוב סוקטים ב-Ruby

Net::FTP API של Ruby מתעד את התנהגות החיבור ומצב פסיבי. שילוב SOCKS חייב לכסות את יצירת הסוקט שבה משתמשים גם נתיב הבקרה וגם נתיב הנתונים; הגדרת פרוקסי של לקוח HTTP במקום אחר אינה מגדירה אותם.

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

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

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

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