Я пытаюсь подключиться к FTP-серверу и сделать множество вещей из командного файла. Однако на любом новом компьютере, даже после разрешения портов 20 и 21 входить и выходить, он зависает, когда я запускаю любую команду, такую как ls или cd, с 200 PORT command successful
. Он входит в систему нормально, но как только я пытаюсь что-то сделать, он зависает. Если я выключаю брандмауэр, он работает нормально, но это не идеально. Какие другие порты или настройки я должен изменить?
1 ответ
Порт 21 - это контрольный порт FTP, к которому подключается FTP-клиент. Порт 20 является портом источника соединения данных , где FTP - сервер подключается с при использовании активного режима (т.е. команды PORT
Это означает, что если вы действительно хотите разрешить активный режим FTP, вам нужно разрешить подключения, исходящие из порта 20, вместо того, чтобы разрешить подключение к порту 20.
Во-первых, гораздо лучше не использовать активный режим. В активном режиме сервер подключается к клиенту, что является кошмаром, если задействованы брандмауэры, и еще хуже, если задействован NAT - т.е. практически со всем доступом в Интернет из локальной сети из-за типичного маршрутизатора SoHo.
Вместо этого используйте пассивный режим, который предназначен для работы в ситуациях, когда клиент находится за брандмауэром и / или маршрутизатором, выполняющим NAT. Если, с другой стороны, у вас есть и клиент, и сервер за брандмауэром или NAT, установить соединение для передачи данных очень сложно или даже невозможно (в зависимости от брандмауэра и маршрутизатора).
Другими словами: FTP должен умереть. Если возможно, используйте протоколы, такие как SFTP (не FTPS) или HTTP (S) для передачи данных, так как эти протоколы не вызывают кошмарных проблем, возникающих с FTP.