FTP服务
一、FTP简介
FTP(File Transfer Protocol,文件传输协议)是Internet中应用广泛的服务之一,主要用提供在Internet上任意计算机之间相互传输文件的机制。
二、FTP概述
FTP(File Transfer Protocol,文件传输协议)是用来在不同类型的计算机之间传输文件的协议。而FTP服务器,是在网络中提供存储文件空间的计算机,应用FTP协议提供服务。用户可以连接到服务器来下载文件,也可以将文件上传到FTP服务器中。因此,FTP服务器方便了用户之间远程交换文件的需要,充分体现了网络资源共享的优越性。
FTP协议属于TCP/IP协议簇,它工作在OSI模式的第七层,TCP/IP模型的第四层,是一种面向连接的协议。FTP在对外提供服务时需要维护两个连接:一个是控制连接,负责监听21端口,用来传输控制命令;另一个是数据连接,在主动传输方式下监听20端口,用来传输数据。
三、FTP服务器的两种工作模式
FTP协议有两种工作模式,一种叫做主动模式(也就是PORT模式);另一种叫做被动模式(也就是PSAV)模式。主动模式FTP的客户端发送PORT命令到FTP服务器,被动模式FTP的客户端发送PSAV命令到FTP服务器,这两种方式的工作过程如下:
1、主动模式的工作过程
(1)客户端随机开启一个大于1024的端口X向FTP服务器的21端口发送连接请求。
(2)客户端开放X+1号端口进行监听。
(3)FTP服务器接受连接,并建立一个控制连接会话。
(4)当需要传递数据时,FTP服务器从20端口向客户端的X+1号端口发送连接请求,建立一条数据链路来传送数据。
(5)通过建立的数据连接传送数据。
(6)数据传输完成后,断开数据连接,客户端释放端口X+1。
(7)客户端X端口断开与服务器21端口间的控制连接,客户端释放X端口。
在主动模式下传送数据时,是由FTP服务器主动连接客户端,如果客户端在防火墙或NAT网关后面,由于防火墙无法预知客户端用于数据连接的端口,所以这时使用主动模式将无法与网络上的FTP服务器传送数据。在这种情况下就需要使用被动模式。
2、被动模式的工作过程
(1)客户端随机开启一个大于1024的端口X向FTP服务器的21端口发送连接请求。
(2)客户端开放X+1号端口进行监听。
(3)客户端向FTP服务器发送PASV命令,表明客户端此时处于被动模式。
(4)FTP服务器收到命令后,会开放一个大于1024的端口Y进行监听。
(5)FTP服务器向客户端发送PORT命令,表明服务器此时的数据端口是Y。
(6)客户端收到命令后,会通过X+1端口连接服务器的Y端口,建立数据连接。
(7)通过建立的数据连接传送数据。
(8)数据传输完成后,断开数据连接,客户端释放端口X+1,服务器释放端口Y。
(9)客户端X端口断开与服务器21端口间的控制连接,客户端释放X端口。
四、FTP数据的两种传输模式
(1)ASCLL传输方式:如果用户正在复制的文件是简单的ASCLL码文本,而远程服务器上运行的不是UNIX,当文件传输时FTP通常会自动调整文件的内容,以便于把文件解释成另外那台计算机存储文本文件的格式。
(2)二进制文件传输方式:如果用户正在传输的不是文本文件,可能是程序、数据、或者压缩文件,就要使用二进制传输。在二进制传输中,保存文件位序以便原始和复制的是逐位一一对应的。
五、FTP用户分类
基于FTP服务器安全性的考虑,可以采用分用户访问FTP服务器的方式。FTP的用户默认提供三类用户,不同的用户对应着不同的权限和操作方式。
(1)匿名用户:也就是Anonymous用户。即当客户端访问FTP资源时,可以在没有服务器的账户名及密码的情况下,使用匿名用户访问FTP服务器的共享资源。
&