Hallo,
Zitat von
DelTurbo:
Folgendes habe ich rausgefunden. Dreht man den kram rum, also statt
Server.SiteToSiteUpload(FTPHinterdemRouter....
nach
FTPHinterdemRouter.SiteToSiteDownload(Server....
dann klappt es. Wieso? Keine ahnung. Die befehle STOR und RETR bleiben ja gleich.
Sieht eindeutig danach aus, dass die Ports auf dem Router erst dann geöffnet werden, wenn der "FTPHinterdemRouter" etwas anfordert. Also: Portbereich des Servers prüfen und im Router freigeben. NAT ist nicht lustig
, das hat aber zum Glück nichts mit
Indy zu tun.
Und: Das Du ein .List erst nach PassiveUseControlHost machen kannst zeigt, das der
FTP Server nicht seine Public
IP postet. Passiv und PassiveUseControlHost sind da schon richtig.
TryNATFastTrack und UseExtensionDataPort wären z.B. für neuere Commandos, insbesondere IPv4 und IPv6 Kompatibilität (EPRT, EPSV, da PORT und PASV nur für IPv4 gültig sind).
Aber das von Dir geschilderte ist schon recht eindeutig... Die meisten NATs in den meisten "Routern" ist nicht dolle um es mal nett zu sagen.
Gruß Assertor