CentOS 上 FTP / FTPS 服务器登录失败 的原因很多,下面按最常见原因逐条排查,你可以对照看是哪一种。
systemctl status vsftpd
如果没运行:
systemctl start vsftpd
systemctl enable vsftpd
firewall-cmd --list-all
如果没有 ftp:
firewall-cmd --add-service=ftp --permanent
firewall-cmd --reload
如果是 FTPS(显式/隐式),还要放行:
查看:
getsebool -a | grep ftp
常见需要开启:
setsebool -P ftp_home_dir on
setsebool -P allow_ftpd_full_access on
查看审计日志:
tail /var/log/audit/audit.log | grep ftp
vsftpd 默认禁止某些用户:
cat /etc/vsftpd/user_list
cat /etc/vsftpd/ftpusers
如果你的用户在里面 → 登录失败。
ls -ld /home/username
建议:
chmod 755 /home/username
chown username:username /home/username
grep username /etc/passwd
如果 shell 是 /sbin/nologin,部分配置下不能登录 FTP。
/etc/vsftpd/vsftpd.conf 加:
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
然后防火墙放行:
firewall-cmd --add-port=30000-31000/tcp --permanent
firewall-cmd --reload
如果是 FTPS(SSL):
ssl_enable=YES
rsa_cert_file=/etc/vsftpd/vsftpd.pem
证书不存在或权限不对 → 登录直接失败。
很多“登录失败”其实是 用 SFTP 客户端连 FTP 服务。
服务器端看:
tail -f /var/log/secure
tail -f /var/log/messages
客户端看详细错误(FileZilla 最直观)。
如果你愿意,可以把 具体报错信息 + vsftpd.conf + 客户端类型 发出来,我可以直接帮你定位是哪一条。