vsftpd传输速度慢通常与系统配置、vsftpd参数、网络环境相关,以下是针对性优化步骤:
关闭省电模式
进入BIOS设置,禁用TurboBoost/SpeedStep功能,避免CPU动态调参导致的性能波动;确保系统运行在“高性能”模式(通过cpufreq-selector工具调整)。
优化文件句柄限制
编辑/etc/security/limits.conf,增加文件描述符限制(避免大量并发连接时出现“Too many open files”错误):
* soft nofile 65535
* hard nofile 65535
编辑/etc/systemd/system.conf,修改DefaultLimitNOFILE:
DefaultLimitNOFILE=65535
重启系统或执行systemctl daemon-reload使配置生效。
调整内核网络参数
编辑/etc/sysctl.conf,优化TCP连接和缓冲区设置:
net.core.somaxconn = 65535 # 增大连接队列长度
net.ipv4.ip_local_port_range = 1024 65535 # 扩大客户端端口范围
net.ipv4.tcp_max_syn_backlog = 65535 # 增大SYN队列长度
net.ipv4.tcp_syncookies = 1 # 防止SYN Flood攻击
net.ipv4.tcp_tw_reuse = 1 # 复用TIME-WAIT连接
net.ipv4.tcp_fin_timeout = 30 # 缩短TIME-WAIT超时时间
net.core.netdev_max_backlog = 2048 # 增大网卡接收队列
执行sysctl -p使配置生效。
启用被动模式(PASV)
被动模式更适合NAT/防火墙环境,避免主动模式下的“连接失败”问题。在/etc/vsftpd.conf中设置:
pasv_enable=YES
pasv_min_port=1024 # 被动模式端口范围起始值
pasv_max_port=1048 # 被动模式端口范围结束值
需在防火墙中开放该端口范围(如firewall-cmd --permanent --add-port=1024-1048/tcp)。
调整并发连接限制
限制最大并发连接数和单IP连接数,防止服务器过载:
max_clients=100 # 最大并发连接数(根据服务器性能调整)
max_per_ip=5 # 单IP最大连接数
避免设置过高导致资源耗尽。
限制用户传输速度
通过local_max_rate(本地用户)和anon_max_rate(匿名用户)限制速度,避免单个用户占用全部带宽(单位:字节/秒,如1MB/s=1024*1024):
local_max_rate=1048576 # 本地用户限速1MB/s
anon_max_rate=524288 # 匿名用户限速512KB/s
禁用不必要的特性
关闭匿名访问、IPv6(若不需要)和日志记录(若不需要详细日志),减少资源消耗:
anonymous_enable=NO # 禁用匿名访问
listen_ipv6=NO # 禁用IPv6
xferlog_enable=NO # 禁用传输日志(若不需要)
调整传输缓冲区大小
增大数据传输缓冲区,减少数据包传输次数:
data_connection_buffer_size=102400 # 缓冲区大小(单位:字节,建议100KB-500KB)
启用异步I/O
提升大文件传输效率:
async_abor_enable=YES
使用高速网络设备
确保服务器网卡为千兆及以上(如1G/10G网卡),避免网络瓶颈。
优化防火墙设置
若使用firewalld,开放FTP端口(21)和被动模式端口范围:
firewall-cmd --permanent --add-service=ftp
firewall-cmd --permanent --add-port=1024-1048/tcp # 被动模式端口范围
firewall-cmd --reload
若使用iptables,需添加相应规则。
启用TCP Fast Open
减少TCP握手延迟,提升连接建立速度:
编辑/etc/sysctl.conf,添加:
net.ipv4.tcp_fastopen = 3
执行sysctl -p使配置生效。
若以上软件优化仍无法满足需求,考虑升级硬件:
yum update vsftpd升级。htop(查看CPU/内存)、iostat(查看磁盘IO)、netstat(查看连接数)等工具,定期分析性能瓶颈。通过以上优化步骤,可显著提升vsftpd在CentOS中的传输速度。需根据实际服务器配置和工作负载调整参数(如max_clients、local_max_rate等),避免过度优化导致资源浪费。