Подключение к фтп через командную строку. Скачивание, загрузка и удаление файлов с FTP-сервера из командной строки

Чтобы подключиться к серверу 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 реализует обмен файлами с FTP сервером в командной строке Windows. Утилита ftp.exe входит в стандартный дистрибутив всех версий операционных систем семейства Windows и позволяет выполнять обмен с сервером как в командном, так и в интерактивном режиме.

Формат командной строки:

FTP [-v] [-d] [-i] [-n] [-g] [-s:имя_файла] [-a] [-A] [-x:sendbuffer] [-r:recvbuffer] [-b:asyncbuffers] [-w:windowsize] [узел]

-v - Отключение вывода на экран ответов с удаленного сервера.
-n - Отключение автоматического входа при начальном подключении.
-I - Отключение интерактивных запросов при передаче нескольких файлов.
-d - Включение отладочного режима.
-g - Отключение глобализации имен файлов (см. команду GLOB).
-s:имя_файла - Задание текстового файла, содержащего команды FTP, которые будут выполняться автоматически при запуске FTP.
-a - Использование локального интерфейса для привязки соединения.
-A - Анонимное подключение к серверу.
-x:send sockbuf - Переопределение стандартного размера буфера SO_SNDBUF (8192).
-r:recv sockbuf - Переопределение стандартного размера буфера SO_RCVBUF (8192).
-b:async count - Переопределение стандартного размера счетчика async (3)
-w:windowsize - Переопределение стандартного размера буфера передачи (65535).
узел - Задание имени или адреса IP удаленного узла, к которому необходимо выполнить подключение.

Примечания:

Команды mget и mput принимают параметры y/n/q как YES/NO/QUIT.
- для прекращения выполнения команд нажмите комбинацию клавиш CTRL+C .

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

Для получения списка доступных команд можно ввести знак вопроса или команду help

Набор команд:

!
?
append
ascii
bell
binary
bye
cd
close
literal
debug
dir
disconnect
get
glob
hash
help
lcd
ls
mdelete
mdir
mget
mkdir
mls
mput
open
prompt
send
put
pwd
quit
quote
recv
remotehelp
rename
rmdir
status
trace
type
user
verbose

Подсказку по конкретной команде можно получить введя знак вопроса или help и имя команды:

? connect
help connect

Список команд FTP клиента Windows:

! - Временный переход из среды FTP в командную строку Windows (CMD.EXE) . Для возврата в FTP используется команда EXIT
append добавление данных передаваемого файла в конец существующего.
ascii - установка режима передачи файлов в формате ascii (текстовый режим)
bell - выдача звукового сигнала по завершении команды.
binary - установка режима передачи файлов в двоичном формате
bye - завершение сеанса FTP и выход из программы.
cd - изменение текущего каталога на удаленном компьютере
close - завершение сеанса FTP (закрытие соединения, открытого командой open )
delete - удаление указанного файла на удаленном компьютере
debug - переход в режим отладки
dir
disconnect - завершение сеанса ftp. Отключение от сервера FTP без завершения программы.
get - прием файла от сервера FTP
glob - Переключение метасимвольного расширения имен локальных файлов. По умолчанию этот режим включен и позволяет использовать символы * и ? в шаблонах имен файлов.
hash - переключение режима вывода метки хэширования для каждого переданного буфера
help - вывод справочной информации по командам FTP
lcd - смена рабочего каталога локального компьютера
literal - отправка произвольной строки символов в качестве команды ftp
ls - вывод содержимого каталога удаленного компьютера
mdelete - удаление нескольких файлов
mdir - вывод содержимого нескольких каталогов сервера FTP
mget - прием нескольких файлов от сервера FTP
mkdir - создание каталога на сервере FTP
mls - вывод содержимого нескольких каталогов удаленного компьютера
mput - отправка нескольких файлов на сервер FTP open - открыть соединение (подключиться) к серверу FTP
prompt - изменение строки в приглашения к вводу команд в интерактивном режиме.
put - передача одного файла
pwd - отобразить имя текущего рабочего каталога на сервере FTP
quit - завершение сеанса и выход из программы
quote - отправка произвольной команды серверу FTP
recv - прием одиночного файла
remotehelp - получение справки от сервера FTP
rename - переименование файла
rmdir - удаление каталога на сервере
send - передача одиночного файла
status - отображение текущего состояния сеанса - к какому серверу выполнено подключение, тип передаваемых данных, состояние режимов, изменяемых командами FTP
trace - переключение режима трассировки
type - установка типа передачи файлов
user - изменение имени пользователя в сеансе обмена с сервером FTP
verbose - переключение режима детализации при выводе сообщений

