温馨提示×

debian vsftp怎么排错

小樊
37
2026-09-29 02:58:28
栏目: 智能运维

在 Debian 上排查 vsftpd(Very Secure FTP Daemon) 问题,可以按下面一套“从外到内”的思路来排错。


一、先确认服务状态

systemctl status vsftpd

常见问题:

  • 没启动:systemctl start vsftpd
  • 启动失败:看日志
journalctl -u vsftpd -xe

二、看配置文件语法

vsftpd 对配置非常敏感:

vsftpd /etc/vsftpd.conf

如果直接报错,说明配置文件有问题。
常见错误:

  • 多了空格(如 anonymous_enable = YES ❌)
  • 参数拼写错误
  • 少了分号/换行问题

✅ 正确示例:

anonymous_enable=NO
local_enable=YES
write_enable=YES

三、确认监听端口

ss -ltnp | grep ftp

正常应看到:

LISTEN 0 32 0.0.0.0:21

如果没有:

  • 配置里 listen=YES
  • 没被防火墙拦

四、防火墙 / 安全组

1. 本地防火墙(iptables / nftables / ufw)

如果是 ufw:

ufw allow 21/tcp

2. 云服务器安全组

  • 开放 21
  • 被动模式还要开一段端口(见下文)

五、被动模式(PASV)问题(最常见)

客户端能连上但:

  • 列不出目录
  • 卡在 “Retrieving directory listing”

配置被动端口

pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000

然后开放端口:

ufw allow 30000:31000/tcp

六、用户登录问题

1. 本地用户无法登录

确认:

local_enable=YES

用户是否被锁:

passwd -S ftpuser

2. 家目录权限

vsftpd 要求:

  • 家目录 不能写权限给其他人
chmod 755 /home/ftpuser

3. 被 PAM 限制

查看:

cat /etc/pam.d/vsftpd

七、SELinux(Debian 一般没,但提一句)

Debian 默认 没有 SELinux,如果是 Ubuntu/Debian 可忽略。


八、匿名登录问题

anonymous_enable=YES
anon_root=/srv/ftp

目录权限:

chown root:root /srv/ftp
chmod 555 /srv/ftp

九、日志排错(非常重要)

开启日志:

xferlog_enable=YES
log_ftp_protocol=YES

查看:

tail -f /var/log/vsftpd.log
# 或
journalctl -u vsftpd -f

十、常见错误速查表

现象 原因
530 Login incorrect 用户/PAM/密码问题
500 OOPS 配置或权限错误
425 Failed to establish connection 被动端口未开
331 Please specify password 正常,继续登录
530 Permission denied write_enable / chroot

十一、最小可用配置示例(Debian)

listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000

如果你愿意,可以把:

  • 报错信息
  • vsftpd.conf
  • 客户端现象

贴出来,我可以帮你 精准定位。

0 踩