下面从安全、性能、稳定性三个角度,系统性地讲一下 如何优化 Debian 上的 vsftpd(Very Secure FTP Daemon)。
假设你使用的是 Debian 10/11/12,配置文件路径为 /etc/vsftpd.conf。
apt update
apt install vsftpd
vsftpd -v
确保使用的是较新版本(≥ 3.x)
anonymous_enable=NO
local_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
⚠️ 如果不加 allow_writeable_chroot=YES,可能登录失败
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO
编辑:
echo "ftpuser" >> /etc/vsftpd.userlist
cat /etc/ftpusers
确保包含:
root
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
防火墙放行:
ufw allow 30000:31000/tcp
apt install openssl
mkdir /etc/ssl/vsftpd
openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/ssl/vsftpd/vsftpd.key \
-out /etc/ssl/vsftpd/vsftpd.pem
vsftpd 配置:
ssl_enable=YES
rsa_cert_file=/etc/ssl/vsftpd/vsftpd.pem
rsa_private_key_file=/etc/ssl/vsftpd/vsftpd.key
force_local_logins_ssl=YES
force_local_data_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
max_clients=50
max_per_ip=5
local_max_rate=1000000 # 1MB/s
reverse_lookup_enable=NO
write_enable=YES
anon_upload_enable=NO
anon_mkdir_write_enable=NO
xferlog_enable=YES
log_ftp_protocol=YES # 调试时可开,正式环境关闭
tail -f /var/log/vsftpd.log
journalctl -u vsftpd
ulimit -n 65535
永久生效:
echo "* soft nofile 65535" >> /etc/security/limits.conf
echo "* hard nofile 65535" >> /etc/security/limits.conf
ufw allow 21/tcp
ufw allow 30000:31000/tcp
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
ssl_enable=YES
rsa_cert_file=/etc/ssl/vsftpd/vsftpd.pem
rsa_private_key_file=/etc/ssl/vsftpd/vsftpd.key
max_clients=50
max_per_ip=5
local_max_rate=1000000
reverse_lookup_enable=NO
xferlog_enable=YES
| 场景 | 建议 |
|---|---|
| 公网 FTP | ✅ vsftpd + TLS |
| 云服务器 | ❌ 不建议 FTP |
| 安全传输 | ✅ SFTP (OpenSSH) |
| 高并发 | ✅ ProFTPD |
如果你愿意,我可以根据你的 使用场景(内网/公网/用户数/系统版本) 给你一份可直接使用的配置文件,或者帮你排查登录慢、连接失败的问题。