CentOS 无法启动 FTP Server(ftpserver) 的原因很多,通常和 服务未安装、配置错误、端口被占用、防火墙/SELinux 限制、权限问题 等有关。下面按最常见原因 → 排查步骤给你一个系统性的分析。
CentOS 常见 FTP 服务有:
下面以 vsftpd 为主说明,其他类似。
rpm -qa | grep vsftpd
yum install -y vsftpd
systemctl start vsftpd
systemctl status vsftpd
✅ 正常应看到 active (running)
systemctl enable vsftpd
/etc/vsftpd/vsftpd.conf
vsftpd /etc/vsftpd/vsftpd.conf
如果配置错误,会直接报错
anonymous_enable=NO
local_enable=YES
write_enable=YES
listen=YES
ss -lntp | grep 21
lsof -i:21
解决方式:
systemctl status firewalld
firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload
# vsftpd.conf
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
firewall-cmd --permanent --add-port=30000-31000/tcp
firewall-cmd --reload
getenforce
setenforce 0
systemctl restart vsftpd
✅ 如果能启动,说明是 SELinux 问题
setsebool -P ftp_home_dir on
setsebool -P allow_ftpd_full_access on
grep 用户名 /etc/passwd
chmod 755 /home/用户名
userlist_enable=YES
userlist_file=/etc/vsftpd/user_list
userlist_deny=NO
tail -f /var/log/messages
tail -f /var/log/secure
500 OOPSPermission deniedrefused to connect| 检查项 | 命令 |
|---|---|
| 是否安装 | `rpm -qa |
| 是否启动 | systemctl status vsftpd |
| 端口占用 | `ss -lntp |
| 防火墙 | firewall-cmd --list-all |
| SELinux | getenforce |
| 日志 | tail -f /var/log/secure |
你可以直接把下面信息贴出来,我可以精准定位问题:
systemctl status vsftpd 输出/var/log/secure 相关日志我可以直接帮你改配置 ✅