CentOS优化VSFTP的完整步骤
确保系统已安装最新稳定版VSFTPD(版本≥3.0.3),旧版本可能存在性能漏洞。使用以下命令安装/更新:
sudo yum update -y && sudo yum install -y vsftpd
anonymous_enable=NO
local_enable=YES
write_enable=YES # 允许上传文件
local_umask=022 # 设置默认文件权限
pasv_enable=YES
pasv_min_port=1024
pasv_max_port=1048
pasv_address=<服务器公网IP> # 若服务器有公网IP,需填写
max_clients=100
max_per_ip=5
data_connection_buffer_size=32768 # 单位:字节(32KB)
tcp_keepalive=YES
listen_ipv6=NO
chroot_local_user=YES),并允许写入(allow_writeable_chroot=YES)。chroot_local_user=YES
allow_writeable_chroot=YES
ssl_enable=YES
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
rsa_cert_file=/etc/pki/tls/certs/vsftpd.crt
rsa_private_key_file=/etc/pki/tls/private/vsftpd.key
增大系统允许的单个进程打开文件数(避免大量连接时出现“Too many open files”错误)。编辑/etc/security/limits.conf,添加:
* soft nofile 65535
* hard nofile 65535
生效方式:重新登录或执行ulimit -n 65535。
编辑/etc/sysctl.conf,添加以下参数以提升网络吞吐量和连接处理能力:
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.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 # 拥塞控制算法(cubic适合高速网络)
net.ipv4.tcp_no_metrics_save = 1 # 不保存连接指标
net.ipv4.tcp_low_latency = 1 # 优先低延迟
生效方式:sudo sysctl -p。
若系统启用SELinux(getenforce返回Enforcing),需调整策略允许VSFTPD访问用户目录:
sudo setsebool -P ftp_home_dir on # 允许访问家目录
sudo chcon -Rt svirt_sandbox_file_t /home/* # 设置家目录安全上下文
允许FTP相关端口(控制端口21、被动模式端口范围)通过防火墙(以firewalld为例):
sudo firewall-cmd --permanent --add-service=ftp
sudo firewall-cmd --permanent --add-port=1024-1048/tcp # 被动模式端口范围
sudo firewall-cmd --reload
netstat或ss命令监控FTP连接数,确认配置生效。sudo netstat -antp | grep vsftpd
sudo ss -s | grep ftp
/var/log/vsftpd.log(或自定义日志路径),定位性能瓶颈(如大量超时、拒绝连接)。lftp或FileZilla的压缩功能,减少传输数据量(需网络带宽充足)。通过以上步骤,可显著提升CentOS上VSFTP的性能、安全性和稳定性。需根据实际服务器配置(CPU、内存、带宽)和业务需求(并发数、传输文件大小)调整参数。