Ubuntu 上 vsftpd 性能优化要点
一 核心配置优化
max_clients=200、max_per_ip=10、local_max_rate=0(不限制)或按业务设置为如5–10 MB/s;禁用匿名以减少资源占用与攻击面:anonymous_enable=NO、local_enable=YES、write_enable=YES。pasv_enable=YES、pasv_min_port=10000、pasv_max_port=11000。xferlog_enable=YES、xferlog_std_format=YES。ssl_enable=YES、allow_anon_ssl=NO、force_local_data_ssl=YES、force_local_logins_ssl=YES、ssl_tlsv1=YES、ssl_sslv2=NO、ssl_sslv3=NO、rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem、rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key。chroot_local_user=YES、allow_writeable_chroot=YES(vsftpd ≥ 3.0.2 可用),必要时配合 userlist_enable=YES、userlist_file=/etc/vsftpd.user_list 做白名单。二 系统与网络优化
sudo ufw allow 21/tcp、sudo ufw allow 990/tcp、sudo ufw allow 40000:50000/tcp;如使用主动模式,还需放行 20/tcp。noatime,nodiratime)、避免高 I/O 争用,有助于提升大文件传输吞吐。三 典型配置片段
# 基础与并发
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
max_clients=200
max_per_ip=10
local_max_rate=0
# 日志
xferlog_enable=YES
xferlog_std_format=YES
# 被动模式
pasv_enable=YES
pasv_min_port=10000
pasv_max_port=11000
# TLS(可选)
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
# 访问限制
chroot_local_user=YES
allow_writeable_chroot=YES
userlist_enable=YES
userlist_file=/etc/vsftpd.user_list
说明:以上为常用性能与安全兼顾的示例,端口范围与并发阈值请结合业务与带宽评估调整。
四 验证与运维
sudo vsftpd -v 检查版本/语法,sudo systemctl restart vsftpd 使配置生效。ss -lntp | grep ':21\|:990\|:10000-11000' 确认端口监听与范围。max_clients、max_per_ip、local_max_rate 与端口范围。