在 CentOS 上部署 FTP 服务器,最常用的是 vsftpd(Very Secure FTP Daemon)。下面给你一套从安装到可用的完整流程,适用于 CentOS 7 / 8 / Stream。
# CentOS 7
yum install -y vsftpd
# CentOS 8 / Stream
dnf install -y vsftpd
systemctl start vsftpd
systemctl enable vsftpd
查看状态:
systemctl status vsftpd
配置文件路径:
/etc/vsftpd/vsftpd.conf
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
编辑配置:
vim /etc/vsftpd/vsftpd.conf
# 禁止匿名登录
anonymous_enable=NO
# 允许本地用户登录
local_enable=YES
# 允许上传
write_enable=YES
# 本地用户 umask
local_umask=022
# 禁止用户切换到根目录
chroot_local_user=YES
# 允许 chroot 目录可写(CentOS 7+ 必须)
allow_writeable_chroot=YES
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
⚠️ 被动端口范围需要在 防火墙 & 安全组 放行
useradd ftpuser
passwd ftpuser
mkdir -p /data/ftp
chown ftpuser:ftpuser /data/ftp
usermod -s /sbin/nologin ftpuser
firewall-cmd --permanent --add-service=ftp
firewall-cmd --permanent --add-port=30000-31000/tcp
firewall-cmd --reload
getenforce
setsebool -P ftp_home_dir on
setsebool -P allow_ftpd_full_access on
systemctl restart vsftpd
ftp localhost
ftp 服务器IP
或使用工具:
/sbin/nologin)chmod 755 /data/ftp
✅ 虚拟用户
✅ FTPS(FTP over SSL)
✅ 限速、并发控制
✅ 日志审计
如果你需要 FTPS(SSL) 或 虚拟用户配置,告诉我你的 CentOS 版本 + 使用场景(内网 / 公网 / 云服务器),我可以给你定制方案。