温馨提示×

ubuntu vsftp如何排错

小樊
40
2026-10-18 20:07:22
栏目: 智能运维

在 Ubuntu 上排查 vsftpd(Very Secure FTP Daemon) 问题,可以按下面系统化的思路来排错。


一、先确认基础状态

1. 是否安装

dpkg -l | grep vsftpd

未安装则:

sudo apt update
sudo apt install vsftpd

2. 服务是否运行

systemctl status vsftpd

常见状态:

  • active (running) ✅
  • failed ❌(看日志)

启动 / 重启:

sudo systemctl restart vsftpd

二、查看错误日志(最重要)

系统日志

journalctl -u vsftpd -xe

或

tail -n 50 /var/log/syslog

vsftpd 自身日志(如开启)

在 /etc/vsftpd.conf 中:

xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log

查看:

tail -f /var/log/vsftpd.log

三、常见错误与解决方法

1. 无法连接(Connection refused)

可能原因:

  • 服务没启动
  • 端口被防火墙挡住

检查端口:

sudo netstat -tulnp | grep ftp

或

ss -tulnp | grep ftp

防火墙(UFW):

sudo ufw allow 20/tcp
sudo ufw allow 21/tcp

2. 530 Login incorrect

常见原因:

  • 用户名/密码错
  • PAM 限制
  • 禁止本地用户登录

检查配置:

local_enable=YES
write_enable=YES

如仍不行,查看:

tail /var/log/auth.log

3. 500 OOPS: cannot change directory

通常是 SELinux / 权限 / 家目录问题

Ubuntu 默认无 SELinux,但注意:

ls -ld /home/username

用户家目录不能被其他用户写:

chmod 755 /home/username

4. 被动模式(PASV)连不上

客户端能登录但不能列目录。

在 /etc/vsftpd.conf:

pasv_enable=YES
pasv_min_port=40000
pasv_max_port=50000

防火墙:

sudo ufw allow 40000:50000/tcp

5. 用户被锁在自家目录(chroot)

chroot_local_user=YES
allow_writeable_chroot=YES

否则会报:

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

四、配置文件排错技巧

1. 检查语法

sudo vsftpd /etc/vsftpd.conf

(前台运行,直接看错误)

2. 最小可用配置示例

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=40000
pasv_max_port=50000

五、快速自检清单

✅ 服务运行
✅ 端口开放
✅ 日志无报错
✅ 用户权限正确
✅ 被动端口开放
✅ chroot 配置合理


如果你愿意,可以把:

  • vsftpd.conf
  • 报错信息
  • systemctl status vsftpd 输出

贴出来,我可以直接帮你定位问题。

0 踩