Wenn ich wüsste, was du für ein Programm nimmst, wäre es einfacher zu verstehen.
Für die Kommandoübertragung wird Port 20 verwendet, für die Dateiübertragung jedoch ein zufälliger Port jenseits der 1023-er-Grenze. Die genaue Portnummer wird vom Clienten (bei aktiven FTP) oder vom Server (beim passiven FTP) zugeteilt. Nähere Informationen stehen bei Wikipedia.
Dies ist allerdings nur zu beachten, wenn man den kompletten Ablauf manuell programmieren will. Falls du ein FTP-Programm verwendest, sollte dieses in der Lage sein, den Port automatisch zu öffnen.
In diesem Falle tippe ich auf eine fehlerhafte Firewall oder einen sturen Proxyserver, der nur bestimme Ports zulässt.