команда ls у ftp> не працює!


17

Я практикував ftp, але зіткнувся з проблемою: команда ls не працює на ftp>. Чому? Я перевірив на 2 віддалених серверах, але ls не працював ні на одному, і давав різний вихід, коли ls був виконаний. Будь ласка, дивіться нижче для двох віддалених коробок.

Нижче показано мій віддалений сервер, на якому я сьогодні встановив 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 on ftp> не працює, то як я перенесу файли з моєї локальної скриньки в цю скриньку, тому що я не можу підтвердитись, чи не передано файли чи ні.

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 on ftp>


3
використовувати пасивний режим. Перевірте головну сторінку свого ftp-клієнта, як її ввімкнути.
Стефан Шазелас

Як дізнатися, який FTP-клієнт працює в моєму кінці?
Раві

@stephane дякую! Я побіг man ftpі знайшов -pваріант використовувати для пасивного режиму. Як man ftpзгадується, ftp - це інтерфейс користувача до стандартного протоколу передачі файлів в Інтернеті: значить, це інтерфейс, а не клієнт ftp !!! Я розумію, що ftp-клієнт використовує цей інтерфейс (ftp) для передачі файлів.
Раві

Відповіді:


26

FTP - стародавній протокол. Він покладається на два TCP-з'єднання: керуюче з'єднання, над яким обмінюються команди, і з'єднання даних для вмісту файлів, а також для виведення таких команд, як ls. Тут відбувається те, що зв’язок управління встановлений, але з'єднання даних не проходять.

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

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

Ви можете перейти на приємніший FTP-клієнт, такий як ncftp або lftp .


Спасибі!! Але чому раптом це питання виникло. Eariler Я зміг запустити ls на ftp>. Але вчора я встановив vsftpd на своєму віддаленому сервері (мій VPS), а також відредагував файл .netrcна своєму локальному вікні (просто поставив хеш на початку рядка в .netrc). Це все, а потім після випуску ls, з яким я стикався. Що може бути причиною того, що ls працював нормально раніше, а з вчорашнього дня не працював?
Раві

Ви праві запропонувати lftp. Я маю досвід роботи з цим. lftpнасправді дивовижно. Також я хотів би додати, що я щойно перевірив, lftpі він прекрасно працює, не маючи жодної проблеми. lsтут (у lftp) відображається вихід правильно.
Раві

3

Повне повне рішення для "ftp 500 незаконної команди PORT". Перейдіть за наступним посиланням: http://www.ucodice.com/articles/ftp-500-illegal-port-command/ .

Уривок

Спроба підключити ftp-сервер і отримати команду 500 незаконних портів. Ця проблема може виникнути, коли програма 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.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.