Как видно из списка перечисленных команд, стандартный клиент FTP в операционных системах Windows поддерживает далеко не полный перечень стандартных ftp-команд и, что самое неприятное, он не поддерживает команду переключения в пассивный режим (passv ) обмена с сервером FTP, что делает его непригодным для обмена данными с серверами FTP, подключение к которым выполняется с использованием технологии трансляции сетевых адресов NAT . Другими словами, для обмена файлами с внешними, по отношению к подсети клиента, серверами, стандартный FTP-клиент не подходит. Это касается всех версий Windows, включая и Windows 10. Именно этот факт предопределяет область использования утилиты ftp.exe - только в локальных сетях, где возможно прямое TCP-соединение между клиентом и сервером.

Пример сессии с использованием клиента FTP Windows:

open 192.168.1.1 - открыть соединение с сервером 192.168.1.1
user admin - использовать имя пользователя admin при подключении к серверу. В ответ на эту команду сервера запросит пароль.
adminpass - ввод пароля для пользователя admin
ls - отобразить список файлов и папок в удаленном каталоге
get myfile.txt - принять файл myfile.txt из удаленного каталога в текущий локальный каталог.
lcd C:\files - сменить текущий локальный каталог.
get myfile.txt - принять файл myfile.txt из удаленного каталога в текущий локальный каталог (C:\files) .

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

ftp -s:ftpcomm.txt - В файл ftp comm.txt записывается перечень команд, в таком же порядке, в каком они вводились бы в интерактивном режиме. Например, для приема файла binfile.bin в каталог C:\temp.

Команды управления контролем передачи данных, которыми обмениваются "Интерпретатор протокола сервера" и "Интерпретатор протокола пользователя", можно разделить на три большие группы:

Команды управления доступом к системе.

Команды управления потоком данных.

Команды FTP-сервиса.

Рассмотрим несколько наиболее характерных команд из каждой группы. Среди команд управления доступом к системе следует отметить следующие:

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

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

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

REIN . Команда реинициализации. Эта команда очищает все переменные текущего пользователя, сбрасывает параметры соединения. Если в момент подачи команды происходит передача данных, передача продолжается и завершается с прежними параметрами.

QUIT. Команда закрывает управляющий канал. Если в момент подачи команды происходит передача данных, канал закрывается после окончания передачи данных.

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

PORT . Команда назначает адрес и порт хоста, который будет использоваться как активный участник соединения по каналу передачи данных. Аргументами команды являются 32-битный IP адрес и 16-битный номер порта соединения. Эти значения разбиты на шесть 8-битных полей и представлены в десятичном виде: h1, h2, h3, h4, p1, p2, где hN - байты адреса (от старшего к младшему), а pN - байты порта (от старшего к младшему).



PASV. Эта команда отправляется модулю, который будет играть пассивную роль в передаче данных ("слушать" соединение). Ответом на данную команду должна быть строка, содержащая адрес и порт хоста, находящиеся в режиме ожидания соединения в формате команды PORT - "h1, h2, h3, h4, p1, p2".

Команды TYPE, STRU, MODE определяют, соответственно, тип передаваемых данных (ASCII, Image и другие), структуру или формат передачи данных (File, Record, Page), способ передачи (Stream, Block и другие). Использование этих команд очень важно при построении взаимодействия в гетерогенных средах и весьма отличающихся операционных и файловых систем взаимодействующих хостов.

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

RETR. Эта команда указывает модулю "Программа передачи данных сервера" передать копию файла, заданного параметром этой команды, модулю передачи данных на другом конце соединения.

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

Команды RNFR и RNTO должны следовать одна за другой. Первая команда содержит в качестве аргумента старое имя файла, вторая - новое. Последовательное применение этих команд переименовывает файл.

ABOR. Команда предписывает серверу прервать выполнение предшествующей сервисной команды (например, передачу файла) и закрыть канал передачи данных.

Команда DELE удаляет указанный файл.

