Linux FTP 服务器报错的原因很多,必须先看具体报错信息。下面我按「常见报错 + 对应解决方法」给你一个排查速查表,你可以对照使用;如果还不行,把完整报错贴出来,我可以精准帮你分析。
常见的是:
先确认:
ps -ef | grep ftp
或
systemctl status vsftpd
systemctl status vsftpd
journalctl -xe
tail -f /var/log/messages
# 或
tail -f /var/log/vsftpd.log
530 Login incorrect原因:
解决:
# 确认用户存在
id ftpuser
# 检查是否被锁定
passwd -S ftpuser
vsftpd 配置检查:
local_enable=YES
write_enable=YES
如果是虚拟用户,确认:
guest_enable=YES
guest_username=ftpuser
500 OOPS: cannot change directory原因:
解决:
✅ 权限:
chmod 755 /home/ftpuser
chown ftpuser:ftpuser /home/ftpuser
✅ SELinux(非常常见):
getenforce
如果是 Enforcing:
setsebool -P ftp_home_dir on
setsebool -P allow_ftpd_full_access on
425 Failed to establish connection原因:
解决:
vsftpd 配置:
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
防火墙:
firewall-cmd --add-port=30000-31000/tcp --permanent
firewall-cmd --reload
云服务器还要 放行安全组端口。
530 Permission denied原因:
解决:
chroot_local_user=YES
allow_writeable_chroot=YES
vsftpd: refusing to run with writable root inside chroot()原因:
解决:
allow_writeable_chroot=YES
或:
chmod a-w /home/ftpuser
mkdir /home/ftpuser/upload
chown ftpuser:ftpuser /home/ftpuser/upload
检查:
netstat -tunlp | grep 21
防火墙:
firewall-cmd --add-service=ftp --permanent
firewall-cmd --reload
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
重启:
systemctl restart vsftpd
请你直接贴出:
我可以一步一步带你修好 ✅