排查 Linux FTP 服务器故障,建议按**“网络 → 服务 → 配置 → 权限 → 日志”**的顺序系统化排查。下面以常见的 vsftpd 为例(也适用于 proftpd / pure-ftpd 思路)。
systemctl status vsftpd
# 或
ps -ef | grep vsftpd
systemctl start vsftpd
systemctl enable vsftpd
netstat -tunlp | grep :21
# 或
ss -tunlp | grep :21
listen=YESiptables -L -n
# 或
firewall-cmd --list-all
开放端口:
firewall-cmd --add-port=21/tcp --permanent
firewall-cwd --add-port=30000-31000/tcp --permanent
firewall-cmd --reload
ftp localhost
常见文件:
/etc/vsftpd/vsftpd.conf
重点参数:
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
pasv_min_port=30000
pasv_max_port=31000
修改后重启:
systemctl restart vsftpd
id ftpuser
ls -ld /home/ftpuser
getenforce
若为 Enforcing:
setsebool -P ftp_home_dir on
setsebool -P allow_ftpd_full_access on
tail -f /var/log/messages
# 或
tail -f /var/log/vsftpd.log
# 或
journalctl -u vsftpd -f
常见错误:
530 Login incorrect → 用户名/密码或 PAM 问题500 OOPS: chroot → 目录权限错误425 Failed to establish connection → 被动端口未开放ftp ftp.example.com
或:
lftp ftp://user:pass@host
✅ 服务是否启动
✅ 21 端口是否监听
✅ 防火墙/安全组是否放行
✅ 被动端口是否配置并开放
✅ 用户权限与目录权限
✅ SELinux 状态
✅ 日志报错信息
如果你能贴出:
我可以帮你精准定位问题。