温馨提示×

ubuntu ftpserver为何传不了文件

小樊
47
2026-09-23 20:03:03
栏目: 智能运维

在 Ubuntu 上搭建的 FTP 服务器传不了文件,常见原因和排查思路如下(按最常见顺序):


一、FTP 模式问题(主动/被动)

这是最常见原因。

1. 主动模式(PORT)

  • 服务器连接客户端端口
  • 客户端有防火墙 / NAT 时容易失败

2. 被动模式(PASV)

  • 客户端连接服务器端口
  • 需要在防火墙放行 被动端口范围

✅ 解决方式(以 vsftpd 为例):

sudo nano /etc/vsftpd.conf

添加或确认:

pasv_enable=YES
pasv_min_port=40000
pasv_max_port=41000

重启:

sudo systemctl restart vsftpd

防火墙放行:

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

二、用户权限问题

1. 目录不可写

ls -ld /home/ftpuser

确保:

  • 用户对目录有 w 权限

修复示例:

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

2. vsftpd 限制写权限

检查:

write_enable=YES

如果为 NO,无法上传。


三、用户被限制为只读 / 匿名

  • 匿名用户默认不能上传
  • 本地用户未开启上传权限

确认:

local_enable=YES
write_enable=YES

四、SELinux / AppArmor

Ubuntu 默认是 AppArmor(不是 SELinux)

查看:

sudo aa-status

vsftpd 被限制时可能传不了文件。

临时测试:

sudo systemctl stop apparmor

五、磁盘空间满

df -h

空间不足直接失败。


六、FTP 客户端问题

  • FileZilla 没切到“主动/被动”
  • Windows 资源管理器 FTP 不稳定(不建议用)

✅ 推荐:

  • FileZilla
  • lftp

七、常见错误对照

错误 原因
550 Permission denied 权限/配置
425 Can’t open data connection 被动端口
530 Login incorrect 用户名/密码
426 Transfer aborted 防火墙

八、快速自查清单 ✅

  • [ ] write_enable=YES
  • [ ] 被动端口已开
  • [ ] 防火墙放行
  • [ ] 用户有目录写权限
  • [ ] 磁盘未满

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

  1. 用的什么 FTP 服务(vsftpd / proftpd)
  2. 报错信息
  3. 客户端工具

我可以帮你精准定位。

0 踩