ftp介绍1FTP介绍一ftp的基本知识二ftp的基本原理三ftp的基本操作及应用ftp介绍2ftp基本知识ftp的基本概念1.FTP是FileTransferProtocol(文件传输协议)的缩写,用来在两台计算机之间互相传送文件。从远程主机拷贝文件至自己的计算机上,称之为“下载(download)”文件。若将文件从本地主机中拷贝至远程主机上,则称之为“上载(upload)”文件。FTP在RFC959可具体查询。ftp介绍3ftp基本知识2.FTP服务工作模式:客户/服务器ftp介绍4ftp基本知识3.FTP的传输有两种方式(1)ASCII传输模式用于传送ASCII码文本文件。(2)二进制传输模式:(逐字拷贝,不须转译)可传送文本和非文本ftp介绍5ftp基本知识4.匿名FTP服务匿名FTP服务的实质是:提供服务的机构在它的FTP服务器上建立一个公开账户(一般为anonymous),并赋予该账户访问公共目录的权限,以便提供免费服务;如果用户要访问这些提供匿名服务的FTP服务器,一般不需要输入用户名与用户密码;大多数FTP服务都是匿名服务;为了保证FTP服务器的安全,几乎所有的匿名FTP服务器都只允许用户下载文件,而不允许用户上载文件。ftp介绍6ftp基本知识5.FTP协议有两种工作方式:一种方式叫做Standard(也就是PORT方式,主动方式),一种是Passive(也就是PASV,被动方式)。Standard模式FTP的客户端发送PORT命令到FTP服务器。Passive模式FTP的客户端发送PASV命令到FTPServer。ftp介绍7FTP系统采用“客户/服务器”模型,由在用户的本地计算机(客户端)上运行的FTP客户程序和在远程计算机(服务器端)上运行的FTP服务器程序所组成。客户程序与服务程序之间通过面向连接的TCP协议进行通信,TCP服务端口为21。一个FTP服务器进程可同时为多个客户进程提供服务。FTP的服务器进程由两大部分组成:一个主进程,负责接受新的请求;另外有若干个从属进程,负责处理单个请求。FTP工作的基本原理ftp介绍8在进行文件传输时,FTP的客户和服务器之间要建立两个TCP连接:控制连接(ControlConnection):客户程序与FTP服务器的端口21建立控制连接,并在整个FTP会话过程中维持连接;控制连接用于传输请求和应答信息;由FTP客户端发起控制连接。数据连接(DataConnection):数据连接用于传输文件;每传输一个文件都要建立一个数据连接(在FTP服务器的端口20);由FTP服务器发起数据连接。FTP工作的基本原理ftp介绍9FTP工作的基本原理(1)FTP服务器运行FTPd守护进程,等待用户的FTP请求。(2)用户运行FTP命令,请求FTP服务器为其服务。例:FTP202.119.2.197(3)FTPd守护进程收到用户的FTP请求后,派生出子进程FTP与用户进程FTP交互,建立文件传输控制连接,使用TCP端口21。(4)用户输入FTP子命令,服务器接收子命令,如果命令正确,双方各派生一个数据传输进程FTP-DATA,建立数据连接,使用TCP端口20,进行数据传输。(5)本次子命令的数据传输完,拆除数据连接,结束FTP-DATA进程。(6)用户继续输入FTP子命令,重复(4)、(5)的过程,直至用户输入quit命令,双方拆除控制连接,结束文件传输,结束FTP进程。ftp介绍10工作过程建立控制连接(客户端发起)客户端请求与服务器的端口为21建立控制连接,建立后,客户端使用这个连接来发送FTP命令,服务器端使用这个连接来发送FTP应答;建立数据连接当用户发出一个文件传输请求时,服务器端在端口为20请求与客户端建立一个数据连接;文件传输数据连接建立后,发送数据的一方使用这个连接把文件传送给对方;FTP工作的基本原理ftp介绍11FTP工作的基本原理断开数据连接当一个文件传输完成后,服务器请求结束数据连接;断开控制连接当客户端结束会话时,由客户端向服务器端请求关闭控制连接。ftp介绍12FTP工作的基本原理主动FTP与被动FTPftp介绍13FTP工作的基本原理主动传输模式客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接并建立一条命令链路。当需要传送数据时,客户端在命令链路上用PORT命令告诉服务器:“我打开了*****端口,你过来连接我”。于是服务器从20端口向客户端的*****端口发送连接请求,建立一条数据链路来传送数据ftp介绍14FTP工作的基本原理被动传输模式客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,服务器在命令链路上用PASV命令告诉客户端:“我打开了*****端口,你过来连接我”。于是客户端向服务器的*****端口发送连接请求,建立一条数据链路来传送数据。ftp介绍15ftp的基本操作及应用ftp基本命令举例FTP[host]例如:%ftpftp.nudt.edu.cnusername:test实名登录password:******或:username:anonymous匿名登录password:test@nudt.edu.cnftp介绍16(1)帮助命令组列出所有的ftp命令ftp?ftphelp列出某个ftp命令的使用说明例如:列出open命令的使用说明ftphelpopen(2)连接命令组ftpopenhost连接远程主机ftpclose结束当前连接,不退出ftpftpdisconnect结束当前连接,不退出ftpftpbye终止所有连接,退出ftpftpquit终止所有连接,退出ftpftp介绍17(3)目录操作与列表命令组ftppwd列出当前目录名ftpcd进入下一级目录ftpls[remote-dir][local-file]将远程目录中的文件列表存入本地文件中ftp介绍18(4)文件传输命令组上传文件ftpputlocal-file[remote-file]若不指定远程文件名,则远程文件名同本地文件名ftpmputlocal-files一次上传多个文件下载文件ftpget[local-file]remote-file若不指定本地文件名,则本地文件名同远程文件名ftpmgetremote-files一次下载多个文件ftp介绍19(5)文件类型操作命令组ftpascii设置传输文件的类型为文本ftpbinary设置传输文件的类型为二进制(6)文件属性操作命令组ftpchmodmoderemote-file设置文件权限,权限由mode规定例如:ftpchmod666aa使同组用户和其他用户都有读写权(7)查看文件内容命令ftpgetfilename-只显示远程文件filename的内容,-代表本地(8)其他rename、delete,mdelete,size,……ftp介绍20ftp的基本操作及应用ftp客户端软件举例ftp服务器软件举例Serv-UFTPServerSamiFTPServerWashingtonUniversityFTP(用于UNIX系统)CuteFTPLeapFTPFlashFXPWS-FTPFTPVoyagerftp介绍21ftp的基本操作及应用FTP服务器端的注意事项一、FTP服务器是公网IP,用公网动态域名;或是内网IP,用内网专业版TrueHost1、服务器如果安装了防火墙,请记住要在防火墙上打开FTP端口(默认是21)。2、所有FTP服务器软件都支持PORT方式。至于PASV方式,大部分FTP服务器软件都支持。支持PASV方式的FTP服务器软件,也可以设置为只工作在PORT方式上。3、为了PASV方式能正常工作,需要在FTP服务器软件上为PASV方式指定可用的端口范围(设置方法)。此外,还要在服务器的防火墙上打开这些端口。当客户端以PASV方式连接服务器的时候,服务器就会在这个端口范围里挑选一个端口出来,给客户端连接。二、FTP服务器是内网IP,用内网动态域名标准版cmxnatproxy这种情况下,FTP服务器不需要做特殊设置,只要支持PASV方式就可以了。大部分FTP服务器软件都支持PASV方式。ftp介绍22ftp的基本操作及应用FTP客户端的注意事项(请注意:选择用PASV方式还是PORT方式登录FTP服务器,选择权在FTP客户端,而不是在FTP服务器。)一、客户端只有内网IP,没有公网IP从上面的FTP基础知识可知,如果用PORT方式,因为客户端没有公网IP,FTP将无法连接客户端建立数据链路。因此,在这种情况下,客户端必须要用PASV方式,才能连接FTP服务器。大部分FTP站长发现自己的服务器有人能登录上,有人登录不上,典型的错误原因就是因为客户端没有公网IP,但用了IE作为FTP客户端来登录(IE默认使用PORT方式)。二、客户端有公网IP,但安装了防火墙如果用PASV方式登录FTP服务器,因为建立数据链路的时候,是由客户端向服务器发送连接请求,没有问题。反过来,如果用PORT方式登录FTP服务器,因为建立数据链路的时候,是由服务器向客户端发送连接请求,此时连接请求会被防火墙拦截。如果要用PORT方式登录FTP服务器,请在防火墙上打开1024以上的高端端口。ftp介绍23ftp的基本操作及应用三、连接用内网标准版cmxnatproxy搭建的FTP服务,必须要用PASV方式。连接任何公网FTP服务器、或用内网专业版TrueHost搭建的FTP服务器,PORT方式和PASV方式都可以使用。当然,使用PORT方式的时候,还要满足上面的两个条件。四、常见的FTP客户端软件PORT方式与PASV方式的切换方法。大部分FTP客户端默认使用PASV方式。IE默认使用PORT方式。ftp介绍24TheEndThankyou!