在 Ubuntu 上搭建的 FTP 服务器传不了文件,常见原因和排查思路如下(按最常见顺序):
这是最常见原因。
✅ 解决方式(以 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
ls -ld /home/ftpuser
确保:
w 权限修复示例:
sudo chown ftpuser:ftpuser /home/ftpuser
sudo chmod 755 /home/ftpuser
检查:
write_enable=YES
如果为 NO,无法上传。
确认:
local_enable=YES
write_enable=YES
Ubuntu 默认是 AppArmor(不是 SELinux)
查看:
sudo aa-status
vsftpd 被限制时可能传不了文件。
临时测试:
sudo systemctl stop apparmor
df -h
空间不足直接失败。
✅ 推荐:
| 错误 | 原因 |
|---|---|
| 550 Permission denied | 权限/配置 |
| 425 Can’t open data connection | 被动端口 |
| 530 Login incorrect | 用户名/密码 |
| 426 Transfer aborted | 防火墙 |
write_enable=YES如果你愿意,可以告诉我:
我可以帮你精准定位。