个人Blog: hhktony.com
全部博文(553)
分类: LINUX
2013-03-23 12:18:12
### 简介
FTP(File Transfer Protocol) 是CS架构的服务,拥有一个服务端和客户端,使用的传输协议是 TCP 封包协议,提供数据传输的可靠性,TCP 在建立
联机前会先进行三向交握。不过 FTP 服务器是比较麻烦一些,因为 FTP 服务器使用了
两个联机,分别是命令信道与数据流通道 (ftp-data) 。FTP的标准端口是20、21号端口,其中 20 为数据通道,21为控制通道。
数据通道(20):数据通道是和FTP服务器进行文件传输或者列表的通道。
控制通道(21):控制通道是和FTP服务器进行沟通的通道,连接FTP,发送FTP指令都是通过控制通道来完成的。
### FTP模式
#### 主动模式(PORT)
FTP 客户端首先和FTP Server的TCP 21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。 PORT命令包含了客户端用什么端口(一个大于1023的端口)接收数据。在传送数据的时候,服务器端通过自己的TCP 20端口发送数据。 FTP server必须和客户端建立一个新的连接用来传送数据。
#### 被动模式(PASV)
在建立控制通道的时候和PORT模式类似,当客户端通过这个通道发送PASV 命令的时候,FTP server打开一个大于 1023 的随机端口并且通知客户端在这个端口上传送数据的请求,然后FTP server 将通过这个端口进行数据的传送,这个时候FTP server不再需要建立一个新的和客户端之间的连接传送数据。
### 常见的 FTP 软件对比
wu-ftp:比较老牌,但针对它的攻击比较多,设置比较麻烦,但功能比较强大。
ProFTPD:能实现wu-ftp以及server-U的所有功能。安全性也较高,但比起vsftpd配置稍显复杂。
vsftpd:功能强大,配置也比较简单
选vsftpd是因为它安全、速度快
选ProFTPD偶尔看到webmin支持他,所以就用了,因为方便。
选Serv-U理由windows普遍,Serv-U方便,但最大问题是盗版,所以现在不大用了
vsftpd是大多是linux系统下自带的ftp软件,而且像FREEBSD等网站都是采用,而且配置起来简单很多,所以我们也采用了vsftpd