Default to passive mode. See SF bug #126851.
This is slightly controversial, but after reading the argumentation in
the bug tracker for and against, I believe this is the right solution.
Let me know if it breaks for you, and how.
diff --git a/Lib/ftplib.py b/Lib/ftplib.py
index 5d0e260..ebb4d15 100644
--- a/Lib/ftplib.py
+++ b/Lib/ftplib.py
@@ -113,7 +113,7 @@
- port: port to connect to (integer, default previous port)'''
if host: self.host = host
if port: self.port = port
- self.passiveserver = 0
+ self.passiveserver = 1
self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.sock.connect((self.host, self.port))
self.file = self.sock.makefile('rb')