在CentOS系统上安装vsftpd(Very Secure Ftp Daemon)是一个相对简单的过程,但为了确保安全性和功能性,需要进行一些配置,以下是详细的安装与配置步骤:
一、安装vsftpd
1、更新系统并安装vsftpd:

sudo yum update y sudo yum install vsftpd y
2、启动并设置开机自启动vsftpd服务:
sudo systemctl start vsftpd sudo systemctl enable vsftpd
3、检查vsftpd服务状态:
sudo systemctl status vsftpd
二、配置防火墙
为了允许FTP流量通过防火墙,需要开放FTP端口(默认是21),使用以下命令来配置防火墙:
sudo firewallcmd permanent addport=21/tcp sudo firewallcmd reload
三、配置vsftpd
vsftpd的配置文件位于/etc/vsftpd/vsftpd.conf,可以使用文本编辑器打开该文件进行编辑:
sudo nano /etc/vsftpd/vsftpd.conf
以下是一些关键配置项及其解释:
| 配置项 | 说明 |
| anonymous_enable=NO | 禁用匿名访问 |
| local_enable=YES | 启用本地用户登录 |
| write_enable=YES | 允许写操作 |
| chroot_local_user=YES | 限制用户在其主目录中 |
| allow_writeable_chroot=YES | 允许上传到可写的chroot目录 |
| pasv_enable=YES | 启用被动模式 |
| pasv_min_port=30000 | 被动模式最小端口数 |
| pasv_max_port=31000 | 被动模式最大端口数 |
| listen=NO | 禁用独立监听模式,适用于大多数情况 |
| listen_ipv6=YES | 启用IPv6监听(如果需要) |
| pam_service_name=vsftpd | 用于PAM认证的服务名称 |
| userlist_enable=YES | 启用用户列表限制 |
| tcp_wrappers=YES | 启用tcp_wrappers支持 |
| dnssec_enable=NO | 禁用DNSSEC(域名系统安全扩展) |
| idle_session_timeout=600 | 空闲会话超时时间(秒) |
| data_connection_timeout=120 | 数据连接超时时间(秒) |
| nopriv_user=ftpsecure | 创建一个专用的FTP用户 |
| async_abor_enable=YES | 启用异步ABOR请求 |
| ascii_upload_enable=YES | 允许ASCII模式上传 |
| ascii_download_enable=YES | 允许ASCII模式下载 |
| ftp_banner=Welcome to blah FTP service. | 自定义FTP欢迎消息 |
| deny_email_enable=YES | 启用禁止特定电子邮件地址的登录 |
| banned_email_file=/etc/vsftpd/banned_emails | 禁止登录的电子邮件地址文件路径 |
四、添加FTP用户并设置权限
1.创建FTP用户**:

sudo adduser ftpuser
2.设置FTP用户密码**:
sudo passwd ftpuser
3.创建用户主目录并设置权限**:
sudo mkdir p /home/ftpuser/ftp sudo chown R ftpuser:ftpuser /home/ftpuser/ftp
4.将用户添加到vsftpd配置文件中**:
编辑/etc/vsftpd/vsftpd.conf文件,找到或添加以下行:
userlist_enable=YES
然后创建或编辑/etc/vsftpd/user_list文件,添加允许的用户,每行一个用户名:
ftpuser
五、重启vsftpd服务
完成上述配置后,重启vsftpd服务以使更改生效:

sudo systemctl restart vsftpd
六、验证配置
可以使用FTP客户端工具(如FileZilla)连接到FTP服务器,验证配置是否正确,默认情况下,FTP服务器监听在服务器的公网IP地址和21端口。
七、常见问题解答(FAQs)
Q1. 如何更改FTP服务器的根目录?
A1. 可以通过修改/etc/vsftpd/vsftpd.conf文件中的local_root指令来更改FTP服务器的根目录,要将根目录更改为/var/ftp/ftpuser,可以添加或修改以下行:
local_root=/var/ftp/ftpuser
Q2. 如何限制FTP用户的上传和下载速度?
A2. 可以在/etc/vsftpd/vsftpd.conf文件中使用local_max_rate和anon_max_rate指令来限制本地用户和匿名用户的上传和下载速度,限制本地用户的最大传输速率为500KB/s:
local_max_rate=500000
限制匿名用户的最大传输速率为200KB/s:
anon_max_rate=200000
