在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