要排查 Linux 上 FTP Server 配置错误,可以按下面思路一步一步来。常见 FTP 服务端有:vsftpd、proftpd、pure-ftpd。下面以 vsftpd(最常见) 为主说明。
ps aux | grep ftp
或:
systemctl list-unit-files | grep ftp
常见服务名:
vsftpdproftpdpure-ftpdsystemctl status vsftpd
如果没启动:
systemctl start vsftpd
systemctl enable vsftpd
查看是否报错:
journalctl -u vsftpd -xe
配置文件位置:
/etc/vsftpd/vsftpd.conf
# 或
/etc/vsftpd.conf
listen=YES
listen_ipv6=NO
如果同时开启 IPv4 和 IPv6 会冲突。
anonymous_enable=NO
local_enable=YES
write_enable=YES
chmod 755 /home/ftpuser
chroot_local_user=YES
allow_writeable_chroot=YES
否则会报:
500 OOPS: vsftpd: refusing to run with writable root inside chroot()
firewall-cmd --list-all
开放 FTP:
firewall-cmd --add-service=ftp --permanent
firewall-cmd --reload
查看:
getsebool -a | grep ftp
常见开启:
setsebool -P ftp_home_dir on
setsebool -P allow_ftpd_full_access on
查看是否被拒绝:
ausearch -m avc -ts recent
本地测试:
ftp localhost
或:
lftp ftp://user@localhost
查看详细错误:
ftp -d localhost
/var/log/vsftpd.log
/var/log/messages
/var/log/secure
| 报错 | 原因 |
|---|---|
| 500 OOPS | chroot / 权限问题 |
| 530 Login incorrect | 密码 / PAM / 用户被禁 |
| 425 Failed to establish connection | 被动端口未开放 |
| 530 Permission denied | SELinux / 目录权限 |
你可以贴出:
vsftpd.conf)我可以直接帮你定位是哪一行配置错了。