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
),保護數據傳輸安全。