优化 Ubuntu 上的 FTPServer(通常指 vsftpd + SSL/TLS),可以从 性能、安全、稳定性、并发能力 四个方面入手。下面给你一套实战级优化方案,适用于生产环境。
先确认你使用的是 vsftpd(最常见):
dpkg -l | grep vsftpd
配置文件位置:
/etc/vsftpd.conf
FTP 在大文件、NAT 环境下性能更好:
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
防火墙放行:
ufw allow 30000:31000/tcp
max_clients=200
max_per_ip=5
避免死连接占用资源:
idle_session_timeout=300
data_connection_timeout=120
reverse_lookup_enable=NO
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/letsencrypt/live/domain/fullchain.pem
rsa_private_key_file=/etc/letsencrypt/live/domain/privkey.pem
anonymous_enable=NO
chroot_local_user=YES
allow_writeable_chroot=YES
⚠️ 若使用虚拟用户,需额外配置
ulimit -n
永久修改:
vim /etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535
vim /etc/sysctl.conf
net.core.somaxconn = 4096
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_tw_reuse = 1
生效:
sysctl -p
xferlog_enable=YES
log_ftp_protocol=YES
⚠️ 生产环境调试后可关闭 log_ftp_protocol
grep "FAIL" /var/log/vsftpd.log
ufw allow 21/tcp
ufw allow 30000:31000/tcp
检查监听:
ss -lntp | grep vsftpd
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
ssl_enable=YES
rsa_cert_file=/etc/ssl/certs/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.key
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
max_clients=200
max_per_ip=5
idle_session_timeout=300
reverse_lookup_enable=NO
你可以直接告诉我:
我可以给你 针对你环境的定制优化方案 ✅