FTP(File Transfer Protocol,文件传输协议)是用于不同操作系统或不同设备之间传输文件的标准规范,可用于pc 、服务器、移动终端、路由器等设备之间的文件传输。FTP协议属于TCP/IP协议模型的应用层。

FTP工作原理:

采用客户端/服务器(C/S结构)的工作模式,通过TCP建立两条链路:控制链路和数据链路。控制链路用于传送用户名、密码、设置传输方式等控制信息,数据链路用于传送文件数据。默认情况下,控制链路使用TCP/21端口,服务器通过21端口监听客户端的连接请求,此端口一直保持开启状态;数据链路默认使用TCP/20端口,只有数据传输时才打开,传输结束后关闭。

wKiom1auBLvApgTqAADtFwAIHtg398.jpg

fpt客户端与服务器之间通信过程:

①用户使用支持FTP协议的客户端程序连接FTP服务器

②用户通过客户端想服务器发送命令,此过程使用控制链路(21端口)

③服务器程序(如vsftpd)接收并执行用户发出的命令

④服务器将执行的结果返回到客户端

比如,用户想上传一个文件,使用客户端登录ftp服务器并且验证通过,然后使用put命令向服务器提出上传请求,服务器响应请求并建立数据链路到客户端,客户端开始传输待上传文件。


数据传输方式有两种,bin(二进制)和asc(ASCII码),二进制文件如程序、压缩文件等要使用bin方式,文本文件要使用asc方式传输,否则传输后的文件和源文件在内容发生变化。在很多的FTP客户端工具中提供了一种自动模式来代替这两种模式,会自动选择一种合适的方式传输。自动选择也并不是百分百正确,如发现传输后的文件发生了改变就需要手动选择对应传输方式。


常用的FTP服务器软件:

linux下支撑的FTP服务器软件有很多,常用以下几种。

vsftpd:Very Secure FTP Daemon(非常安全的FTP)是一个安全、稳定、高性能的开源FTP服务器软件,适用于多种UNIX和Linux系统

WU-FTPD:Washington University FTP是一个非常有名的FTP服务器端软件,广泛用于UNIX和Linux服务器,

ProFtpD:他是一个可靠的FTP服务器。比WU-FTP更加稳定,修复了很多BUG,并针对WU-FTP的不足做了补充。

Pure-FTP:是一个高效、简单、安全的服务器软件,功能多且非常实用。

在以后的文章中主要介绍vsftpd的安装和配置。