Как проверить ftp соединение из командной строки. Скачивать и закачивать файлы по FTP используя консоль

Прочие модели 26.04.2019
Прочие модели

7 ответов

Windows фактически не поддерживает пассивный режим.

Вы можете отправить команду на сервер тремя разными способами, но это не позволит включить пассивный режим на стороне клиента Windows.

Эти аргументы предназначены для отправки различных команд, а pasv - это не то, о чем думала Microsoft, когда они ее написали.

Вам нужно будет найти стороннее программное обеспечение, такое как WinSCP, которое поддерживает использование командной строки и использует это вместо родного Windows.

Клиент командной строки Windows FTP (ftp.exe) не поддерживает пассивный режим в любой версии Windows. Это делает его сегодня бесполезным из-за вездесущих брандмауэров и NAT.

Использование quote pasv не поможет. Он переключает только сервер в пассивный режим, но не клиент.

Вместо этого используйте любой другой клиент командной строки Windows FTP. Большинство других поддерживают пассивный режим.

Клиент CURL поддерживает протокол FTP и работает в пассивном режиме. Загрузите версию WITHOUT SSL, и вам не нужны библиотеки openssl.dll. Только одно приложение командной строки curl.exe.

Curl.exe -T c:\test\myfile.dat ftp://ftp.server.com/some/folder/myfile.dat --user myuser:mypwd

Другим является Putty psftp.exe, но запрос проверки ключа сервера требует трюка. Эта командная строка вводит NO для клавиши подсказки подсказки, которая не хранится в реестре только в этот раз. Вам нужен внешний script файл, но иногда он хорош, если вы копируете несколько файлов вверх и вниз.
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

Echo n | psftp.exe ftp.server.com -l myuser -pw mypwd -b script.txt

script.txt(любая команда ftp может быть напечатана)

Put "C:\test\myfile.dat" "/some/folder/myfile.dat" quit

Команда quote PASV не является командой программы ftp.exe , это команда FTP-сервера, запрашивающая порт высокого порядка для передачи данных. Пассивная передача - это та, в которой данные FTP по этим портам высокого порядка, в то время как управление поддерживается в нижних портах.

Программа windows ftp.exe может использоваться для отправки команд FTP-сервера для пассивной передачи данных между двумя FTP-серверами. Стандартная установка Windows не будет и, вероятно, не должна иметь службу FTP-сервера, работающую как конечную точку для пассивных передач. Поэтому, если требуется пассивная передача со стандартным окном, требуется другое решение, кроме ftp.exe , как FTPing для localhost, поскольку одно из соединений не будет работать в большинстве оконных сред.

Вы можете осуществлять пассивную передачу FTP между двумя разными хостами (но не с двумя соединениями на одном хосте) следующим образом:

Откройте два запроса, используйте один для ftp.exe для подключения к исходному FTP-серверу, а один к ftp.exe подключитесь к вашему FTP-серверу назначения.

Теперь установите пассивное соединение между серверами, используя необработанные команды PASV и PORT. Команда quote PASV ответит IP/портом в многоточии. Используйте эти данные для команды quote PORT . Ваша пассивная ссылка теперь установлена, если брандмауэры не заблокировали один или несколько из четырех портов (2 для управления FTP, 2 для данных FTP)

Затем начните прием данных с помощью команды quote STOR на принимающий FTP-сервер, затем отправьте управляющую команду quote RETR на исходный FTP-сервер.

так для меня:

Client 1 > ftp.exe server1 ftp> quote PASV 227 Entering Passive Mode (10,0,3,1,54,161) client 2 > ftp.exe server2 ftp> quote PORT 10,0,3,1,54,54,161 ftp> quote STOR myFile client 1 ftp> quote RETR myFile

Cavet: я подключаюсь к некоторым старым FTP-серверам YMMV

Это обычная проблема. когда мы запускаем ftp-соединение, только внешний ip открывает порт для соединения pasv. но ip за NAT не открывает соединение, поэтому пассивное соединение терпит неудачу с командой PASV

нам нужно указать, что при открытии соединения так открытое соединение с

