溫馨提示×

如何配置SFTP的帶寬限制

小樊
41
2025-09-08 06:10:54
欄目: 編程語言

以下是不同系統配置SFTP帶寬限制的常見方法:

Linux系統(以CentOS/Debian為例)

1. 使用tc工具(推薦)

  • 安裝工具
    # CentOS/RHEL  
    sudo yum install iproute  
    # Debian/Ubuntu  
    sudo apt-get install iproute2  
    
  • 配置規則(以限制上傳1Mbps、下載2Mbps為例):
    # 創建隊列規則  
    sudo tc qdisc add dev eth0 root handle 1: htb default 30  
    # 創建類(父類限制總帶寬,子類限制SFTP帶寬)  
    sudo tc class add dev eth0 parent 1: classid 1:1 htb rate 10mbit ceil 10mbit  
    sudo tc class add dev eth0 parent 1:1 classid 1:10 htb rate 2mbit ceil 2mbit  # 下載  
    sudo tc class add dev eth0 parent 1:1 classid 1:20 htb rate 1mbit ceil 1mbit  # 上傳  
    # 關聯SFTP端口(默認22)  
    sudo tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 22 0xffff flowid 1:10  # 下載  
    sudo tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip sport 22 0xffff flowid 1:20  # 上傳  
    
  • 持久化:將命令寫入/etc/rc.local或使用systemd服務。

2. 使用OpenSSH的Match指令(需較新版本)

  • 編輯/etc/ssh/sshd_config
    Match User <用戶名>  # 或 Match LocalPort 22  
        BandwidthLimit <限制值>  # 單位:kbps(如1024表示1Mbps)  
        # 或分別限制上傳/下載(部分版本支持)  
        # LimitStream 1mbit上行  
        # LimitStream 2mbit下行  
    
  • 重啟SSH服務:
    sudo systemctl restart sshd  
    

3. 第三方工具

  • trickle(用戶級限制):
    sudo apt-get install trickle  # Debian/Ubuntu  
    sudo yum install trickle      # CentOS/RHEL  
    # 在sshd_config中指定用戶使用trickle  
    Match User <用戶名>  
        ForceCommand /usr/bin/trickle -d <下載限制> -u <上傳限制> sftp-server  
    

注意事項

  • tc工具需根據實際網絡接口(如eth0、ens33)調整,可通過ip a查看接口名稱。
  • 生產環境配置前需測試,避免影響正常服務。
  • 部分舊系統需升級OpenSSH版本以支持BandwidthLimitLimitStream。

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