温馨提示×

linux ftpserver为何登录失败

小樊
34
2026-09-02 05:53:53
栏目: 智能运维

Linux 下 FTP 服务器登录失败的原因很多,下面按最常见原因 → 排查思路 → 解决办法给你一个系统清单,你可以对照自己的情况逐一排查。


一、最常见原因汇总

1️⃣ 用户名 / 密码错误

  • 用户不存在
  • 密码输入错误(注意大小写)
  • 用户被锁定

排查:

grep ftpuser /etc/passwd
passwd ftpuser

2️⃣ FTP 服务未启动

常见服务:

  • vsftpd(最常用)
  • proftpd
  • pure-ftpd

检查服务状态:

systemctl status vsftpd

启动:

systemctl start vsftpd
systemctl enable vsftpd

3️⃣ 防火墙 / 安全组拦截

FTP 使用:

  • 21 端口(控制)
  • 被动模式还需要额外端口

检查端口:

netstat -tunlp | grep 21

开放防火墙(firewalld):

firewall-cmd --add-service=ftp --permanent
firewall-cmd --reload

云服务器还要检查安全组规则


4️⃣ SELinux 限制(非常常见)

即使配置正确,SELinux 也可能阻止登录

查看:

getenforce

临时关闭测试:

setenforce 0

永久解决(推荐):

setsebool -P ftp_home_dir on

5️⃣ vsftpd 配置问题(重点)

常见关键配置 /etc/vsftpd/vsftpd.conf

✅ 允许本地用户登录:

local_enable=YES
write_enable=YES

❌ 以下会导致登录失败:

anonymous_enable=NO
# 但用户不是匿名用户却用匿名方式登录

禁止登录的用户:

cat /etc/vsftpd/ftpusers
cat /etc/vsftpd/user_list

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

FTP 用户必须对家目录有正确权限

错误示例:

drwxr-x--- root root /home/ftpuser

修正:

chown ftpuser:ftpuser /home/ftpuser
chmod 700 /home/ftpuser

7️⃣ 被动模式(PASV)配置错误

客户端连不上 → 表现为“登录失败 / 卡住”

vsftpd 示例:

pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000

防火墙放行这些端口。


8️⃣ 用户 shell 不允许登录

FTP 用户 shell 不能是 /sbin/nologin 如果被限制

grep ftpuser /etc/passwd

若需要:

usermod -s /bin/bash ftpuser

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

看日志(最关键)

tail -f /var/log/secure
tail -f /var/log/messages

或 vsftpd 专用:

tail -f /var/log/vsftpd.log

三、常见错误现象对照表

现象 可能原因
530 Login incorrect 密码/用户/ftpusers
500 OOPS 权限/SELinux
331 后卡住 被动模式
连接被拒绝 服务未启动/防火墙
能连不能列目录 PASV 端口

四、如果你愿意,我可以直接帮你定位

你可以贴出:

  1. FTP 软件(vsftpd / proftpd?)
  2. 登录报错信息
  3. /etc/vsftpd/vsftpd.conf 内容
  4. 系统版本(CentOS / Ubuntu?)

我可以直接告诉你哪一行配置有问题

0