Чтобы подключиться к серверу FTP, необязательно использовать какие-либо посторонние программы — это можно сделать и при помощи стандартных возможностей Windows. Для этого можно воспользоваться командной строкой CMD. Но чтобы управлять сервером через стандартные возможности операционной системы, вам придется изучить доступные команды, так как визуального интерфейса у CMD нет. В данной статье вы узнаете основные команды FTP и как применять их на практике.

Почему лучше скачать клиент, чем использовать CMD

Если бы командная строка CMD позволяла выполнять все доступные операции на серверах FTP, то, возможно, в клиентах не было бы нужды. Но реальность такова, что строка CMD весьма ограничена в плане управления сервером. Потому все-таки лучше найдите возможность, и скачайте к себе на компьютер утилиту для управления сервером по FTP. Например, загрузите к себе на ПК программу-клиент FileZilla — ее можно скачать бесплатно с официального сайта разработчиков. На установку много времени не уйдет. А чтобы подключиться к серверу, вам нужно будет всего-навсего ввести логин, пароль и имя хоста в нужную строку. Через CMD это делать гораздо сложнее.

Конкретный недостаток строки CMD в том, что вы даже не сможете перейти в пассивный режим во время пребывания на сервере. А без такого режима у вас не получится обмениваться файлами с серверами FTP, которые работают через NAT.

По сути, это очень большой недочет CMD. Потому смиритесь с тем, что командная строка Windows подойдет только для манипуляций внутри файловой системы без обмена данными. Хотя для тех, кто использует сервер FTP для рутинной однообразной работы, командная строка может показаться весьма удобной. Но лучше попробуйте и клиент, и CMD, чтобы делать какие-либо выводы.

Какие есть команды для управления FTP в командной строке CMD

Для начала запустите командную строку. Сделать это можно при помощи поиска в «Пуске» — найдите файл cmd.exe и откройте его, после чего строка будет запущена.

Чтобы подключиться к серверу, вам нужно воспользоваться командой OPEN. После этой команды необходимо ввести IP-адрес или имя хоста, с которым вы хотите настроить соединение. Уже после введения этого запроса вы сможете залогиниться на сервере. Сделать это можно при помощи команды USER, которая делает запрос на аутентификацию через введенный логин. После вам нужно ввести команду PASS, которая означает пароль. Когда введете пароль, и нажмете «Ввод», вы будете авторизированы на сервере.

В целом, командная строка подходит только для того, чтобы «серфить» по серверу, перемещать файлы и т. п. Для начала вам нужно будет увидеть файлы, которые есть на сервере. Для этого воспользуйтесь командой LS. Поскольку курсора в командной строке нет, вам нужно выделять каталог или файл при помощи специальных команд. Используйте для этого строку CD или LCD — первая нужна для смены текущего объекта на удаленном компьютере, а вторая — для локального, то есть для вашего ПК.

Хоть вы и не сможете загружать на сервер FTP свои файлы через CMD, скачивать данные к себе на компьютер возможно. Для этого используйте команду GET. Сначала пропишите команду GET с названием файла, а потом укажите какой каталог на вашем компьютере является текущим, чтобы сервер передал данные именно в ту папку.

Указанные команды используют чаще всего. То есть большинство пользователей управляют сервером через CMD, чтобы быстро скачивать файлы, не устанавливая предварительно клиент. Но вы можете пойти гораздо дальше, и использовать другие команды на сервере при помощи строки CMD. Например, вы можете добавить сигнальное оповещение о завершении команды на сервере при помощи строки BELL.

Если вы хотите завершить сеанс и выйти из командной строки и сервера, то пропишите BYE. А для прерывания управляющего соединения только на сервере, чтобы вы остались внутри командной строки, напишите CLOSE. При этом файлы, которые вы загружаете на ПК с сервера будут продолжать скачиваться и уже после окончания загрузки сеанс будет полностью прикрыт.

При помощи CMD вы с легкостью сможете манипулировать каталогами на сервере. Например, чтобы удалить указанный каталог, используйте команду DELETE. А чтобы на экране появился перечень файлов определенной папки, пропишите DIR и путь к каталогу. Если вы хотите удалить не одну папку или файл, а сразу несколько, то воспользуйтесь командой MDELETE, то есть мульти-удаление. Точно так же приставку «m» можно использовать и для других команд, чтобы можно объединить несколько действий в одно. Так, для отображения списка файлов сразу нескольких каталогов пропишите MDIR, а для загрузки с сервера пачки данных используйте MGET. Но не путайте мультикоманду с одиночной MKDIR — она нужна для того, чтобы сгенерировать каталог на сервере.

