Debian FTP服务器常见问题排查与修复
一 快速定位流程
二 高频故障与修复对照表
| 症状 | 可能原因 | 修复要点 |
|---|---|---|
| 连接超时/被拒绝 | 服务未启动或端口未放行 | 启动服务并设置自启;放行21/TCP(UFW:sudo ufw allow 21/tcp;iptables:-A INPUT -p tcp --dport 21 -j ACCEPT) |
| 530 Login incorrect | 用户名/密码错误、被禁止登录、PAM/ftpusers限制 | 核对凭据;确保用户不在**/etc/ftpusers**;检查PAM与vsftpd配置一致性 |
| 500 OOPS: config file not owned by correct user | 配置文件属主/权限不当 | 设置chown root:root /etc/vsftpd.conf,chmod 644 /etc/vsftpd.conf |
| 500 OOPS: vsftpd: refusing to run with writable root inside chroot() | chroot 下根目录可写 | 将用户根目录设为只读,创建可写子目录(如uploads),并赋权给相应用户 |
| 553 Could not create file | 目标目录不可写或磁盘满 | 修正目录属主/权限,确保有写入权限并检查磁盘空间 |
| 被动模式卡在LIST/传输失败 | 未放行被动端口范围或NAT未回指 | 配置pasv_enable=YES、设定端口范围(如40000–50000),并在防火墙放行该范围;有公网IP/NAT时在配置中设置pasv_address |
| 日志无法写入 | 日志目录/文件权限不足 | 创建日志目录并赋权,例如mkdir -p /var/log/vsftpd && chown vsftpd:vsftpd /var/log/vsftpd && chmod 755 /var/log/vsftpd |
| 500 OOPS: cannot read user list file | 用户列表文件缺失或不可读 | 创建**/etc/vsftpd.user_list并写入允许用户,确保配置项userlist_enable=YES**、userlist_file与userlist_deny正确 |
三 防火墙与被动模式配置要点
四 最小可用配置示例 vsftpd.conf
五 验证与后续优化