解决 Linux FTP 服务器报错,需要先看具体报错信息,不同错误原因差别很大。下面我按常见场景 + 排查步骤 + 解决办法给你梳理,基本能覆盖 90% 的情况。
常见 FTP Server:
先确认:
ps -ef | grep ftp
# 或
systemctl status vsftpd
报错示例
Connection refused
Could not connect to server
✅ 排查:
systemctl status vsftpd
netstat -lntp | grep 21
✅ 解决:
systemctl start vsftpd
systemctl enable vsftpd
防火墙放行:
firewall-cmd --add-service=ftp --permanent
firewall-cmd --reload
云服务器还需安全组放行 21 端口
原因
✅ 解决:
# 确认用户存在
id ftpuser
# vsftpd 常见配置
vi /etc/vsftpd/vsftpd.conf
确认:
local_enable=YES
write_enable=YES
限制用户:
userlist_enable=YES
userlist_deny=NO
并把用户加到:
/etc/vsftpd/user_list
原因
✅ 解决:
# 关闭 SELinux(测试)
setenforce 0
或允许 FTP:
setsebool -P ftp_home_dir on
权限:
chmod 755 /home/ftpuser
chown ftpuser:ftpuser /home/ftpuser
报错
Failed to retrieve directory listing
✅ 解决(vsftpd):
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
防火墙:
firewall-cmd --add-port=30000-31000/tcp --permanent
firewall-cmd --reload
云服务器安全组也要放行这些端口
原因
客户端尝试切换:
原因
✅ 解决:
write_enable=YES
目录权限:
chmod 775 /var/ftp
tail -f /var/log/messages
tail -f /var/log/secure
journalctl -u vsftpd -f
请你贴出:
我可以直接给你对应的配置文件和命令。