Есть вероятность, что ваш FTP-сервер работает без NAT-технологии, потому пассивный режим клиента и не понадобится. В таком случае у вас получится загружать определенные файлы на хост. Используйте для этого команду MPUT для выгрузки нескольких файлов, и PUT, если вы хотите отправить только один.

Еще одна популярная команда, которая, скорее всего, пригодится и вам — это RENAME. Нужна команда для переименования файлов. Она будет полезна для тех, кто использует сервер в качестве хранилища для данных сайта. Также вам понадобится команда PWD, которая определяет текущую папку на удаленном сервере FTP, а не у вас на компьютере, как это делает строка LCD.

Приведенные команды — это неполный список функций, которые вы можете использовать в FTP. Есть и другие команды. И вы можете узнать о них прямо в командной строке, если введете запрос HELP. После этого появится справочник со всеми доступными командами CMD, которые можно использовать в FTP. Только учтите, что в этот момент вы должны быть подключены к серверу, иначе Windows выдаст вам другой справочник. А если хотите запросить помощь у самого сервера, то пропишите REMOTEHELP.

Разумеется, управление сервером командами — это каменный век. Потому лучше не теряйте время, загружайте на компьютер нормальный FTP-клиент и используйте сервер на максимум, а не частично. Но практика в командной строке CMD еще никому не мешала!

И задумался: а все ли знают, что для работы с FTP-хранилищами вполне достаточно штатных инструментов Windows? В этой статье я опишу три простых метода передачи файлов по FTP на примере . Те же приемы действуют и в . Вам понадобятся всего лишь , Проводник и командная строка.

Способ первый: Internet Explorer 8

Любому пользователю Интернета знакомы HTTP-адреса для доступа к веб-сайтам, которые вводятся в адресной строке браузера - например, . Адреса для доступа к FTP-серверам строятся по такому же принципу: .

Введите в адресной строке адрес общедоступного FTP-хранилища, например, Microsoft (рис. A) и нажмите . В случае успешного подключения вы увидите корневой каталог. Для доступа к подкаталогам и файлам нажмите на основном каталоге. Чтобы загрузить файл, нажмите на нем правой кнопкой мыши и выберите опцию «Сохранить объект как» (Save Target As).

Как видите, на сервере хранятся все статьи базы данных, исправления, обновления, утилиты и документация Microsoft, только представлены они в виде списка с датами. Подробные сведения о FTP-хранилище содержатся в файлах «readme.txt».

Рисунок A. FTP-сервер Microsoft - вид из Internet Explorer 8.

Обратите внимание: для успешного подключения к FTP-серверу с помощью IE должны быть включены опции «Разрешить просмотр FTP-папок (за пределами Internet Explorer)» (Enable FTP folder view (outside of Internet Explorer)) и «Использовать пассивный FTP-протокол (для совместимости с брандмауэрами и DLS-модемами)» (Use Passive FTP (for firewall and DSL modem compatibility)) в разделе «Обзор» (Browsing) на вкладке «Дополнительно» (Advanced) диалогового окна «Свойства обозревателя» (Internet Options). Вызвать его можно из меню «Сервис» (Tools).

Для доступа к частным FTP-серверам необходимо ввести имя пользователя и пароль (рис. B). Однако таким способом в IE 7 или IE 8 можно посмотреть лишь список файлов. Для загрузки придется воспользоваться Проводником (Windows Explorer). Подробнее см. на рис. C, D, E и F.


Рисунок B. Для доступа к частным FTP-серверам требуется имя пользователя и пароль.


Рисунок C. Выберите опцию «Страница | Открыть FTP-узел в Проводнике Windows» (Page | Open FTP Site in Windows Explorer) или «Вид | Открыть FTP-узел в Проводнике Windows» (View | Open FTP Site in Windows Explorer), чтобы запустить Проводник.



Рисунок D. В диалоговом окне с предупреждением безопасности Internet Explorer нажмите кнопку «Разрешить» (Allow).

Все мы знаем сочетание буковок FTP, которое расшифровывается как File Transfer Protocol. Старая, но до сих используемая технология передачи файлов между двумя компьютерами с использованием TCP/IP сети.

