文中使用centos7环境。 vsftpd官方文档
FTP介绍
FTP(File Transfer Protocol)是一种文件传输协议 ,基于B/S 架构。
FTP支出两种工作模式:
-
主动模式:客户端向FTP服务器发送端口信息,由服务器主动连接该端口。 -
被动模式:FTP服务器开启并发送端口信息给客户端,由客户端连接该端口,服务器被动接受连接。
FTP支持三种认证模式:
-
匿名用户模式:任何人无需密码验证就可以直接登录到FTP服务器。这种模式最不安全,一般只用来保存不重要的公开文件,不推荐在生产环境中使用。 -
本地用户模式:通过Linux系统本地账号进行验证的模式,相较于匿名用户模式更安全。 -
虚拟用户模式:FTP服务器的专有用户。虚拟用户只能访问Linux系统为其提供的FTP服务,而不能访问Linux系统的其它资源,进一步增强了FTP服务器的安全性。
服务器安装
yum install -y vsftpd
vsftpd服务相关
-
设置开机自启动 systemctl enable vsftpd.service
-
启动FTP服务 systemctl start vsftpd.service
-
重启FTP服务 systemctl restart vsftpd.service
-
查看服务器监听的端口 netstat -antup | grep ftp
// :::21 LISTEN
服务器配置
- 新建FTP用户、设置密码
// 新建用户
adduser ftptest
// 设置密码
passwd ftptest
- 创建一个供ftp使用的目录
mkdir /var/ftp/data
- 更改/var/ftp/data目录的拥有者为ftptest
chown -R ftptest:ftptest /var/ftp/data
- 修改vsftpd.conf配置文件
vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
listen=YES
listen_ipv6=YES
local_root=/var/ftp/test
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
pasv_enable=YES
allow_writeable_chroot=YES
- 创建chroot_list文件
vim /etc/vsftpd/chroot_list
- 允许在SELinux中上传和编辑文件
setsebool -P allow_ftpd_full_access on
setsebool -P ftpd_connect_all_unreserved 1
- 重启ftp服务器
测试FTP服务器
在win10下使用WinSCP工具进行测试
- 下载WinSCP
WinSCP官网
- 登录
- 上传/下载速率
- 上传文件基本稳定在80MB/s左右
- 下载文件基本稳定在60MB/s左右
至此,服务器搭建完成!
在终端使用FTP
ftp `your-host`
// 根据提示输入用户名以及密码
// 230 Login successful.
// 列出文件目录
ls
// 切换目录
cd
// 上传单个文件
put /path/file
// 上传多个文件
mput *.md
// 下载文件之前,设定本地接受目录位置
lcd `your-path`
// 下载单个文件
get filepath/file
// 下载多个文件
mget *.md
// 使用一下命令中任意一个即可退出
bye/exit/quit
// 221 Goodbye
// 获取帮助文档
help
|