Команды MKD и RMD , соответственно, создают и удаляют указанный в аргументе каталог.

При помощи команд LIST и NLST можно получить список файлов в указанном каталоге.

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

Обработчик команд возвращает код обработки каждой команды, состоящий из трех цифр. Коды обработки составляют определенную иерархическую структуру и, как правило, определенная команда может возвратить только определенный набор кодов. За кодом обработки команды следует символ пробела - , затем следует текст пояснения. Например, строка успешного завершения операции выглядит следующим образом: "200 Command okay.

Ниже приведен пример работы с FTP-протокола. Обозначения: S - сервер, U - пользователь.

S: 220 Service ready for new user

> S: 331 User name okay, need password

S: 230 User logged in, proceed

U: RETR test.txt

S: 150 File status okay; about to open data connection

<Идет передача файла...>

S: 226 Closing data connection, file transfer successful

S: 200 Command okay

U: STOR /home/images/first.my

S: 550 Access denied

Команды и отклики передаются по управляющему соединению между клиентом и сервером в формате NVT ASCII. В конце каждой строки команды или отклика присутствует пара CR, LF.

Единственные команды Telnet (начинающиеся с IAC), которые могут быть отправлены клиентом серверу - это команда прерывания процесса () и Telnet сигнал синхронизации ( в режиме срочности). Мы увидим, что эти две команды Telnet используются для прекращения передачи файла или для того, чтобы отправить серверу запрос в процессе передачи. Если сервер получает от клиента команду с Telnet опцией (WILL, WONT, DO или DONT), он отвечает либо DONT, либо WONT.

Команды состоят из 3 или 4 байт, а именно из заглавных ASCII символов, некоторые с необязательными аргументами. Клиент может отправить серверу более чем 30 различных FTP команд. В таблице 5.1 показаны некоторые наиболее широко используемые команды, большинство из которых мы рассмотрим в этой главе.

Таблица 5.1

Распространенные FTP команды.

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

Стандартная утилита Windows "FTP-клиент" из командной строки (CMD) - для резервного копирования или скачивания файлов без вашего участия (автоматически).

  1. open - подключение к удаленному хосту по FTP ;
  2. cd - переход в другой каталог на сервере;
  3. bin - бинарный режим передачи данных между сервером и клиентом;
  4. put - передача файлов на FTP ;
  5. bye - завершение сеанса с сервером и выход.

Дабы освоить FTP-клиент windows и начать работать с ним, попробуем осуществить подключение к любому FTP-серверу в консольном режиме, например 213.43.125.75.

Вводим open 213.43.125.75 (это IP-адрес FTP-сервера), вместо него вводим адрес или домен нужного Вам сервера FTP, от вас потребуется ввести имя пользователя и пароль. После успешной авторизации создаём папку для размещения архивов на FTP, не долго думая, именуем ее backup (папка создаётся командой mkdir). Теперь переходим в созданный нами каталог следующей командой: cd back-up. На следующем этапе копируем файл на сервер, для чего требуется устанавливить режим передачи файлов в "бинарный" командой bin без какихлибо параметров. И теперь уже вводим put D:/back-up/back-up.zip, где параметром команды put будет полный путь к копируемому файлу. При копировании можно указавать маску в каталоге например: D:/back-up/*.zip (*.zip - все файлы с расширением "zip"). После копирования, закрываем соединение с сервером командой bye.

Чтобы наш FTP клиент делал всё автоматически, не задавая вопросов, создадим для него сценарий. Ниже приведён текстовый файл (назовем его back-up.ftp и сохраним в корень диска C:/ - для простоты использования и написания в строку запуска), содержащий в себе ряд команд для FTP клиента, которые будут автоматически выполняться при запуске FTP-клиента из командной строки.

Open 213.43.125.75 (вместо цифр - адрес нужного FTP сервера)
пользователь
пароль
cd back-up (переход в существующий каталог на FTP сервере)
bin (Режим передачи - бинарный)
put D:/back-up/back-up.zip (Путь к файлу на вашем компьютере)
bye (Завершение соединения)

В итоге должен получиться файл back-up.ftp следующего содержания:

open 213.43.125.75
пользователь
пароль
cd back-up
bin
put D:/back-up/back-up.zip

  • Сергей Савенков

    какой то “куцый” обзор… как будто спешили куда то