CentOS 登录 FTPServer(FTP 服务器)失败 的原因很多,一般可以从 服务端配置、客户端、防火墙/SELinux、用户权限、日志 这几个方向排查。下面按常见场景给你一个系统性的排查清单。
FTPServer 常见于:
先确认服务是否运行:
systemctl status vsftpd
或
ps -ef | grep ftp
systemctl start vsftpd
systemctl enable vsftpd
检查端口(默认 21):
ss -lntp | grep 21
firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload
iptables -I INPUT -p tcp --dport 21 -j ACCEPT
如果是 被动模式(PASV),还需放行被动端口范围(见下文)。
查看 SELinux 状态:
getenforce
如果是 Enforcing,常见报错:
setenforce 0
如果关闭后能登录,说明是 SELinux 问题。
setsebool -P ftp_home_dir on
setsebool -P allow_ftpd_full_access on
vsftpd 常见限制:
cat /etc/vsftpd/user_list
cat /etc/vsftpd/ftpusers
如果用户在里面,会被拒绝。
✅ 解决:
ftpusers 中移除userlist_deny=NO查看日志:
tail -f /var/log/secure
常见错误:
pam_unix(vsftpd:auth): authentication failure✅ 解决:
cat /etc/passwd | grep ftpuser
shell 不能是 /sbin/nologin 或 /bin/false(除非配置允许)
vsftpd 示例配置:
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
防火墙也要放行:
firewall-cmd --permanent --add-port=30000-31000/tcp
firewall-cmd --reload
FTP 用户家目录权限不能太开放:
chmod 755 /home/ftpuser
不能出现:
drwxrwxrwx
tail -f /var/log/messages
tail -f /var/log/secure
| 错误 | 含义 |
|---|---|
| 530 Login incorrect | 用户名/密码或 PAM |
| 500 OOPS | 配置或权限 |
| 425 Unable to build data connection | 被动模式 |
ftp localhost
yum install lftp -y
lftp ftp://user:password@localhost
如果你愿意,可以把下面信息发我,我可以直接帮你定位问题:
/var/log/secure 或 /var/log/messages 相关日志我可以一步一步帮你查 ✅