ברירת מחדל של PySocks אינה מנתבת מחדש את ftplib
עקבו אחר ה-sockets ש-ftplib יוצר בפועל במקום להניח ש-set_default_proxy משנה את מימוש ה-socket המובנה של Python.
socks.set_default_proxy() שומר ברירות מחדל עבור אובייקטי PySocks socksocket עתידיים. הוא אינו מחליף את מחלקת ה-socket המובנית של Python. לכן הוא אינו מנתב מחדש את ftplib רק משום שהקריאה מתרחשת לפני חיבור FTP.
עקבו אחר הבונים, לא אחר המשתנה שמחזיק את כתובת ה-proxy. ftplib יוצר חיבור בקרה וחיבורי העברה נוספים. ב-FTP פסיבי, התחברות מוצלחת מוכיחה רק שחיבור הבקרה עבד; גם ל-socket הנתונים המשמש לרישום או להעברת קובץ יש צורך במסלול המיועד.
מתכון שמחליף את socket.socket או עוטף מודול מבצע פעולה אחרת מעבר לקביעת ברירות המחדל של PySocks. הוא עלול להשפיע על ספריות אחרות שחולקות את אותו מודול. שחזור זמני של המקור לאחר מכן אינו מבודד חיבורים מקבילים מהשינוי.
תת-מחלקה מותאמת של ftplib יכולה לכסות את נתיבי החיבור, אך פנים מועתקות נושאות את ההנחות של גרסת ה-Python שממנה הן באו, כולל סימני פסק זמן וטיפול בפרוטוקול. עדכוני הספרייה הסטנדרטית אינם מעדכנים את ההעתק.
בחרו לקוח מתוחזק או אינטגרציה נתמכת עבור ה-proxy ומצב ה-FTP הנדרשים. דוגמה להורדת FTP פסיבית עם PycURL ממחישה נתיב לקוח נפרד. להתאמה בבעלות היישום, זהו איזה בונה פותח כל socket בקרה ונתונים ושמרו על ההתנהגות שמעלה הזרם שהוא מחליף. ערך proxy נכון מועיל רק כאשר הבונים האלה באמת צורכים אותו.