在 CentOS 上“无法启动 FTP Server(ftpserver)” 的原因很多,下面按最常见原因 → 排查方法给你一个系统排查清单。你可以逐条对照。
CentOS 常见 FTP 服务有:
先确认:
rpm -qa | grep -E "vsftpd|proftpd|pure-ftpd"
systemctl start vsftpd
报错:
Failed to start vsftpd.service: Unit vsftpd.service not found
✅ 解决:
yum install -y vsftpd
查看状态:
systemctl status vsftpd
常见错误:
vsftpd 配置文件:
/etc/vsftpd/vsftpd.conf
启动失败时看日志:
journalctl -xe
或
cat /var/log/messages
✅ 常见错误配置:
listen=YES 和 listen_ipv6=YES 同时开启(冲突)chroot_local_user=YES 但用户家目录不对)✅ 快速修复示例:
listen=YES
listen_ipv6=NO
FTP 默认端口:
查看防火墙:
firewall-cmd --list-all
✅ 放行 FTP:
firewall-cmd --add-service=ftp --permanent
firewall-cmd --reload
或临时关闭测试:
systemctl stop firewalld
即使配置全对,SELinux 也会拦 FTP。
查看:
getenforce
✅ 临时关闭测试:
setenforce 0
✅ 永久允许 FTP:
setsebool -P ftpd_full_access on
/etc/passwd 中 shell 为 /sbin/nologin)userlist_enable=YES 但用户在 /etc/vsftpd/user_list✅ 测试:
ftp localhost
ss -lntp | grep 21
如果有其他程序占用,FTP 起不来。
systemctl status vsftpd
firewall-cmd --list-all
getenforce
ss -lntp | grep 21
cat /etc/vsftpd/vsftpd.conf | grep -v "^#" | grep -v "^$"
你可以直接贴出:
systemctl status 输出cat /etc/redhat-release)我可以 一步一步帮你定位到具体原因并给出修复命令 ✅