关闭匿名访问(anonymous_enable=NO),减少不必要的资源消耗;限制用户登录目录(chroot_local_user=YES),防止用户访问系统关键文件,提升安全性与性能。
根据服务器硬件配置(如CPU、内存),合理设置max_clients(最大并发连接数,如100)和max_per_ip(单个IP最大连接数,如5),避免服务器过载。
配置pasv_enable=YES,并设置合理的端口范围(pasv_min_port=1024、pasv_max_port=1048),兼容防火墙/NAT环境,提升数据传输成功率。
编辑/etc/security/limits.conf,增加以下内容,提升系统处理并发连接的能力:
* soft nofile 65535
* hard nofile 65535。
编辑/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超时时间(秒)
应用配置:sudo sysctl -p。
在vsftpd.conf中设置data_connection_buffer_size=102400(单位:字节,如100KB),提升数据传输效率。
配置async_abor_enable=YES,允许客户端在数据传输过程中取消操作,减少服务器资源占用。
通过local_max_rate(本地用户,如100KB/s)和anon_max_rate(匿名用户,如50KB/s)限制传输速度,避免单个用户占用过多带宽。
使用firewalld开放FTP相关端口(21端口及被动模式端口范围):
sudo firewall-cmd --permanent --add-port=21/tcp
sudo firewall-cmd --permanent --add-port=1024-1048/tcp
sudo firewall-cmd --reload
```。
### 2. SELinux配置
若启用SELinux,需设置以下参数,允许FTP访问用户家目录:
```bash
sudo setsebool -P ftp_home_dir on
sudo chcon -Rt svirt_sandbox_file_t /home/*
```。
### 3. 日志与监控
启用传输日志(`xferlog_enable=YES`),定期使用`top`、`htop`、`netstat`等工具监控服务器资源使用情况(如CPU、内存、连接数),及时调整配置。
## 五、其他优化建议
- **使用SSD**:将FTP数据目录放在SSD上,提升文件读写速度。
- **升级版本**:安装最新版VSFTPD,获取性能优化和新功能支持。
- **禁用IPv6**:若无需IPv6,设置`listen_ipv6=NO`,减少内核资源消耗。