vsftpd【very secure FTP daemon】是一个完全免费的、开放源代码的ftp服务器软件。
特点:非常高的安全性需求、带宽限制、良好的可伸缩性等
-
工作原理
vsftpd使用ftp协议,该协议属于应用层协议。它是典型的c/s架构,ftp服务端用来存储文件,ftp客户端可以通过ftp协议连接服务端实现上传和下载资源。
ftp使用tcp的21端口进行命令传输(控制),然后用tcp 的20端口进行数据传输(主动模式)。默认是被动模式。
被动模式:
首先服务端启动ftp服务,开放21端口,这是客户端连接服务端登录服务(客户端从任意端口(大于1024端口)连接到服务端的21命令端口)
2.登录成功后,客户端会发送PASV命令(被动模式的指令),给到服务端,请求服务端开放一个随机端口,然后服务器会开启一个任意的端口(大于1024),发送给客户端。
3. 这样客户端拿到了服务器的地址和传输数据的端口,这样客户端便可和服务端进行数据传输(客户端发起从本地端口到服务器的随机端口连接请求用来传送数据。)
ps: 被动模式,除了服务端的21命令端口,客户端与服务端的数据传输端口都是大于1024的
主动模式:
- 首先服务端启动ftp服务,开放21端口,这是客户端连接服务端登录服务(客户端从任意端口(大于1024端口)连接到服务端的21命令端口)
- 然后客户端会主动随机开放一个数据端口,通过port命令告诉服务端,这样服务端会拿到客户端可以传输数据的端口,服务端便可以以数据端口20连接到客户端指定的数据端口。
ps:主动模式下,服务端的命令端口为21,数据端口为20,客户端的端口均大于1024