欢迎访问服务百科信息网!
首页 >科技 >ftp命令
ftp命令

ftp命令

(文件传输协议)
文件传输协议(英语:File Transfer Protocol,缩写:FTP)是一个用于在计算机网络上在客户端和服务器之间进行文件传输的应用层协议。文件传送(file transfer)和文件访问(file access)之间的区别在于:前者由FTP提供,后者由如NFS等应用系统提供。参考文献RFC959定义了此规范。FTP是一个8位的客户端-服务器协议,能操作任何类型的文件而不需要进一步处理,就像MIME或Unicode一样。但是,FTP有着极高的延时,这意味着,从开始请求到第一次接收需求数据之间的时间,会非常长;并且不时的必须执行一些冗长的登录进程。
ftp命令资料
  • 中文名:文件传输协议
  • 外文名:File Transfer Protocol
  • 口令:LOGIN
  • 使用格式:FTP
  • FTP:一个客户机/服务器系统
  • 服务器历史

    原始规范由Abhay Bhushan编写,并于1971年4月16日作为RFC114发布。直到1980年,FTP才在TCP/IP的前身NCP上运行。该协议先被TCP/IP版本,RFC765(1980年6月)取代,后来又被RFC959(1985年10月)所取代,这也是当前规范。RFC959提出了若干标准修改,例如RFC1579(1994年2月)使FTP能够穿越NAT与防火墙(被动模式),RFC2228(1997年6月)提出安全扩展,RFC2428(1998年9月)增加了对IPv6的支持,并定义了一种新型的被动模式。

    概述

    FTP服务一般运行在20和21两个端口。端口20用于在客户端和服务器之间传输数据流,而端口21用于传输控制流,并且是命令通向ftp服务器的进口。当数据通过数据流传输时,控制流处于空闲状态。而当控制流空闲很长时间后,客户端的防火墙会将其会话置为超时,这样当大量数据通过防火墙时,会产生一些问题。此时,虽然文件可以成功的传输,但因为控制会话,会被防火墙断开;传输会产生一些错误。

    FTP虽然可以被终端用户直接使用,但是它是设计成被FTP客户端程序所控制。

    运行FTP服务的许多站点都开放匿名服务,在这种设置下,用户不需要帐号就可以登录服务器,默认情况下,匿名用户的用户名是:“anonymous”。这个帐号不需要密码,虽然通常要求输入用户的邮件地址作为认证密码,但这只是一些细节或者此邮件地址根本不被确定,而是依赖于FTP服务器的配置情况。

    实现的目标

    1. 促进文件的共享(计算机程序或数据)

    2. 主条目:FTP命令列表主条目:FTP服务器返回码主条目:FTPS主条目:SFTP主条目:TFTP

    3. 鼓励间接或者隐式的使用远程计算机

    4. 向用户屏蔽不同主机中各种文件存储系统(File system)的细节

    5. 可靠和高效的传输数据

    主动被动模式

    FTP有两种使用模式:主动和被动。主动模式要求客户端和服务器端同时打开并且监听一个端口以创建连接。在这种情况下,客户端由于安装了防火墙会产生一些问题。所以,创立了被动模式。被动模式只要求服务器端产生一个监听相应端口的进程,这样就可以绕过客户端安装了防火墙的问题。

    一个主动模式的FTP连接创建要遵循以下步骤:

    客户端打开一个随机的端口(端口号大于1024,在这里,我们称它为x),同时一个FTP进程连接至服务器的21号命令端口。此时,该tcp连接的来源地端口为客户端指定的随机端口x,目的地端口(远程端口)为服务器上的21号端口。

    客户端开始监听端口(x+1),同时向服务器发送一个端口命令(通过服务器的21号命令端口),此命令告诉服务器客户端正在监听的端口号并且已准备好从此端口接收数据。这个端口就是我们所知的数据端口。

    服务器打开20号源端口并且创建和客户端数据端口的连接。此时,来源地的端口为20,远程数据(目的地)端口为(x+1)。

    客户端通过本地的数据端口创建一个和服务器20号端口的连接,然后向服务器发送一个应答,告诉服务器它已经创建好了一个连接。

    浏览器支持

    大多数最新的网页浏览器和文件管理器都能和FTP服务器创建连接。这使得在FTP上通过一个接口就可以操控远程文件,如同操控本地文件一样。这个功能通过给定一个FTP的URL实现,形如ftp://<服务器地址>(例如,ftp://ftp.gimp.org)。是否提供密码是可选择的,如果有密码,则形如ftp://:@。大部分网页浏览器要求使用被动FTP模式,然而并不是所有的FTP服务器都支持被动模式。

    安全性

    FTP不是一项安全的协议,并且具有许多安全漏洞。1999年5月发布的RFC2577中列出了以下几个主要的漏洞:

    1. 蛮力攻击

    2. FTP反弹攻击

    3. 数据包捕获

    4. 端口窃取(猜测下一个开放端口并篡夺合法连接)

    5. 欺骗攻击

    6. 用户名枚举

    通过FTP传输的流量不会被加密,所有传输通过明文进行的。任何能够在网络上执行数据包捕获(嗅探)的人都可以读取用户名、密码、命令内容和数据。此问题在加密机制(如TLS或SSL)产生之前的许多Internet协议规范(如SMTP、Telnet、POP和IMAP)中较为普遍。此问题的常见解决方案包括:

    1. 使用协议的安全版本,例如FTPS而不是FTP,TelnetS而不是Telnet。

    2. 使用可以处理作业的不同的,更安全的协议,例如SSH文件传输协议安全复制协议。

    3. 使用安全隧道(如Secure Shell或虚拟专用网)。

    服务器返回码

    包含由IETF在RFC959中标准化的所有服务器返回码。回复代码是一个三位数值,第一个数字用于表示三种可能的结果之一——成功、失败、表示错误或不完整的回复。

    派生品

    FTPS

    FTPS是FTP标准的扩展,添加了安全套接层(SSL)以及其继任者传输层安全性协议(TLS)的支持。

    SSH文件传输协议

    SSH文件传输协议(缩写:SFTP)可用于传输文件并具有类似的用户命令集,但使用Secure Shell协议(SSH)传输文件。与FTP不同,它对命令和数据进行加密,防止密码和敏感信息通过网络公开传输。它无法与FTP兼容。

    小型文件传输协议

    小型文件传输协议(Trivial File Transfer Protocol,TFTP),是一种于1981年在RFC783中定义的简化的文件传输协议(FTP)。

    简单文件传输协议

    简单文件传输协议(Simple File Transfer Protocol)由RFC913定义,其复杂程度介于TFTP和FTP之间。它从未在互联网上被广泛接受。它通过端口115运行,支持三种类型的数据传输:ASCII、二进制和连续。该协议还支持使用用户名和密码登录、文件夹和文件管理(包括重命名、删除、上传、下载)。

    简介

    与大多数Internet服务一样,FTP也是一个客户机/服务器系统。用户通过一个支持FTP协议的客户机程序,连接到在远程主机上的FTP服务器程序。用户通过客户机程序向服务器程序发出FTP命令,服务器程序执行用户所发出的FTP命令,并将执行的结果返回到客户机。

    FTP命令是Internet用户使用最频繁的命令之一,不论是在DOS、Windows的命令行、LINUX、UNⅨ

    还是AⅨ操作系统下都可以使用FTP,都会遇到大量的FTP内部命令,熟悉并灵活应用FTP命令,可以大大方便使用者,并收到事半功倍之效。

    比如说,用户发出一条命令,要求服务器向用户传送某一个文件的一份拷贝,服务器会响应这条命令,将指定文件送至用户的机器上。客户机程序代表用户接收到这个文件,将其存放在用户目录中。

    基础命令

    进入想要连接的FTP站点后,用户就可以进行相应的文件传输操作了,其中一些重要的命令及相似的命令如下:

    1、HELP、RHELP、REMOTEHELP

    HELP显示LOCAL端的命令说明,若不接受则显示所有可用命令;

    ?相当于HELP,例如:?CD:

    RHELP同HELP,只是它用来显示REMOTE端的命令说明;

    REMOTEHELP相当于RHELP。

    2、ASC(ASCll)、bin(BINARY)、IMAGE、TYPE

    ASCⅡ切换传输模式为文字模式(只能用来传送DOC文件,因为是7-BIT);

    BINARY切换传输模式为二进制模式(除文字文件外皆用此模式);

    IMAGE相当于BINARY:

    TYPE让你更改或显示传输模式。

    3、BYE、QUIT

    BYE退出FTP:

    QUIT相当于BYE。

    4、CD、CDUP、LCD、P~WD。

    CD改变当前工作目录,例如:CD\PUB;

    CDUP回到上一层目录,相当于你打CD:

    LCD让你更改或显示LOCAL端的工作目录,例如:LCD\TMP

    PWD显示的工作目录(REMOTE端):

    !让你执行外壳命令,例如:!LS。

    5、DELETE、MDELETE、RENAME

    DELETE删除REMOTE端的文件:

    MDELETE批量删除文件,需配合?或,*

    RENAME更改REMOTE端的文件名。

    6、GET、MGET、PUT、MPUT、RECV、SEND

    GET下传文件

    MGET批量下传文件,需配合万用字元,例如:MGET*.GZ;

    PUT上传文件;

    MPUT批量上传文件,需配合万用字元;

    RECV相当于GET(RECV为RECEIVE的简写):

    SEND相当于PUT。

    7、HASH、PROMPT、VERBOSE、STATUS、BELL

    HASH切换#字号的出现,每一个#字号表示传送了1024/8192BYTES:

    PROMPT切换iNTERACTⅣEON/OFF;

    VERBOSE切换所有文件传输过程的显示;

    STATUS显示的一些参数:

    BELL当指令做完时会发出叫声。

    8、LS、DIR、MLS、MDIR、MKDIR、RMDIR

    LS有点像UNIX下的LS(LIST)命令:

    DIR相当于LS-L(LIST-LONG);

    MLS只是将远端某目录下的文件存于LOCAL端的某文件里;

    MDIR相当于MLS;

    MKDIR像DOS下的MD(创建子目录)一样:

    RMDIR像DOS下的RD(删除子目录)一样。

    9、OPEN、CLOSE、DISCONNECT、USER

    OPEN连接某个远端FTP服务器;

    CLOSE关闭连接;DISCONNECT相当于CLOSE;

    USER再输入一次用户名和口令(有点像UNⅨ下的SU)。

    命令进阶

    语法

    ftp[-d][-g][-i][-n][-v][-f][-krealm][-q[-C]][HostName[Port]]

    -C允许用户指定:通过send_file命令发出的文件必须在网络高速缓冲区(NBC)中经过缓存处理。此标志必须在指定了-q标志的情况下使用。只有当文件在无保护的情况下以二进制方式发送时此标志才适用。

    -d将有关ftp命令操作的调试信息发送给syslogd守护进程。如果您指定-d标志,您必须编辑/etc/syslog.conf文件并添加下列中的一项:

    OR

    user.debug FileName

    请注意:syslogd守护进程调试级别包含信息级别消息。

    如果不编辑/etc/syslog.conf文件,则不会产生消息。变更了/etc/syslog.conf文件之后,请运行refresh-ssyslogd或kill-1SyslogdPID命令,以通知syslogd守护进程其配置文件的变更。关于调试级别的更多信息,请参考/etc/syslog.conf文件。也请参考debug子命令。

    -g禁用文件名中的元字符拓展。解释元字符可参考为扩展(有时叫做文件名匹配替换)文件名。请参考glob子命令。

    -i关闭多文件传送中的交互式提示。请参考prompt、mget、mput和mdelete子命令,以取得多文件传送中的提示的描述。

    -n防止在起始连接中的自动登录。否则,ftp命令会搜索$HOME/.netrc登录项,该登录项描述了远程主机的登录和初始化过程。请参考user子命令。

    -q允许用户指定:send_file子例程必须用于在网络上发送文件。只有当文件在无保护的情况下以二进制方式发送时此标志才适用。

    -v显示远程服务器的全部响应,并提供数据传输的统计信息。当ftp命令的输出是到终端(如控制台或显示)时,此显示方式是缺省方式。

    如果stdin不是终端,除非用户调用带有-v标志的ftp命令,或发送verbose子命令,否则ftp详细方式将禁用。

    -f导致转发凭证。如果Kerberos5不是当前认证方法,则此标志将被忽略。

    -krealm如果远程站的域不同于本地系统的域,系统将允许用户指定远程站的域。因此,域和DCE单元是同义的。如果Kerberos5不是当前认证方法,则此标志将被忽略。

    详解

    1、[crud[args)1:在本地机中执行交互shell,exit回到FTP环境,列如:!LS*.zip.

    2、$macro-amc[args儿执行宏定义macro-name。

    3、account[password]:提供登录远程系统成功后访问系统资源所需的补充口令。

    4、append local-file[remote-file]:将本地文件追加到远程系统主机,若未指定远系统文件名,则使用本地文件名。

    5、ASCii:使用ascⅡ型传输方式。

    6、bell:每个命令执行完毕后计算机响铃—次

    7、bin:使用二进制文件传输方式

    8、bye..退出FTP会话过程—

    9、case:在使用mget时,将远程主文件名中的大写字母转为小写字母

    10、cdremote·dir:进入远程主机目录。

    11、cdup..进入远程主机目录的父目录

    12、chmodmodefile-name:将远程主机文件file-name的存取方式设置为mode。列如:chmod777a.OUt。

    13、close:中断与远程服务器的FTP会话(与open对应)。

    14、cr:使用ASCii“方式传输文件时,将回车换行转换为回行

    15、deleteremote-file-删除远程主机文件:

    16、debugldebug-value3:设置调试方式,显示发送至远程主机的每条命令。例如:debug3,若设为0,表示取消debug。

    17、dir[remote-dir][Local-file]:显示远程主机目录,并将结果存入本地文件local-file:

    18、disconnection-.同close。

    19、formformat:将文件传输方式设置为format,缺省为file方式。

    20、getremote-file[10cal-file]:将远程主机的文件remote-file传至本地硬盘的local-file。

    21、glob:设置mdelete,mget,mput的文件名扩展,缺省时不扩展文件名,同命令行的-g参数。

    22、hash:每传输1024字节,显示一个hash符号(#)。

    23、help[cmd]:显示FTP内部命令cmd的帮助信息,如.-helpget。

    24、idle[seconds]:将远程服务器的休眠计时器设为[seconds]秒。

    25、image:设置二进制传输方式(同binary)。

    26、LCD[DIR]:将本地工作目录切换至dir。

    27、LS[remote-DIR][LOCAL-FILE]:显示远程目录remote-dir,并存入本地文local-fileo

    28、macdefmacro-name:定义一个宏,遇到macdef下的空行时,宏定义结束。

    29、mdelete[remote-file]:删除远程主机文件。

    30、mdirremote-fileslocal-file:与dlr类似,但可指定多个远程文件。列如mdir*.O.*.zipoutfiLe。

    31、mgetremote-files:传输多个远程文件。

    32、mkdirdirname:在远程主机中建一目录。

    33、misremote-filelocal-file.同nlist,但可指定多个文件名。

    34、mode[modename]:将文件传输方式设置为modename,缺省为stream方式。

    35、modtimefile-name..显示远程主机文件的最后修改时间。·

    36、mputlocal-file:将多个文件传输至远程主机,

    37、newerfile-name:如果远程机中file-name的修改时间比本地硬盘同名文件的时间巨近,则重新传输该文件。

    得相应的权限以后,方可上传或下载文件。也就是说,要想同哪一台计算机传送文件,就必须具有哪一台计算机的适当授权。换言之,除非有用户ID和口令,否则便无法传送文件。这种情况违背了Internet的开放性,Internet上的FTP主机何止千万,不可能要求每个用户在每一台主机上都拥有帐号。因此就衍生出了匿名FTP。

  • 上一篇百科:智酷
  • 下一篇百科:地理信息服务