Большинство из нас пользуется для работы с этим протоколом какими-либо утилитами или модулями файловых менеджеров. Но давайте представим себе ситуацию, когда нужно получить доступ к FTP-серверу через командную строку. Никаких панелей со списком файлов и кнопочками "Копировать" и "Удалить" там у Вас не будет. (Кстати, я часто именно через командную строку лажу - мне так просто даже быстрее - если приходится что-то сделать или проверить FTP.)

Итак, команда для работы с FTP как в Windows, так и в Unix (включая Linux Debian, CentOS, ubuntu, rhel, FreeBSD и т.д.) одинаковая - так и называется - "ftp".

Просто подсоединиться к определенному серверу - синтаксис тоже отличаться не будет:


А вот хитрости типа автологина и автоматического принятия или отсылки файлов - у разных ОС немного свои и мы здесь их разбирать не будем. Зато разберем - что же через командрую строку все-же сделать можно в самой сессии - и сами команды, конечно.

Итак, начнем. В этой памятке приведены самые часто используемые команды, которые позволят Вам свободно общаться с любым сервером с любым набором опций.

Команды

Присоединиться к указанному серверу.

ftp> open 192.168.0.1


При этом сервер Вас спросит логин и пароль.

CLOSE или DISCONNECT

Закрыть соединение с текущим FTP сервером.

Закрыть соединение и выйти из утилиты FTP.

Залогиниться на данном сервере под указанным пользователем (Вы должны быть уже подключены).

ftp> user myusername


где вместо "myusername" подставьте имя пользователя, под которым логинитесь. FTP-сервер Вас спросит пароль для этого пользователя перед тем, как пустить.

LS или DIR

Показать список файлов и директорий в текущей папке на сервере.

Выгрузить список файлов из нескольких директорий в файл на Ваш компьютер.

ftp> mls dir1 dir2 dir3 mylocalfile.txt

Перейти в указанную папку на сервере.

ftp> cd ../another/folder


Частный случай этой команды: CDUP - перейти в родительскую директорию - то же самое, что и "CD ..":

Перейти у указанную папку на Вашем компьютере.

ftp> cd /home/myusername/ftp

Показать текущий путь (текущую папку) на FTP сервере.

Загрузить с FTP сервера в текущую папку Вашего компьютера указанный файл.

ftp> get myftpfile.txt

Загрузить несколько файлов в текущую папку Вашего компьютера с сервера FTP.

ftp> mget file1.txt file2.txt
mget file1.txt? y
mget file2.txt? y

Загрузить с сервера FTP на Ваш компьютер указанный файл только если Ваш файл старее (т.е. удаленный файл свежее).

ftp> newer myfile1 myfile1


Здесь первый аргумент - имя файла на сервере, а второй аргумент - имя файла на Вашем компьютере.

PUT или SEND

Загрузить на FTP сервер указанный файл с Вашего компьютера.

ftp> put mylocalfile.txt

Загрузить на сервер несколько файлов с Вашего компьютера.

ftp> mput myfile1.txt myfile2.txt
mput myfile1.txt? y
mput myfile2.txt? y

Удалить указанный файл на сервере.

ftp> delete remotefile.txt

Удалить несколько файлов на сервере.

ftp> mdelete file1 file2

Создать директорию на сервере.

ftp> mkdir mynewdir

Удалить директорию на сервере

ftp> rmdir mydir

Вот основные команды. Их, конечно, больше, но именно этот набор позволит Вам успешно работать с любым FTP сервером через командную строку.

Больше Вы, как всегда, можете узнать из справки. Для этого наберите "HELP" в командной строке FTP и получите список поддерживаемых директив.

Пример сессии FTP

Вот пример короткой FTP сессии, в которой мы подключаемся к серверу, создаем папку "newfiles" и заливаем в эту папку файл "binfile.bin".

Для запуска FTP клиента в среде Windows необходимо проследовать по пути "Пуск" -> "Выполнить" далее в строке "Открыть" набрать команду "ftp". Для того что бы получить помощь надо в командной строке клиента набрать команду "help". Описанные действия показаны на рисунке.

