ftp:文件传输协议(File Transfer Protocol,FTP)是用于在网络上进行文件传输的一套标准协议,它工作在 OSI 模型的第七层, TCP 模型的第四层, 即应用层, 使用 TCP 传输而不是 UDP, 客户在和服务器建立连接前要经过一个“三次握手”的过程, 保证客户与服务器之间的连接是可靠的, 而且是面向连接, 为数据传输提供可靠保证。
FTP允许用户以文件操作的方式(如文件的增、删、改、查、传送等)与另一主机相互通信。然而, 用户并不真正登录到自己想要存取的计算机上面而成为完全用户, 可用FTP程序访问远程资源, 实现用户往返传输文件、目录管理以及访问电子邮件等等, 即使双方计算机可能配有不同的操作系统和文件存储方式。
vsftpd :是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX等系统上面,是一个完全免费的、开发源代码的ftp服务器软件,支持很多其他的 FTP 服务器所不支持的特征。比如:非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高等。
在centos上的指令如下:
yum install -y vsftpd
运行以下命令设置FTP服务开机自启动。
systemctl enable vsftpd.service
启动FTP服务。
systemctl start vsftpd.service
运行以下命令查看FTP服务监听的端口。
netstat -antup | grep ftp
显示监听的端口号为 21。
此时,vsftpd默认已开启匿名访问功能,但没有修改或上传文件的权限。
匿名用户模式
- 修改配置文件vsftpd.conf。
anon_upload_enable=YES
注释解开。
- 更改/var/ftp/pub目录的权限,为FTP用户添加写权限。
chmod o+w /var/ftp/pub/
- 重启FTP服务。
systemctl restart vsftpd.service
本地用户模式
为FTP服务创建一个Linux用户。
adduser Patrick
为用户设置密码。
passwd Patrick
创建一个供FTP服务使用的文件目录。
mkdir /var/ftp/test
更改/var/ftp/test目录的拥有者为Patrick。
chown -R Patrick:Patrick /var/ftp/test
修改vsftpd.conf配置文件。
配置FTP为主动模式(步骤繁琐有空再说o.0)
在/etc/vsftpd目录下创建chroot_list文件,并在文件中写入例外用户名单。
使用vim命令编辑chroot_list文件,添加例外用户名单。此名单中的用户不会被锁定在主目录,可以访问其他目录。vim /etc/vsftpd/chroot_list
重启FTP服务。
systemctl restart vsftpd.service
客户端测试:
ftp://主机地址