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
)。