温馨提示×

为何ubuntu ftpserver登录失败

小樊
45
2026-10-02 14:15:59
栏目: 智能运维

Ubuntu 上 FTP登录失败是很常见的问题,原因通常集中在服务配置、用户权限、防火墙/PASV、以及 FTP 与 SFTP 混淆这几类。下面按最常见原因 → 排查方法 → 解决方式来说明。


一、先确认你用的是哪种 FTP

1️⃣ FTP vs SFTP(非常容易混)

  • FTP / FTPS:vsftpd、proftpd
  • SFTP:基于 SSH,不是 FTP

✅ 如果你用:

sftp user@ip

那是 SFTP,不是 FTP,不需要 vsftpd

❌ 用 FTP 客户端连 SFTP 端口(22)会失败


二、vsftpd 登录失败常见原因(最常见)

1️⃣ 服务根本没启动

systemctl status vsftpd

若未运行:

sudo systemctl start vsftpd
sudo systemctl enable vsftpd

2️⃣ 用户被禁止登录(PAM / shell 限制)

FTP 用户必须:

  • 有合法 shell
  • 不在 /etc/ftpusers

检查:

grep 用户名 /etc/ftpusers

若有,删除该行。

用户 shell 应为:

/bin/bash

不是 /usr/sbin/nologin


3️⃣ 配置禁止本地用户登录

/etc/vsftpd.conf 中常见错误:

✅ 正确配置示例:

local_enable=YES
write_enable=YES

❌ 如果是:

local_enable=NO

本地用户直接登录失败

修改后:

sudo systemctl restart vsftpd

4️⃣ 家目录权限问题(非常常见)

FTP 用户家目录不能过于开放:

chmod 755 /home/用户名

❌ 错误示例:

chmod 777 /home/用户名

vsftpd 会拒绝登录


5️⃣ 被动模式(PASV)被防火墙拦

症状:

  • 能连上
  • 输入用户名密码后卡住 / 登录失败

解决:

pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000

防火墙放行:

sudo ufw allow 30000:31000/tcp
sudo ufw allow 21/tcp

三、匿名登录失败

若你用匿名:

anonymous_enable=YES

并且目录:

/var/ftp

权限不能写


四、查看错误日志(最有用)

sudo tail -f /var/log/vsftpd.log

或

journalctl -u vsftpd

常见错误:

  • refused
  • login failed
  • permission denied

五、快速自检清单 ✅

  • [ ] 用 FTP 还是 SFTP?
  • [ ] vsftpd 是否运行?
  • [ ] 用户是否在 ftpusers?
  • [ ] 家目录权限是否 755?
  • [ ] PASV 端口是否放行?
  • [ ] 配置文件是否 local_enable=YES?

如果你愿意,可以告诉我:

  1. 用的什么客户端(FileZilla / 命令行)
  2. 报错原文
  3. /etc/vsftpd.conf 内容

我可以直接帮你精准定位并改好配置。

0 踩