提升 Linux FTP 服务器(如 vsftpd、ProFTPD、Pure-FTPd)的传输速度,需要从网络、系统、磁盘、FTP 配置、客户端等多个层面一起优化。下面按实战优先级给你一套完整方案。
在乱改配置前,先判断是哪里慢:
# 看 CPU
top
# 看磁盘 IO
iostat -x 1
# 看网络
iftop
常见瓶颈:
主动模式(PORT)在 NAT / 防火墙环境下非常慢甚至失败。
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
防火墙放行:
firewall-cmd --add-port=30000-31000/tcp --permanent
firewall-cmd --reload
reverse_lookup_enable=NO
max_clients=200
max_per_ip=10
ls_recurse_enable=NO
ascii_upload_enable=NO
ascii_download_enable=NO
如果可以,优先用系统用户。
vi /etc/sysctl.conf
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
net.ipv4.tcp_congestion_control = cubic
生效:
sysctl -p
ulimit -n 100000
永久生效:
vi /etc/security/limits.conf
* soft nofile 100000
* hard nofile 100000
机械盘 FTP 大文件传输很容易跑不满带宽。
mount -o noatime,nodiratime /dev/sdX /data
mkfs.xfs /dev/sdX
ip link set eth0 mtu 1500
SSL/TLS 会显著降低速度(CPU 消耗大)。
如果必须加密,使用 AES-NI 硬件加速。
✅ 使用支持 多线程下载 的客户端:
示例(lftp):
lftp -e "pget -n 10 file.iso; quit" ftp://user:pass@server
wget ftp://user:pass@server/file.iso
或:
curl -o /dev/null ftp://server/file.iso
| 项目 | 建议 |
|---|---|
| FTP 软件 | vsftpd |
| 模式 | PASV |
| 磁盘 | SSD / XFS |
| 网络 | 关闭 DNS 反向解析 |
| 系统 | 调整 TCP 缓冲 |
| 客户端 | 多线程 |
你可以直接贴出:
我可以 直接帮你给出最优配置参数。