以下是Linux上FTPServer(以vsftpd为例)的错误排查方法:
检查服务状态
sudo systemctl status vsftpd # 确认服务是否运行,未运行则启动
sudo systemctl start vsftpd
检查防火墙设置
sudo ufw status # 查看防火墙规则
sudo ufw allow 21/tcp # 开放FTP端口
sudo iptables -L # 检查规则
sudo iptables -A INPUT -p tcp --dport 21 -j ACCEPT # 允许FTP流量
sudo service iptables save # 保存规则
检查配置文件
/etc/vsftpd.conflisten=YES(启用监听)anonymous_enable=NO(禁止匿名访问,根据需求设置)local_enable=YES(允许本地用户访问)write_enable=YES(允许写入)chroot_local_user=YES(限制用户主目录)sudo systemctl restart vsftpd
查看日志文件
/var/log/vsftpd.log 或 /var/log/auth.logsudo tail -f /var/log/vsftpd.log # 实时查看日志
sudo grep 'error' /var/log/vsftpd.log # 筛选错误信息
检查文件权限与磁盘空间
/var/ftp):sudo chown ftp:ftp /var/ftp # 设置所有者
sudo chmod 755 /var/ftp # 设置权限
df -h # 查看磁盘使用情况
检查网络连接
ping server_ip
telnet server_ip 21 # 测试FTP端口是否可达
处理SELinux限制(仅限CentOS/RHEL)
sudo setenforce 0
/etc/selinux/config,将enforcing改为disabled并重启。检查端口占用
sudo netstat -tuln | grep 21 # 查看21端口是否被占用
sudo ss -tuln | grep 21 # 替代命令(部分系统)
客户端问题排查
参考来源: