Siehe Update unten
Nur bei Active FTP kann der Client über die Ports entscheiden, welche Ports verwendet werden sollen PORT
Befehl:
...
PORT 192,168,0,2,7,123
200 PORT command successful
LIST
...
Der Server wird angewiesen, an Port 192.168.0.2 zu verbinden 7 * 256 + 123 = 1915 . Die beiden Zahlen am Ende sind das höhere und das niedrigere 8 Bit der 16-Bit-Portnummer.
Bei Active FTP stellt der Server jedoch eine Verbindung zum Client her. Dies ist nicht für Clients hinter Firewalls oder NAT-Routern geeignet. Bei Passivem FTP ist das Gegenteil der Fall: Der Client öffnet zusätzliche Verbindungen zum Server. Passives FTP ist somit der De-facto-Standard. Aber mit Passivem FTP der Client kann nicht entscheiden Sie, welchen Port Sie verwenden möchten:
...
PASV
227 Entering Passive Mode (192,168,0,3,7,123).
LIST
...
Nun muss der Client eine Verbindung zur IP-Adresse und zum Port herstellen, die in der Serverantwort angegeben sind ( 227 Entering ...
). Firewalls sind zwar immer noch problematisch, da es sich nicht um einen "bekannten" Port handelt, er wird jedoch auf NAT-Routern ohne FTP-Helfer vollständig unterstützt.
tl; dr : Nur bei aktivem FTP. Active FTP funktioniert jedoch nicht.
Aktualisieren
Nun ist klar, dass es um diese Frage geht ftp.exe
Die obige Erklärung ist meistens irrelevant, weil ftp.exe
unterstützt nur Active FTP. Das Verhalten von ftp.exe
kann nicht gesteuert / modifiziert werden. Ein anderer FTP-Client ist erforderlich.
Die meisten Kunden unterlassen Sie Unterstützung der Konfiguration oder Steuerung des Datenportbereichs. Auszug aus der WinSCP-Handbuch :
Da es in WinSCP nicht möglich ist, einen Bereich der für Datenverbindungen verwendeten Ports zu konfigurieren, müssen alle Ports im dynamischen Windows-Portbereich 49152 - 655354) geöffnet werden.
Möglicherweise möchten Sie Ihre gesamte Vorgehensweise beim Übertragen von Dateien überdenken. FTP ist einfach veraltet. Das Übertragen der Datei mit einem Einzelport-Protokoll (SFTP, HTTP, ...) ist möglicherweise eine bessere Methode.