首页/发现新知
视界 · 深度阅读

centos ftpserver为何上传慢

在 CentOS 上搭建的 FTP 服务器(ftpserver)上传慢,通常不是单一原因,而是网络、服务配置、磁盘或安全策略叠加导致的。下面从最常见到较少见逐一分析,并给出排查和解决办法。


一、网络层面(最常见)

1. 被动模式(PASV)端口未正确开放

现象:登录正常,但上传卡住或极慢
原因:

  • FTP 使用 PASV 模式
  • 防火墙只开了 21 端口,未开 PASV 端口范围

解决(vsftpd 示例):

# vsftpd.conf
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000

防火墙:

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

2. MTU / 网络链路问题

现象:大文件特别慢,小文件正常
排查:

ping -s 1472 ftp_server_ip

如果丢包或超时,可能是 MTU 问题。

解决:

ip link set eth0 mtu 1400

二、FTP 服务配置问题

3. vsftpd 限速配置

现象:限速明显(如 100KB/s)

检查:

grep -E "anon_max_rate|local_max_rate" /etc/vsftpd/vsftpd.conf

如果有:

local_max_rate=102400

说明被限速了,去掉或调大。


4. 开启了 ASCII 模式传输

现象:文本文件慢,二进制正常

解决:

ascii_upload_enable=NO
ascii_download_enable=NO

三、磁盘与系统性能

5. 磁盘 IO 瓶颈

排查:

iostat -x 1

或

top

看 %wa 是否很高。

解决:

  • 换更快的磁盘
  • 避免上传到 NFS / 网络盘

6. SELinux 影响(CentOS 特有)

现象:上传失败或极慢

检查:

getsebool -a | grep ftp

常见修复:

setsebool -P ftpd_full_access on

四、安全与监控软件

7. 防火墙 / 安全软件扫描

  • firewalld
  • SELinux
  • 第三方杀毒(如 clamav)

上传时扫描文件会导致极慢。


五、客户端问题(容易被忽略)

  • Windows 资源管理器 FTP:很慢
  • FileZilla:稳定
  • 使用 lftp 测试:
lftp -u user,pass ftp://ip
put bigfile.iso

六、快速排查顺序(推荐)

  1. 用 lftp 或 FileZilla 测试
  2. 看是否 PASV 端口未开
  3. 检查 vsftpd.conf 限速
  4. 看磁盘 IO
  5. 检查 SELinux
  6. 网络 MTU / 丢包

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

  • 使用的 FTP 软件(vsftpd / proftpd)
  • CentOS 版本
  • 是否云服务器
  • 上传速度大概多少

我可以给你针对性配置。

读到这里,发现更多一点。探索更多内容 ↗