以下是CentOS vsFTP故障排查核心技巧:
服务状态检查
sudo systemctl status vsftpd # 确认服务是否运行
sudo systemctl restart vsftpd # 重启服务(修改配置后需执行)
防火墙与端口配置
sudo firewall-cmd --permanent --add-service=ftp # firewalld
sudo firewall-cmd --reload
sudo netstat -tuln | grep 21 # 确认端口监听状态
pasv_min_port=30000
)并开放对应端口。配置文件校验
/etc/vsftpd/vsftpd.conf
关键参数:listen=YES # 确保服务监听正确
anonymous_enable=NO # 生产环境建议关闭匿名登录
local_enable=YES # 允许本地用户登录
write_enable=YES # 允许文件上传
chroot_local_user=YES # 限制用户至主目录(需配合权限设置)
sudo systemctl restart vsftpd
。用户权限与目录设置
sudo chown -R ftpuser:ftpuser /path/to/ftpdir # 所有权
sudo chmod -R 755 /path/to/ftpdir # 目录权限(755为可读可执行)
chroot
,需确保用户主目录不可写(避免越权):sudo chmod a-w /path/to/ftpdir # 仅允许用户上传至子目录
日志分析
sudo tail -f /var/log/vsftpd.log # 实时监控日志
sudo grep "ERROR" /var/log/vsftpd.log # 筛选错误信息
SELinux策略调整(若启用)
sudo setsebool -P ftp_home_dir 1
sudo setsebool -P allow_ftpd_full_access 1 # 若需完全访问
sudo semanage port -a -t ftp_port_t -p tcp 30000-31000 # 开放被动模式端口(若使用)
常见错误处理
/etc/vsftpd.conf
中local_enable
是否为YES
,或确认用户未被加入/etc/ftpusers
黑名单。chmod 755
),检查write_enable=YES
是否启用。ping
服务器IP),或被动模式端口是否开放。参考来源:[1,2,3,4,5,7,8,9,10,11]