Debian 上 vsftpd 故障排查指南
一 快速定位流程
二 常见错误与修复对照表
| 症状 | 高频原因 | 快速修复 |
|---|---|---|
| 连接超时/被拒绝 | 服务未启动、端口未监听、云安全组/防火墙未放行 | 启动服务、核对端口占用、放行 21/TCP 及被动端口段 |
| 220 后立刻断开 | 配置仅启用 IPv6 而客户端走 IPv4,或 listen/listen_ipv6 冲突 | 仅保留一个:listen=YES 或 listen_ipv6=YES,二者不要同时为 YES |
| 530 Login incorrect | 用户名/密码错误、PAM 拒绝、用户在 /etc/ftpusers 中 | 核对凭据、检查 /etc/pam.d/vsftpd、确认用户不在 /etc/ftpusers |
| 500 OOPS: cannot change directory | 家目录权限/属主不当、根文件系统挂载为 noexec/nosuid、AppArmor/SELinux 限制 | 家目录属主为相应用户且权限 755,必要时放宽挂载选项;Debian 常见 AppArmor,SELinux 场景需相应布尔值 |
| 553 Could not create file | 目录不可写、磁盘满、配额限制 | 目标目录对 FTP 用户可写、检查磁盘与配额 |
| 数据连接建立失败(LIST/RETR 卡住) | 被动模式端口未放行、NAT/云环境未正确通告外网 IP | 配置 pasv_min_port/pasv_max_port 并在防火墙放行该段;必要时设置 pasv_address |
| vsftpd 启动失败 | 配置语法错误、端口被占用、权限/属主错误 | 检查配置语法、释放 21 端口、修正关键文件属主与权限 |
| 日志无法写入 | 日志目录/文件不可写 | 创建目录并赋权:mkdir -p /var/log/vsftpd && chown vsftpd:vsftpd /var/log/vsftpd && chmod 755 /var/log/vsftpd |
三 配置与权限要点
四 被动模式与 NAT 场景
五 安全加固建议