优化 Ubuntu 上的 FTP 服务器(通常指 vsftpd)可以从性能、安全、稳定性、并发能力等方面入手。下面按推荐顺序给你一套完整优化方案,适用于生产环境。
Ubuntu 最常见、稳定的是 vsftpd:
sudo apt update
sudo apt install vsftpd
查看状态:
systemctl status vsftpd
编辑配置文件:
sudo nano /etc/vsftpd.conf
确保:
anonymous_enable=NO
防止用户访问系统根目录:
chroot_local_user=YES
allow_writeable_chroot=YES
避免
500 OOPS: vsftpd: refusing to run with writable root inside chroot
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO
添加允许用户:
echo "youruser" | sudo tee -a /etc/vsftpd.userlist
max_clients=200
max_per_ip=10
根据服务器实际负载调整,避免被恶意连接打满。
local_max_rate=1048576 # 1MB/s(单位:字节)
anon_max_rate=524288 # 512KB/s
现代网络环境几乎必须用:
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
并在防火墙中放行:
sudo ufw allow 30000:31000/tcp
sudo nano /etc/security/limits.conf
添加:
* soft nofile 65535
* hard nofile 65535
并确认:
ulimit -n
sudo nano /etc/sysctl.conf
添加:
net.core.somaxconn = 4096
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_tw_reuse = 1
应用:
sudo sysctl -p
xferlog_enable=YES
log_ftp_protocol=YES # 调试阶段可开启
查看日志:
tail -f /var/log/vsftpd.log
ssl_enable=YES
rsa_cert_file=/etc/ssl/certs/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.key
生成证书:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/ssl/private/vsftpd.key \
-out /etc/ssl/certs/vsftpd.pem
sudo groupadd ftpusers
sudo usermod -aG ftpusers youruser
sudo systemctl restart vsftpd
sudo systemctl enable vsftpd
测试连接:
ftp localhost
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
max_clients=200
max_per_ip=10
local_max_rate=1048576
xferlog_enable=YES
log_ftp_protocol=NO
✅ 根据你的 服务器配置(CPU / 内存 / 带宽) 定制参数
✅ 判断 FTP vs SFTP vs S3 哪种更适合你
✅ 排查 连接慢 / 卡顿 / 登录失败 问题
你只需要告诉我: