在 CentOS 上配置 FTPServer(FTP 服务器),常见做法是使用 vsftpd(Very Secure FTP Daemon)。下面我按 最常用、最稳定 的方式,一步一步给你说明,适用于 CentOS 7 / 8 / Stream。
sudo yum install -y vsftpd
CentOS 8 / Stream 用:
sudo dnf install -y vsftpd
sudo systemctl start vsftpd
sudo systemctl enable vsftpd
查看状态:
systemctl status vsftpd
配置文件路径:
/etc/vsftpd/vsftpd.conf
先备份:
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
编辑:
sudo vi /etc/vsftpd/vsftpd.conf
# 禁止匿名登录
anonymous_enable=NO
# 允许本地用户登录
local_enable=YES
# 允许上传
write_enable=YES
# 本地用户限制在家目录
chroot_local_user=YES
# 允许写 chroot(CentOS 重要)
allow_writeable_chroot=YES
# 监听 IPv4
listen=YES
# 关闭 IPv6
listen_ipv6=NO
sudo useradd -m ftpuser
sudo passwd ftpuser
设置家目录(可选):
usermod -d /home/ftpuser ftpuser
sudo firewall-cmd --permanent --add-port=21/tcp
sudo firewall-cmd --reload
编辑配置:
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
防火墙放行:
sudo firewall-cmd --permanent --add-port=30000-31000/tcp
sudo firewall-cmd --reload
CentOS 默认开启 SELinux,不配置会导致 能登录但不能上传。
getenforce
sudo setsebool -P ftp_home_dir on
如果仍不行,可临时测试:
sudo setenforce 0
⚠️ 生产环境不建议永久关闭 SELinux
sudo systemctl restart vsftpd
ftp localhost
lftpwrite_enable=YES 未开启/etc/vsftpd/user_list 或 ftpusers 限制✅ FTPS(FTP over SSL)
✅ 虚拟用户
✅ 限制用户带宽
✅ 日志审计
如果你需要 FTPS(加密) 或 虚拟用户配置,告诉我你的 CentOS 版本,我可以给你完整配置示例。