Некоторые FTP команды могут отличаться в зависимости от типа компьютерной платформы, но в целом это обычные UNIX команды. Вы всегда можете проверить их список набрав "help" или "?". Кроме того, в вашей системе есть справочная информация о FTP - наберите "man ftp" или "man ftpd", в manual pages содержатся исчерпывающие данные о командах, их синтаксисе.

Ниже мы остановимся только на наиболее общих и полезных, на наш взгляд, для практической работы, командах FTP:

Команда Описание
! [команда[аргументы]] Выход в shell - интерпретатор на локальной системе.
dir [удаленная_директория] [локальный_файл] ls [удаленная_директория] [локальный_файл] Выводит список файлов в директории либо не стандартный вывод, либо, если указано имя локального файла, в этот файл.
get [удаленный_файл] [локальный_файл] Вызывает передачу копии удаленного файла на ваш компьютер. В случае, если имя локального файла не было задано, то оно совпадает с именем удаленного файла.
mget [удаленные_файлы] Для получения нескольких файлов
hash Служит переключателем для индикации каждого полученного блока данных в 1024 байта, повышает наглядность процедуры.
cd [удаленная_директория] Сменить директорию. Существуют также "cdup" или "cd" для возврата на один или выше
lcd Меняет рабочую директорию на локальной машине (без аргумента - переход в домашнюю директорию пользователя)
bin (или binary) Переключает в режим передачи двоичных файлов
ascii Переключает в режим передачи текстовых файлов (обычно по умолчанию).
prompt Переключает интерактивную подсказку. Часто при использовании команды "mget" желательно предварительно набрать "prompt", чтобы не давать многократные подтверждения.
pwd Выводит имя удаленной рабочей директории.
mkdir [имя_директории] Создает директорию на удаленной машине
open хост [порт] Устанавливает соединение с заданным FTP сервером
put [локальный_файл] [удаленный_файл] Пересылает файл на удаленную систему. Если имя удаленного файла не указано, то оно совпадает с именем на локальной системе.
quit Синоним для "bye"
recv [удаленный_файл] [локальный_файл] Синоним для команды "get"
reget [удаленный_файл] [локальный_файл] "Дополучение" удаленного файла в том случае, когда часть его уже есть на локальной машине. Команда особенно полезна для получения больших файлов при возможных резервах соединения.
delete [удаленный_файл] Стирает удаленный файл
close Обрывает FTP сеанс с удаленным сервером и возвращает к командному интерпретатору
bye Оканчивает работу с FTP сервером и приводит к выходу и из интерпретатора.

Анонимные FTP серверы позволяют вам войти в них под именем пользователя "anonymous" или "ftp", например, наберите:

$ftp ftp.microsoft.com.

Когда появится подсказка с именем системы, напечатайте следующее:

Ftp.microsoft.com > login: anonymous ftp

На появившуюся подсказку о пароле вводите:

Password: ваш_адрес_электронной_почты

Последнее не необходимо, но является "правилом хорошего тона" при работе с FTP. После этого вы входите в систему и можете выполнять в ней различные команды в пределах интерпретатора FTP.

Вместо имени FTP сервера вы можете использовать его IP адрес, например 198.105.232.1 для того же ftp.microsoft.com.

Обычно файлы на серверах хранятся, в архивном виде (их форматы будут рассмотрены ниже) в директории /pub. Некоторые серверы допускают выполнение команды "ls-lR" (рекурсивный вывод всех файлов), либо уже содержат индексные файлы со сходным названием, хотя они могут иметь порой очень большой размер - порядка нескольких МБ.

UNIX системы имеют сходную структуру директорий, по которой можно перемещаться, пользуясь командами "cd" или "cwd". В большинстве случаев набор возможных команд один и тот же. Отличия могут быть скорее в других, например, не все анонимные FTP серверы допускают использование команд "put", "mkdir", "del" и т.п.

Важный момент: обрыв передачи файлов. Для этого используйте комбинацию клавиш: Ctrl-C, процесс будет тут же прекращен. Ctrl-D обычно закрывает соединение с удаленным хостом. Таким же образом необходимо действовать при получении сообщения о запуске команды shutdown на системе, с которой вы работаете. Тем не менее, порой локальный процесс ftp администратор системы вынужден "убивать" вручную, старайтесь не доводить его до такого шага.



Рекомендуем почитать

Наверх