Команда ls в ftp> не работает!

Команда ls в ftp> не работает!

Я практиковался в ftp, но столкнулся с проблемой: команда ls не работает на ftp> . Почему? Я проверил на 2 удаленных серверах, но ls не работал ни на одном из них и выдавал разный вывод при выполнении ls. Пожалуйста, смотрите ниже 2 удаленных поля.

Ниже показан мой удаленный сервер, на котором я сегодня установил vsftpd.

ravbholua@ravbholua-Aspire-5315:~$ ftp rs
Connected to ravi.com.
220 (vsFTPd 3.0.2)
Name (rs:ravbholua): 
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> pwd
257 "/home/ravbholua"
ftp> ls
500 Illegal PORT command.
ftp: bind: Address already in use
ftp> 

Ниже приведен пример для другого удаленного компьютера, на который мне нужно отправить некоторые файлы.Но поскольку ls на ftp> не работает, как мне перенести файлы с моего локального компьютера на этот компьютер, ведь без ls я не могу быть уверен, были ли переданы файлы или нет?

ravbholua@ravbholua-Aspire-5315:~$ ftp 125.21.153.140
Connected to 125.21.153.140.
220---------- Welcome to Pure-FTPd [TLS] ----------
220-You are user number 1 of 10 allowed.
220-Local time is now 04:34. Server port: 21.
220-This server supports FXP transfers
220 You will be disconnected after 2 minutes of inactivity.
Name (125.21.153.140:ravbholua): peacenews
331 User peacenews OK. Password required
Password:
230 OK. Current restricted directory is /
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
200-FXP transfer: from 123.63.112.168 to 10.215.10.80
200 PORT command successful

Обратите внимание, что для вышеуказанной машины после запуска ls на ftp> приглашение не появилось.

На обеих удаленных машинах я получил разный вывод при выполнении ls на ftp>

решение1

FTP — древний протокол. Он использует два TCP-соединения:контрольное соединениепо которым происходит обмен командами, исоединения данныхдля содержимого файлов, а также для вывода команд, таких как ls. Здесь происходит следующее: управляющее соединение установлено, но соединения данных не проходят.

По умолчанию (активный режим) соединения для передачи данных устанавливаются от отправителя к получателю. Для вывода lsданные отправляются сервером, поэтому сервер пытается открыть соединение с клиентом. Это работало хорошо, когда был изобретен FTP, но в настоящее время клиенты часто находятся за брандмауэром или NAT, которые могут поддерживать или не поддерживать активный FTP. Переключитесь в пассивный режим, в котором клиент всегда инициирует соединение для передачи данных.

Проверьте руководство по вашей ftpкоманде, чтобы узнать, как переключиться в пассивный режим по умолчанию. Для одноразового действия passiveобычно достаточно ввести команду.

Возможно, вы захотите переключиться на более удобный FTP-клиент, напримерncftpилифтп.

решение2

Полное решение для "ftp 500 Illegal PORT command". Нажмите на следующую ссылку:http://www.ucodice.com/articles/ftp-500-illegal-port-command/.

Выдержка

Попытка подключиться к ftp-серверу и получение команды 500 Illegal port. Эта проблема может возникнуть, если ftp-программа не настроена для пассивного режима.

Вы можете получить такой фрагмент ошибки:

COMMAND:>              [3/11/2015 1:17:05 PM] PORT 192,168,0,101,196,215    
                       [3/11/2015 1:17:05 PM] 500 Illegal PORT command.    
ERROR:>                [3/11/2015 1:17:05 PM] Syntax error: command unrecognized.    
ERROR:>                [3/11/2015 1:17:05 PM] Failed to establish data socket.

Чтобы решить эту проблему, вы можете определить порт или FTP в файле конфигурации FTP-сервера и определить IP-адрес или PASV-сервер.

Проверьте файл конфигурации на наличие следующих настроек.

pasv_enable=YES
pasv_promiscuous=YES
pasv_max_port=Enter the max port range allowed on your server.
pasv_min_port=Enter the min port range allowed on your server.
pasv_address=Ip Address of your server.

После этого перезапустите службу FTP и проверьте соединение FTP.

Связанный контент