Linux 上的 FTP 服务器(如 vsftpd、proftpd、pure-ftpd 等)出现高 CPU / 内存 / 带宽占用,通常不是 FTP 本身“天然吃资源”,而是配置、使用方式或外部环境导致的。下面按常见原因给你系统梳理一下。
表现:CPU 高、内存高、连接数暴涨
原因:
max_clients / max_per_ip 未限制✅ 检查:
netstat -ant | grep :21 | wc -l
ss -tan | grep :21
✅ 解决(以 vsftpd 为例):
max_clients=50
max_per_ip=2
表现:端口占用多、内存上升
原因:
✅ 建议:
pasv_min_port=30000
pasv_max_port=31000
表现:带宽高、IO 高、CPU 中等
原因:
✅ 检查:
iotop
iftop
✅ 优化:
local_max_rate=500000 # 500KB/s
anon_max_rate=100000
表现:CPU 高、磁盘 IO 高
原因:
xferlog + debug 日志开着✅ 检查:
ls -lh /var/log/vsftpd.log
✅ 优化:
表现:连接卡住、重试多、资源堆积
原因:
✅ 解决:
pasv_address=公网IP
表现:
✅ 检查:
grep "Failed" /var/log/secure
✅ 解决:
表现:内存泄漏、长时间运行后变卡
解决:
ftpwho
ps aux | grep ftp
升级:
yum update vsftpd
apt upgrade vsftpd
ss -tan | grep :21
top
iotop
iftop
tail -f /var/log/vsftpd.log
生产环境强烈建议用 SFTP 替代 FTP
原因:
如果你愿意,可以告诉我:
我可以直接帮你对着配置文件改。