通过关闭TurboBoost/SpeedStep功能,确保CPU以最高性能运行,避免性能波动对FTP传输的影响。可通过echo 1 > /proc/sys/devices/system/cpu/vulnerabilities/cache_alignment命令临时关闭(需root权限)。
增大系统文件句柄数量,避免高并发连接时出现“Too many open files”错误。编辑/etc/security/limits.conf,添加以下内容:
* soft nofile 65535
* hard nofile 65535
同时编辑/etc/sysctl.conf,添加fs.file-max=1000000,然后执行sysctl -p使配置生效。
修改/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.ipv4.tcp_slow_start_after_idle = 0 # 禁用慢启动(提升持续传输性能)
执行sysctl -p使配置生效。
通过max_clients(服务器最大并发连接数)和max_per_ip(单个IP最大并发连接数)限制并发,防止服务器过载。例如:
max_clients = 100 # 根据服务器CPU/内存资源调整
max_per_ip = 5 # 限制单个IP的并发连接,防止滥用
被动模式(PASV)是FTP在防火墙/NAT环境下的推荐模式,需指定端口范围以避免连接失败:
pasv_enable = YES
pasv_min_port = 1024 # 被动模式最小端口(建议1024-65535之间)
pasv_max_port = 1048 # 被动模式最大端口
pasv_address = your_server_public_ip # 若服务器有公网IP,需指定(可选)
通过local_max_rate(本地用户)和anon_max_rate(匿名用户)限制传输速度,确保关键业务的带宽需求。单位为字节/秒(如1MB/s=1024*1024):
local_max_rate = 10485760 # 本地用户最大10MB/s
anon_max_rate = 5242880 # 匿名用户最大5MB/s
anonymous_enable = NO
listen_ipv6 = NO
chroot_local_user=YES将用户限制在其家目录,提升安全性:chroot_local_user = YES
allow_writeable_chroot = YES # 允许用户在家目录写入(需配合chroot使用)
增大数据连接缓冲区,提升大数据量传输效率:
data_connection_buffer_size = 102400 # 单位:字节(如100KB)
通过async_abor_enable=YES启用异步I/O,提升并发处理能力:
async_abor_enable = YES
开放FTP默认端口(21)及被动模式端口范围(如1024-1048),以firewalld为例:
sudo firewall-cmd --permanent --add-port=21/tcp
sudo firewall-cmd --permanent --add-port=1024-1048/tcp
sudo firewall-cmd --reload
若启用了SELinux,需调整以下策略:
sudo setsebool -P ftp_home_dir 1 # 允许FTP访问用户家目录
sudo setsebool -P allow_ftpd_anon_write 0 # 禁止匿名用户写入(可选)
xferlog_enable = YES
xferlog_file = /var/log/vsftpd/xferlog
xferlog_std_format = YES
tail -f /var/log/vsftpd.log实时监控连接状态,或通过Logwatch生成每日日志报告。通过sudo yum update vsftpd安装最新版本,获取性能优化和新功能(如更好的并发处理)。