溫馨提示×

Ubuntu FTP如何設置傳輸速率限制

小樊
40
2025-10-04 17:14:16
欄目: 智能運維

Ubuntu FTP設置傳輸速率限制的常用方法

1. 使用vsftpd配置文件限制帶寬(推薦)

vsftpd是Ubuntu上最主流的FTP服務器軟件,通過修改其配置文件可直接限制用戶帶寬,操作簡單且穩定。

  • 安裝vsftpd(若未安裝):
    sudo apt update && sudo apt install vsftpd
    
  • 編輯配置文件
    使用文本編輯器(如nano)打開/etc/vsftpd.conf
    sudo nano /etc/vsftpd.conf
    
  • 設置帶寬限制參數
    • 全局默認限制(可選):添加local_max_rate(本地用戶,默認包括匿名用戶)和anon_max_rate(匿名用戶)參數,單位為字節/秒(1KB/s=1024字節/秒)。例如:
      local_max_rate=102400  # 本地用戶默認下載/上傳限制為100KB/s
      anon_max_rate=51200    # 匿名用戶默認下載限制為50KB/s(上傳通常禁用)
      
    • 特定用戶限制(可選):若需為指定用戶單獨設置,需開啟用戶列表功能:
      userlist_enable=YES
      userlist_file=/etc/vsftpd.userlist  # 用戶列表文件路徑
      userlist_deny=NO                   # 允許列表中的用戶連接(設為YES則拒絕)
      
      然后在/etc/vsftpd.userlist中添加用戶名(每行一個),并在配置文件中通過local_max_rate覆蓋其默認限制(需配合user_config_dir指向用戶專屬配置目錄,此處略復雜,建議參考vsftpd文檔)。
  • 重啟服務生效
    sudo systemctl restart vsftpd
    

2. 使用Trickle工具限制客戶端帶寬

Trickle是輕量級應用程序級帶寬控制工具,無需修改服務器配置,直接限制客戶端傳輸速度。

  • 安裝Trickle
    sudo apt install trickle
    
  • 限制傳輸速度
    使用trickle命令啟動FTP客戶端,指定上傳(-u)和下載(-d)速率(單位:KB/s)。例如:
    trickle -u 50 -d 100 ftp your_server_ip  # 上傳限制50KB/s,下載限制100KB/s
    
    或限制curl(用于測試):
    trickle -u 20 -d 40 curl -O ftp://your_server_ip/file.zip
    

3. 使用tc工具進行系統級流量控制

tc是Linux內核自帶的流量控制工具,可實現更精細的網絡帶寬分配(如按IP、端口限制),適合復雜網絡環境。

  • 安裝iproute2(包含tc工具):
    sudo apt install iproute2
    
  • 配置流量控制規則(以限制FTP服務器整體帶寬為例):
    • 添加HTB隊列規則:
      sudo tc qdisc add dev eth0 root handle 1: htb
      
    • 分配總帶寬(如100Mbit/s):
      sudo tc class add dev eth0 parent 1: classid 1:1 htb rate 100mbit ceil 100mbit
      
    • 創建子類限制特定IP帶寬(如限制192.168.1.100為10Mbit/s):
      sudo tc class add dev eth0 parent 1:1 classid 1:10 htb rate 10mbit ceil 10mbit
      
    • 標記目標IP的數據包:
      sudo iptables -t mangle -A OUTPUT -s 192.168.1.100 -j MARK --set-mark 10
      
    • 關聯標記與子類:
      sudo tc filter add dev eth0 parent 1: protocol ip prio 1 handle 10 fw flowid 1:10
      
  • 保存規則(避免重啟丟失):
    將上述命令添加到/etc/rc.local(需賦予執行權限chmod +x /etc/rc.local)或使用netplan/systemd服務管理。

注意事項

  • 被動模式(PASV)端口:若使用被動模式,需在vsftpd.conf中配置pasv_min_portpasv_max_port(如pasv_min_port=60000、pasv_max_port=61000),并在防火墻中開放這些端口,否則可能導致傳輸失敗。
  • 規則持久化:tc、iptables等命令的規則默認在重啟后失效,需通過腳本或系統服務(如cron定時任務)恢復。
  • 性能影響:過度限制帶寬可能增加服務器負載,建議根據實際網絡環境調整參數。

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