温馨提示×

debian vsftp如何排错

小樊
43
2026-09-14 02:44:02
栏目: 智能运维

在 Debian 上使用 vsftpd(Very Secure FTP Daemon) 时,常见问题和排错思路可以按下面步骤来。


一、基础检查

1. 确认 vsftpd 已安装

dpkg -l | grep vsftpd

未安装则:

sudo apt update
sudo apt install vsftpd

2. 确认服务状态

systemctl status vsftpd

service vsftpd status

启动/重启:

sudo systemctl restart vsftpd

二、查看日志(最重要)

1. 系统日志

journalctl -u vsftpd

tail -f /var/log/syslog

2. vsftpd 自身日志(如启用)

/etc/vsftpd.conf 中:

xferlog_enable=YES
log_ftp_protocol=YES

日志位置:

/var/log/vsftpd.log

三、常见错误及解决方法

1. 无法连接(Connection refused)

可能原因:

  • vsftpd 未运行
  • 监听端口不对
  • 防火墙阻止

检查:

ss -tlnp | grep 21

防火墙:

sudo ufw status

允许 FTP:

sudo ufw allow 21/tcp

2. 登录失败(530 Login incorrect)

常见原因:

  • 用户名/密码错误
  • 用户被禁止登录(如 nologin)
  • PAM 配置问题

检查:

grep ftp /etc/passwd

确认 shell:

cat /etc/shells

若用户 shell 不在其中,可改为:

chsh -s /bin/bash 用户名

3. 被动模式(PASV)失败

现象:能登录,但列目录卡住

解决(Debian 常用):

pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000

防火墙开放:

ufw allow 30000:31000/tcp

4. 用户无法写文件(550 Permission denied)

检查:

  • 目录权限
  • vsftpd 配置是否允许写

配置中需有:

write_enable=YES

目录权限示例:

chown ftpuser:ftpuser /home/ftpuser
chmod 755 /home/ftpuser

5. 限制用户在家目录(chroot)

chroot_local_user=YES
allow_writeable_chroot=YES

否则可能报:

500 OOPS: vsftpd: refusing to run with writable root inside chroot

四、配置示例(最小可用)

/etc/vsftpd.conf

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 是否运行
  • [ ] 端口 21 是否监听
  • [ ] 防火墙是否放行
  • [ ] 用户 shell 是否合法
  • [ ] 是否启用被动端口
  • [ ] 日志有无明确错误

如果你愿意,可以把 具体报错信息/etc/vsftpd.conf 贴出来,我可以帮你逐行分析。

0