Debian FTP服務器(vsftpd)資源限制設置方法
vsftpd內置帶寬限制功能,可通過修改配置文件/etc/vsftpd.conf
實現,適用于大多數場景。
bandwidth_enable=YES
,開啟全局帶寬控制。bandwidth_limit=數值
(單位:字節/秒),例如bandwidth_limit=1024
表示全局限制為1KB/s。local_max_rate=數值
(單位:字節/秒),例如local_max_rate=512000
表示本地用戶最大上傳速度為512KB/s。anon_max_rate=數值
(單位:字節/秒),例如anon_max_rate=262144
表示匿名用戶最大上傳速度為256KB/s。sudo systemctl restart vsftpd
。Trickle是輕量級帶寬管理工具,可針對特定進程限制帶寬,適用于需要更靈活控制的場景。
sudo apt install trickle
。-u
)和下載(-d
)速度(單位:KB/s),例如限制為100KB/s上傳、50KB/s下載:trickle -u 100 -d 50 vsftpd
。Wondershaper可限制網絡接口的總帶寬,適用于需要控制整個服務器FTP流量的場景。
sudo apt install wondershaper
。sudo wondershaper 接口名 下載速度 上傳速度
(單位:kbps),例如限制eth0
接口下載1Mbps、上傳512kbps:sudo wondershaper eth0 1024 512
。sudo wondershaper clear 接口名
。通過vsftpd配置文件設置max_clients
參數,限制同時連接到服務器的客戶端數量。例如,限制最多10個客戶端連接:max_clients=10
。
通過vsftpd配置文件設置max_per_ip
參數,防止同一IP地址占用過多連接。例如,限制每個IP最多5個并發連接:max_per_ip=5
。
修改配置文件后,重啟vsftpd服務:sudo systemctl restart vsftpd
。查看vsftpd日志文件/var/log/vsftpd.log
,確認連接數是否符合限制:tail -f /var/log/vsftpd.log
。
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
),避免誤操作導致服務異常。local_max_rate
、anon_max_rate
為字節/秒,bandwidth_limit
也為字節/秒;Trickle和Wondershaper使用KB/s或kbps為單位。sudo ufw allow 20/tcp; sudo ufw allow 21/tcp; sudo ufw allow 1024:1048/tcp
(被動模式端口范圍需與vsftpd配置中的pasv_min_port
、pasv_max_port
一致)。