1. 检查FTP服务状态
使用systemctl status vsftpd(假设使用vsftpd)命令确认服务是否处于active (running)状态。若未运行,用systemctl start vsftpd启动服务;若启动失败,需进一步查看日志定位原因。
2. 查看系统日志获取详细错误信息
通过tail -f /var/log/syslog或journalctl -u vsftpd -xe命令实时查看FTP服务相关日志,日志中通常会明确提示故障原因(如权限不足、配置错误、端口冲突等)。
3. 验证FTP配置文件的正确性
检查/etc/vsftpd.conf(vsftpd默认配置文件)的关键参数设置:
local_enable=YES(允许本地用户登录);write_enable=YES(允许上传文件);chroot_local_user=YES(限制用户在其主目录,需配合allow_writeable_chroot=YES避免权限问题);listen=YES(启用独立模式,避免与inetd冲突)。systemctl restart vsftpd重启服务使更改生效。4. 检查网络连接与端口监听
ping <客户端IP>测试服务器与客户端的网络连通性;netstat -tuln | grep 21或ss -tuln | grep 21命令确认FTP服务是否在21端口监听;pasv_min_port和pasv_max_port(如40000-50000)已在配置文件中设置,并开放相应端口。5. 排查防火墙/SELinux限制
ufw status查看防火墙规则,确保允许FTP流量(ufw allow 21/tcp)及被动模式端口范围(ufw allow 40000:50000/tcp);getenforce检查状态,临时关闭测试(setenforce 0),若问题解决,需调整SELinux策略(如setsebool ftpd_disable_trans 1)或永久禁用(不推荐)。6. 确认用户权限与目录设置
ftpuser)的主目录存在且权限正确:chown -R ftpuser:ftpuser /home/ftpuser(所有权归用户)、chmod -R 755 /home/ftpuser(目录权限为755);chroot限制用户,需设置allow_writeable_chroot=YES(vsftpd配置文件中),避免用户无法写入其主目录。7. 测试FTP连接与基本功能
使用FTP客户端(如FileZilla)或命令行工具(ftp <服务器IP>)尝试连接,验证以下功能:
write_enable及目录权限);ls命令权限)。8. 处理常见特定错误
vsftpd.conf中添加seccomp_sandbox NO并重启服务;local_enable=YES是否开启,/etc/shadow中用户密码是否正确,或用户是否被锁定;chmod +w /path/to/directory)。