溫馨提示×

Ubuntu如何限制vsftp訪問速度

小樊
33
2025-10-16 05:09:07
欄目: 智能運維

Ubuntu限制vsftpd訪問速度的常用方法

1. 通過vsftpd配置文件設置基礎帶寬限制(推薦)

這是最直接的方式,適用于大多數場景,通過修改vsftpd的主配置文件/etc/vsftpd.conf實現。

  • 安裝vsftpd(若未安裝)
    sudo apt update && sudo apt install vsftpd
    
  • 編輯配置文件
    使用文本編輯器(如nano)打開配置文件:
    sudo nano /etc/vsftpd.conf
    
  • 設置帶寬參數
    在文件中添加或修改以下參數(單位:字節/秒),根據需求調整數值:
    • 限制本地用戶下載速度local_max_rate=5242880(約5MB/s,5×1024×1024);
    • 限制匿名用戶下載速度anon_max_rate=204800(約200KB/s,200×1024);
    • 限制本地用戶上傳速度local_max_rate同樣適用(上傳速度通常與下載速度分開限制,需確保write_enable=YES開啟寫權限)。
      示例配置片段:
    local_enable=YES
    write_enable=YES
    local_max_rate=5242880  # 本地用戶下載/上傳限制為5MB/s
    anon_max_rate=204800    # 匿名用戶下載限制為200KB/s
    
  • 保存并重啟服務
    Ctrl+XYEnter保存文件,然后重啟vsftpd使配置生效:
    sudo systemctl restart vsftpd
    

2. 使用tc命令進行高級流量控制(可選)

若需要基于IP、接口或更細粒度的帶寬分配(如限制某臺主機的FTP流量),可使用Linux自帶的tc(Traffic Control)工具。

  • 安裝iproute2工具包(包含tc):
    sudo apt install iproute2
    
  • 配置流量控制規則(以限制eth0接口的FTP流量為例):
    • 創建HTB隊列
      sudo tc qdisc add dev eth0 root handle 1: htb
      
    • 分配總帶寬(如100Mbps):
      sudo tc class add dev eth0 parent 1: classid 1:1 htb rate 100mbit ceil 100mbit
      
    • 創建子類限制特定用戶帶寬(如限制192.168.1.100的FTP流量為10Mbps):
      sudo tc class add dev eth0 parent 1:1 classid 1:10 htb rate 10mbit ceil 10mbit
      
    • 標記數據包(通過iptables標記目標IP的FTP流量):
      sudo iptables -t mangle -A OUTPUT -s 192.168.1.100 -p tcp --dport 21 -j MARK --set-mark 10
      
    • 關聯標記與子類
      sudo tc filter add dev eth0 parent 1: protocol ip prio 1 handle 10 fw flowid 1:10
      
  • 注意事項
    tc規則重啟后會丟失,需將其添加到/etc/rc.local或使用systemd服務實現開機自啟。

3. 通過limits.conf限制用戶資源(補充)

若需限制用戶進程的文件描述符或進程數(間接影響傳輸速度),可編輯/etc/security/limits.conf

sudo nano /etc/security/limits.conf

添加以下內容(以限制用戶ftpuser為例):

ftpuser hard nofile 1024  # 最大文件描述符數
ftpuser soft nofile 512   # 軟限制
ftpuser hard nproc 1024   # 最大進程數

保存后,用戶下次登錄時生效(需重新登錄)。

驗證配置

無論使用哪種方法,均可通過以下方式驗證速度限制是否生效:

  • 使用FTP客戶端(如ftp命令或FileZilla)連接服務器;
  • 上傳/下載一個大文件(如100MB的測試文件),觀察傳輸速度是否符合預期。

提示

  • 基礎限制(vsftpd.conf)適合大多數場景,配置簡單且無需額外工具;
  • 高級限制(tc)適合需要精細化管理的環境,但配置復雜;
  • 修改配置前建議備份原文件(如sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak)。

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