Ubuntu上FileZilla无法接收文件的排查与修复
一、先快速定位问题
- 看具体报错:常见有**“无法启动传输”、“553 Could not create file”、“Permission denied”,分别对应本地/远端目录无写权限**、FTP服务未开启写入、或磁盘已满/配额用尽。
- 确认协议与端口:SFTP走SSH 22;FTP走21(数据通道由服务器被动模式提供)。
- 检查远端目录:确保你要写入的目录对登录用户具备写权限,且磁盘未满。
- 复现并保留日志:在FileZilla的“编辑-设置-日志”开启日志,复现失败,依据日志定位是客户端还是服务器端问题。
二、最常见原因与对应修复
- 目录权限不足(含远端为Ubuntu本机或服务器)
- 现象:报错**“无法启动传输”或“553 Could not create file”**。
- 处理:在远端执行(以目标目录为例):
- 查看权限:
ls -ld 目标目录
- 赋权:
sudo chmod 755 目标目录(或更宽松的777仅用于排障)
- 若属主不对:
sudo chown $USER:$USER 目标目录
- 注意:在FileZilla里改“文件属性”常无效,需在系统里用
chmod/chown修改。
- FTP服务未开启写入(仅限FTP)
- 现象:能连上,但上传/接收失败。
- 处理:编辑
/etc/vsftpd.conf,确保write_enable=YES、local_enable=YES,保存后重启服务:sudo systemctl restart vsftpd(或service vsftpd restart)。
- 被动模式与防火墙/NAT问题(仅限FTP)
- 现象:能登录,列目录正常,但传输卡住或失败。
- 处理:在服务器配置vsftpd的被动端口范围(如50000-50009),并在防火墙放行该范围;客户端站点设置里启用被动模式,必要时填写公网IP。
- 传输模式错误
- 现象:图片/压缩包损坏或失败。
- 处理:二进制文件用二进制模式(默认),文本文件才用ASCII模式。
- 客户端版本或算法协商问题(SFTP)
- 现象:连接报“Couldn’t agree a key exchange algorithm”。
- 处理:升级FileZilla到**3.60+**等新版本,或改用FTP测试。
- 磁盘空间或配额不足
- 现象:新建/写入文件失败。
- 处理:
df -h查看磁盘;quota -u $USER查看配额,清理或扩容后再传。
三、按协议给出最小可用配置示例
- SFTP(推荐)
- 服务端:确保SSH已运行(
sudo systemctl status ssh),用户主目录及目标目录对登录用户可写。
- 客户端:协议选SFTP,主机填服务器IP,端口22,登录方式选密码或密钥。
- FTP(vsftpd)
- 安装:
sudo apt-get install vsftpd
- 配置
/etc/vsftpd.conf:
local_enable=YES
write_enable=YES
- 如需被动模式:
pasv_enable=YES,pasv_min_port=50000,pasv_max_port=50009
- 防火墙:放行21与50000-50009;云服务器还需在安全组放行。
- 重启:
sudo systemctl restart vsftpd
- 客户端:协议选FTP,加密选“仅使用普通FTP(不安全)”或“要求显式FTP over TLS”,启用被动模式。
四、仍未解决时的高效求助方式
- 提供关键信息:协议(SFTP/FTP)、FileZilla版本、Ubuntu版本、完整报错原文、服务器端
/var/log/vsftpd.log(FTP)或/var/log/auth.log(SFTP)、以及执行ls -ld 目标目录与df -h的输出。
- 临时绕过法:若只是偶发失败,可尝试更换网络、重启路由器/服务器、或改用另一台客户端交叉验证。