优化 Linux 上的 FTP 服务器(常见的有 vsftpd、ProFTPD、Pure-FTPd)通常可以从 性能、安全、连接管理、带宽控制和系统层面 几个方面入手。下面以 vsftpd(最常用) 为主,兼顾通用优化思路。
生产环境优先选 vsftpd
/etc/vsftpd/vsftpd.conf)# 最大连接数
max_clients=1000
max_per_ip=20
# 空闲超时(秒)
idle_session_timeout=300
data_connection_timeout=120
# 关闭 DNS 反向解析(提升连接速度)
reverse_lookup_enable=NO
# 使用独立模式(更快)
listen=YES
listen_ipv6=NO
# 关闭匿名(安全+性能)
anonymous_enable=NO
# 启用异步 IO(大文件更快)
async_abor_enable=YES
# 使用被动模式(防火墙友好)
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
# 允许断点续传
allow_resume=YES
# 本地用户
local_enable=YES
write_enable=YES
# 使用 xferlog(轻量日志)
xferlog_enable=YES
xferlog_std_format=YES
# 查看
ulimit -n
# 修改(/etc/security/limits.conf)
* soft nofile 65535
* hard nofile 65535
vsftpd 也要匹配:
# vsftpd.conf
max_clients=1000
编辑 /etc/sysctl.conf:
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30
net.core.netdev_max_backlog = 65535
sysctl -p
noatime 挂载mount -o remount,noatime /data
避免系统用户暴露:
local_max_rate=1048576 # 1MB/s
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --dport 30000:31000 -j ACCEPT
如果允许 非 FTP 协议:
FTP 明文传输,公网环境不推荐
# 查看连接
netstat -ant | grep :21
# 日志分析
tail -f /var/log/vsftpd.log
# 性能测试
ftpbench
lftp mirror
✅ 用 vsftpd
✅ 关闭 DNS 反查
✅ 限制连接数和速率
✅ 提高文件描述符
✅ 优化内核网络参数
✅ 使用被动模式
✅ 公网用 SFTP 替代 FTP
如果你能告诉我:
我可以给你一套 针对性配置模板。