温馨提示×

linux ftpserver为什么报错

小樊
39
2026-09-11 04:59:42
栏目: 智能运维

“Linux FTP Server 报错”原因非常多,需要先看具体报错信息才能精确定位。下面我按常见场景 + 典型报错 + 原因 + 解决办法给你整理一份排查清单,你可以对照看看是哪一种。


一、vsftpd 常见报错(最常用)

1. 500 OOPS: cannot change directory:/home/xxx

原因

  • SELinux 限制
  • 用户家目录权限不对

解决

# 关闭 SELinux(临时)
setenforce 0

# 或允许 FTP 访问家目录
setsebool -P ftp_home_dir on

# 检查目录权限
chmod 755 /home/xxx

2. 530 Login incorrect

原因

  • 用户名/密码错
  • 用户被禁止登录(/etc/passwd shell 不对)
  • vsftpd 配置限制

解决

# 确认用户存在
grep ftpuser /etc/passwd

# 确保 shell 合法
usermod -s /bin/bash ftpuser

# 检查 vsftpd.conf
local_enable=YES

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

原因

  • chroot 后根目录可写(新版本 vsftpd 禁止)

解决

chmod a-w /home/ftpuser
mkdir /home/ftpuser/upload
chown ftpuser:ftpuser /home/ftpuser/upload

或配置:

allow_writeable_chroot=YES

4. Connection refused

原因

  • vsftpd 没启动
  • 防火墙拦了

解决

systemctl status vsftpd
systemctl start vsftpd

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

二、被动模式(PASV)问题(非常常见)

报错

  • 能登录,但列目录卡住
  • Entering Passive Mode 后超时

原因

  • 防火墙没开被动端口
  • 未配置 PASV 端口

解决

pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
firewall-cmd --add-port=30000-31000/tcp --permanent
firewall-cmd --reload

三、权限 & 用户类问题

1. 上传失败(553)

chown -R ftpuser:ftpuser /ftpdir
chmod 755 /ftpdir

2. 匿名登录失败

anonymous_enable=YES
anon_root=/var/ftp

四、快速排查命令(建议你直接跑)

systemctl status vsftpd
journalctl -xe | grep vsftpd
cat /etc/vsftpd/vsftpd.conf
getenforce

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

请把下面信息发我:

  1. 用的什么 FTP 服务(vsftpd / proftpd / pure-ftpd)
  2. 完整报错原文
  3. 客户端现象(登录失败 / 列目录失败 / 上传失败)
  4. 系统版本
cat /etc/os-release

我可以一步一步帮你修到能连为止。

0