在 CentOS 上优化 FTP 服务器(常见为 vsftpd,也可能是 ProFTPD / Pure-FTPd),可以从性能、并发、安全、内核、网络几个方面入手。下面以 vsftpd(最常用) 为主说明。
rpm -qa | grep vsftpd
若未安装:
yum install vsftpd -y
systemctl enable vsftpd
max_clients=500
max_per_ip=20
listen=YES
listen_ipv6=NO
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
防火墙开放:
firewall-cmd --add-port=21/tcp --permanent
firewall-cmd --add-port=30000-31000/tcp --permanent
firewall-cmd --reload
anon_max_rate=0
local_max_rate=0
connect_from_port_20=YES
write_enable=YES
如需限速(示例 10MB/s):
local_max_rate=10485760
tcp_wrappers=NO
seccomp_sandbox=NO
vi /etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535
vi /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
mount -o noatime,nodiratime /dev/sdb1 /ftp
getenforce
若为 Enforcing:
setsebool -P ftpd_full_access on
或临时关闭(不推荐):
setenforce 0
anonymous_enable=NO
chroot_local_user=YES
allow_writeable_chroot=YES
使用虚拟用户(高并发场景推荐):
netstat -ant | grep :21 | wc -l
ftpbenchlftp 脚本iperf(网络层)如果你能提供:
我可以给你一套精确优化配置。