Cały mój komputer jest za jednym routerem. Na jednym z nich działa serwer FileZilla. Usiłuję zautomatyzować przesyłanie do serwera za pomocą skryptu wsadowego i wbudowanego ftp.exe w systemie Windows. Skonfigurowałem dynamiczną usługę DNS, aby móc uzyskać dostęp do mojego serwera spoza routera i skonfigurowałem przekierowanie portów w routerze na mój serwer. Mogę się połączyć i przenieść w porządku za pomocą Google Chrome, Eksploratora Windows i klienta FileZilla. Jednak za każdym razem, gdy próbuję użyć ftp.exe (ręcznie lub w skrypcie wsadowym), mogę połączyć się z serwerem, ale jeśli spróbuję zrobić coś, co otworzy połączenie danych (LIST, STOR lub RETR), pojawia się następujący błąd: 425 Nie można otworzyć połączenia danych. Zezwoliłem ftp.exe na zapory ogniowe obu komputerów. Jakieś pomysły, co się dzieje lub jak to naprawić? Nie muszę używać ftp.
EDYCJA Wiem, że mój dostawca usług internetowych blokuje wiele portów, w tym 21 i kilka innych w tym zakresie. Wszystko to jest ustawione na porcie 2121, z pasywnymi portami ustawionymi na 2122-2142, wszystkie zostały przekazane do routera. Być może ftp.exe użyje tylko określonego portu do transmisji danych, który mój dostawca zablokował? Jeśli tak, jak bym to zmienić?
źródło
Windows FTP CLI obsługuje tryb PASYWNY. Użyj „quote pasv”, aby wejść w tryb pasywny.
źródło
quote pasv
faktycznie robi coś w ftp.exe i nie jest tylko pozorowanym poleceniem?Też miałem ten problem. Rozwiązaniem było zatrzymanie zapory antywirusowej (w moim przypadku McAfee), blokowało porty FTP.
źródło