温馨提示×

Debian vsftp为何连不上

小樊
47
2026-07-30 15:51:28
栏目: 智能运维

Debian 上 vsftpd 连不上 常见原因很多,下面按最常见 → 较少见的顺序给你一个排查清单(90% 的问题都在前 5 项)。


一、最常见原因(优先排查)

1️⃣ vsftpd 没启动或没安装

systemctl status vsftpd

如果没运行:

sudo apt install vsftpd
sudo systemctl start vsftpd
sudo systemctl enable vsftpd

2️⃣ 防火墙拦截(最常见)

Debian 默认可能启用 nftablesufw

查看防火墙

sudo ufw status

放行 FTP(被动模式)

sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 40000:50000/tcp

端口范围要和 vsftpd.conf 里的 pasv_min_port / pasv_max_port 一致


3️⃣ 被动模式(PASV)配置错误(客户端卡住)

客户端能连上但 列不出目录,基本就是这个问题。

正确示例(公网服务器)

pasv_enable=YES
pasv_min_port=40000
pasv_max_port=50000
pasv_address=你的公网IP

修改后重启:

sudo systemctl restart vsftpd

4️⃣ 用户被限制登录

检查:

cat /etc/ftpusers

这个文件里的用户禁止登录 FTP

如果你用的是 root / www-data 等,会被拒绝。

✅ 解决:

  • 换普通用户
  • 或从 ftpusers 中移除

5️⃣ 用户家目录权限错误

vsftpd 对权限非常敏感

ls -ld /home/用户名

✅ 推荐权限:

chmod 755 /home/用户名

⚠️ 不能给写权限给根目录(chroot 场景)


二、vsftpd.conf 常见必配项(对照)

listen=YES
listen_ipv6=NO

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
pasv_address=公网IP

修改后:

sudo systemctl restart vsftpd

三、SELinux(Debian 基本不用,但提一句)

Debian 默认没有 SELinux,如果你是从 CentOS 迁移过来的经验,可以忽略。


四、客户端常见错误对照

现象 原因
连不上 防火墙 / vsftpd 没启动
530 Login incorrect 用户被禁 / 密码错
425 / 无法列目录 被动模式
500 OOPS: vsftpd 权限或 chroot 配置错误

五、快速定位方法(强烈推荐)

在服务器上抓日志:

journalctl -u vsftpd -f

或:

tail -f /var/log/vsftpd.log

客户端用 FileZilla,把日志贴出来,我可以直接帮你定位。


六、如果你愿意,我可以进一步帮你

你可以直接回我:

  1. Debian 版本(11 / 12)
  2. 服务器是本地还是云服务器
  3. 客户端报错原文
  4. vsftpd.conf 内容

我可以直接帮你改到可用 ✅

0