Ubuntu 下 vsftpd 故障排查攻略
一 快速定位流程
二 常见症状与修复对照表
| 症状 | 快速检查 | 修复建议 |
|---|---|---|
| 无法连接(超时/拒绝) | 服务是否运行、端口 21 是否监听、云安全组/本机防火墙 | 启动服务;放行 21/tcp;云主机放行安全组;必要时改用被动模式并放行数据端口范围 |
| 530 Login incorrect | 密码是否正确、用户是否被禁止、PAM 与白名单配置 | 重置密码;检查 /etc/ftpusers 黑名单;核对 /etc/vsftpd.user_list 与 userlist_enable/userlist_deny;Ubuntu 下将 pam_service_name=ftp |
| 500 OOPS: refusing to run with writable root inside chroot() | 是否启用 chroot_local_user=YES 且家目录可写 | 设置家目录属主为 root:root 且权限 755,或启用 allow_writeable_chroot=YES |
| 能登录但无法上传 | write_enable=YES、目录权限、磁盘空间 | 开启写入;修正目录属主与权限(如 chown user:user /home/user,chmod 755 /home/user);检查 df -h |
| 被动模式数据连接失败 | 是否配置 pasv_enable=YES 与端口范围,且防火墙放行 | 在配置中设置 pasv_min_port/pasv_max_port(如 40000:50000),并放行对应端口范围 |
| 日志无明显输出 | 日志路径、rsyslog 配置 | 确认 /var/log/vsftpd.log 存在并有写入;必要时在 rsyslog 中启用 vsftpd 日志 |
| 端口冲突 | 21 被其他进程占用 | 结束占用进程或调整 vsftpd 监听端口,并同步防火墙规则 |
三 配置与权限要点
四 防火墙与被动模式
五 高效排错命令清单