在 Debian 上优化 vsftpd(Very Secure FTP Daemon) 的性能,通常可以从 系统层面、vsftpd 配置、网络与并发控制、以及文件系统/磁盘 几个方面入手。下面按实用度给你一套常见优化方案。
vsftpd 在高并发时容易受限于 fd 数量。
ulimit -n
永久修改(推荐):
sudo vim /etc/security/limits.conf
* soft nofile 65535
* hard nofile 131072
同时确认 /etc/pam.d/common-session 包含:
session required pam_limits.so
编辑:
sudo vim /etc/sysctl.conf
推荐参数(适合 FTP 大文件/并发):
net.core.somaxconn = 4096
net.core.netdev_max_backlog = 4096
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_keepalive_time = 600
sudo sysctl -p
配置文件路径:
/etc/vsftpd.conf
reverse_lookup_enable=NO
被动模式对 NAT / 云服务器更友好,也更稳定。
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
并在防火墙放行:
sudo ufw allow 30000:31000/tcp
max_clients=500
max_per_ip=10
根据你服务器能力调整。
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
ls_recurse_enable=NO
日志太详细会影响性能。
xferlog_enable=YES
log_ftp_protocol=NO
local_max_rate=1048576 # 1MB/s
anon_max_rate=524288 # 512KB/s
避免:
FTP 目录最好不在系统盘,例如:
/data/ftp
netstat -an | grep :21 | wc -l
或:
ss -tnp | grep vsftpd
top
iotop
vmstat 1
如果你面临 高并发 / 大文件 / 云服务器 场景:
| 场景 | 建议 |
|---|---|
| 高并发下载 | 限流 + CDN |
| 大文件传输 | 调大 TCP window |
| 云服务器 | 被动模式必开 |
| 替代方案 | 考虑 SFTP(OpenSSH) |
listen=YES
listen_ipv6=NO
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
reverse_lookup_enable=NO
max_clients=500
max_per_ip=10
local_max_rate=1048576
xferlog_enable=YES
log_ftp_protocol=NO
如果你愿意,可以告诉我:
我可以帮你 定制一套 vsftpd 最优参数。