温馨提示×

怎样解决linux ftpserver报错

小樊
35
2026-10-11 03:30:41
栏目: 智能运维

解决 Linux FTP 服务器报错,需要先看具体报错信息,不同错误原因差别很大。下面我按常见场景 + 排查步骤 + 解决办法给你梳理,基本能覆盖 90% 的情况。


一、先确认你用的 FTP 服务类型

常见 FTP Server:

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

先确认:

ps -ef | grep ftp
# 或
systemctl status vsftpd

二、常见报错及解决方法

1️⃣ 连接被拒绝 / 无法连接

报错示例

Connection refused
Could not connect to server

✅ 排查:

systemctl status vsftpd
netstat -lntp | grep 21

✅ 解决:

systemctl start vsftpd
systemctl enable vsftpd

防火墙放行:

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

云服务器还需安全组放行 21 端口


2️⃣ 530 Login incorrect

原因

  • 用户名密码错
  • 用户被禁止登录
  • PAM 限制

✅ 解决:

# 确认用户存在
id ftpuser

# vsftpd 常见配置
vi /etc/vsftpd/vsftpd.conf

确认:

local_enable=YES
write_enable=YES

限制用户:

userlist_enable=YES
userlist_deny=NO

并把用户加到:

/etc/vsftpd/user_list

3️⃣ 500 OOPS: cannot change directory

原因

  • SELinux
  • 家目录权限不对

✅ 解决:

# 关闭 SELinux(测试)
setenforce 0

或允许 FTP:

setsebool -P ftp_home_dir on

权限:

chmod 755 /home/ftpuser
chown ftpuser:ftpuser /home/ftpuser

4️⃣ 被动模式(PASV)失败

报错

Failed to retrieve directory listing

✅ 解决(vsftpd):

pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000

防火墙:

firewall-cmd --add-port=30000-31000/tcp --permanent
firewall-cmd --reload

云服务器安全组也要放行这些端口


5️⃣ 425 Failed to establish connection

原因

  • 被动/主动模式不匹配

客户端尝试切换:

  • FileZilla:站点 → 传输设置 → 主动模式
  • 或服务器开 PASV

6️⃣ 550 Permission denied

原因

  • 写权限未开
  • 目录不可写

✅ 解决:

write_enable=YES

目录权限:

chmod 775 /var/ftp

三、快速排错命令合集

tail -f /var/log/messages
tail -f /var/log/secure
journalctl -u vsftpd -f

四、如果你愿意,我可以更精准帮你

请你贴出:

  1. 具体报错信息
  2. FTP 软件(vsftpd / proftpd)
  3. 客户端(FileZilla / 命令行)
  4. 操作系统版本

我可以直接给你对应的配置文件和命令。

0 踩