CentOS下VSFTP并发连接限制配置指南
VSFTP通过vsftpd.conf文件中的以下参数控制并发连接:
max_clients:限制FTP服务器允许的最大并发客户端连接数(所有IP的总和)。默认值为0(无限制),建议根据服务器硬件资源(如CPU、内存)和网络带宽设置合理值(如100-500)。max_per_ip:限制每个IP地址的最大并发连接数。默认值为0(无限制),可防止单个IP占用过多连接(如设置为5-10)。anon_max_rate:限制匿名用户的最大数据传输速度(字节/秒),默认0(无限制),可设置为50000(约50KB/s)以平衡性能与公平性。local_max_rate:限制本地用户的最大数据传输速度(字节/秒),默认0(无限制),建议设置为500000(约500KB/s)以满足普通用户需求。修改前务必备份,防止配置错误导致服务异常:
sudo cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
使用文本编辑器(如vi)打开vsftpd.conf:
sudo vi /etc/vsftpd/vsftpd.conf
在文件中添加或修改以下参数(根据需求调整数值):
max_clients=100 # 限制总并发连接数为100
max_per_ip=5 # 每个IP最多5个并发连接
anon_max_rate=50000 # 匿名用户传输速度限制为50KB/s
local_max_rate=500000 # 本地用户传输速度限制为500KB/s
保存配置后,重启服务使更改生效:
# CentOS 7及以上(使用systemd)
sudo systemctl restart vsftpd
# CentOS 6及以下(使用SysVinit)
sudo service vsftpd restart
通过以下命令查看当前生效的配置参数:
sudo vsftpd -T | grep -E "max_clients|max_per_ip"
若输出包含max_clients=100和max_per_ip=5,则说明配置成功。
VSFTP的并发连接数受系统文件描述符(nofile)限制,默认值可能过低。需修改/etc/security/limits.conf文件:
sudo vi /etc/security/limits.conf
添加以下内容(适用于所有用户):
* soft nofile 4096 # 软限制:单个用户最多打开4096个文件
* hard nofile 8192 # 硬限制:单个用户最多打开8192个文件
修改后,需重新登录用户或重启系统使限制生效。
被动模式可解决防火墙/NAT环境下的连接问题,需在vsftpd.conf中添加以下参数:
pasv_enable=YES # 启用被动模式
pasv_min_port=10000 # 被动模式最小端口(建议10000以上)
pasv_max_port=10100 # 被动模式最大端口
同时,需在防火墙中开放该端口范围:
sudo firewall-cmd --permanent --add-port=10000-10100/tcp
sudo firewall-cmd --reload
sudo firewall-cmd --permanent --add-service=ftp
sudo firewall-cmd --permanent --add-port=10000-10100/tcp
sudo firewall-cmd --reload
sudo setsebool -P ftp_home_dir on
启用详细日志记录,便于排查问题:
xferlog_enable=YES # 启用传输日志
xferlog_file=/var/log/vsftpd.log # 日志文件路径
log_verbosity=3 # 日志详细程度(0-3,3为最详细)
通过tail -f /var/log/vsftpd.log实时查看连接和传输日志。
ssl_enable=YES),保护数据传输安全。