溫馨提示×

vsftp帶寬限制設置方法

小樊
48
2025-09-18 10:18:05
欄目: 編程語言

vsftpd帶寬限制設置方法

一、通過vsftpd配置文件設置(內置參數,推薦優先使用)

vsftpd自身提供了靈活的帶寬限制參數,可通過修改主配置文件實現用戶級或全局帶寬控制,操作簡單且無需額外工具。

1. 匿名用戶帶寬限制

針對匿名用戶(ftp/anonymous)設置最大傳輸速率,參數為anonymous_max_rate(單位:字節/秒)。
示例:限制匿名用戶最大下載/上傳速度為30KB/s(30×1024=30720字節/秒),在/etc/vsftpd/vsftpd.conf中添加或修改:
anonymous_max_rate=30720

2. 本地用戶帶寬限制

針對系統本地用戶(如通過SSH登錄的用戶)設置最大傳輸速率,參數為local_max_rate(單位:字節/秒)。
示例:限制本地用戶最大速度為50KB/s(50×1024=51200字節/秒),在配置文件中添加或修改:
local_max_rate=51200

3. 用戶級精細化限制(推薦)

若需為不同用戶設置不同帶寬,可通過user_config_dir參數指定用戶配置目錄,為每個用戶單獨配置local_max_rate。
步驟如下:

  • 啟用用戶配置目錄:在vsftpd.conf中添加:
    user_config_dir=/etc/vsftpd/user_conf(目錄需手動創建并設置權限:sudo mkdir -p /etc/vsftpd/user_conf && sudo chmod 755 /etc/vsftpd/user_conf);
  • 為用戶創建專屬配置文件:如為用戶user1創建/etc/vsftpd/user_conf/user1,內容為:
    local_max_rate=20480(限制user1的最大速度為20KB/s);
  • 重啟vsftpd服務使配置生效:sudo systemctl restart vsftpd

4. 全局帶寬限制(可選)

若需限制所有用戶的總帶寬(而非單個用戶),可使用bandwidth_limit參數(單位:字節/秒)。
示例:限制所有用戶總帶寬為100KB/s(100×1024=102400字節/秒),在配置文件中添加:
bandwidth_limit=102400

二、使用外部工具設置(更精細的流量管理)

若需對整個FTP服務或特定IP進行流量整形(如限制FTP占用的總帶寬),可使用Linux內核自帶的tc工具或第三方工具trickle。

1. 使用tc工具(Linux內核自帶)

tc通過HTB(層級令牌桶)算法實現流量控制,適合對整個網絡接口或特定用戶進行帶寬限制。
步驟如下:

  • 安裝iproute2(包含tc工具):sudo apt-get install iproute2(Debian/Ubuntu)或sudo yum install iproute(CentOS/RHEL);
  • 清除現有隊列規則:sudo tc qdisc del dev eth0 rooteth0為網絡接口,需替換為實際接口,如ens33);
  • 添加HTB隊列:sudo tc qdisc add dev eth0 root handle 1: htb default 10(默認帶寬為10Mbit/s,可根據需求調整);
  • 定義父類帶寬:sudo tc class add dev eth0 parent 1: classid 1:1 htb rate 100mbit ceil 100mbit(總帶寬上限為100Mbit/s);
  • 創建子類(限制FTP帶寬):sudo tc class add dev eth0 parent 1:1 classid 1:10 htb rate 20mbit ceil 20mbit(FTP服務最大可用20Mbit/s);
  • 標記FTP流量:使用iptables標記FTP數據包(端口21及被動模式端口范圍),例如:
    sudo iptables -t mangle -A OUTPUT -p tcp --dport 21 -j MARK --set-mark 10;
  • 關聯標記與子類:sudo tc filter add dev eth0 protocol ip parent 1:0 prio 1 handle 10 fw flowid 1:10

2. 使用trickle工具(輕量級用戶級限制)

trickle可限制單個進程的帶寬,適合臨時限制FTP客戶端或vsftpd服務的帶寬。
步驟如下:

  • 安裝tricklesudo apt-get install trickle(Debian/Ubuntu)或sudo yum install trickle(CentOS/RHEL);
  • 限制FTP客戶端帶寬:啟動FTP客戶端時添加參數,例如限制上傳速度為100KB/s、下載速度為50KB/s:
    trickle -u 100 -d 50 ftp ftp.example.com;
  • 限制vsftpd服務帶寬:修改vsftpd啟動腳本(如/etc/init.d/vsftpd),在啟動命令前添加trickle,例如:
    trickle -u 200 -d 100 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf &(限制vsftpd上傳200KB/s、下載100KB/s)

注意事項

  • 修改配置文件后,務必重啟vsftpd服務(sudo systemctl restart vsftpd)使更改生效;
  • 帶寬單位需統一:anonymous_max_rate、local_max_rate等參數的單位為字節/秒(1KB/s=1024字節/秒),而tc工具的單位為比特/秒(1Kbit/s=1000比特/秒);
  • 測試帶寬限制效果時,可使用lftplftp ftp.example.com)或wget等工具下載/上傳大文件,觀察實際速度是否符合預期。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女