Ubuntu FTP設置傳輸速率限制的常用方法
vsftpd是Ubuntu上最主流的FTP服務器軟件,通過修改其配置文件可直接限制用戶帶寬,操作簡單且穩定。
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
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
tc是Linux內核自帶的流量控制工具,可實現更精細的網絡帶寬分配(如按IP、端口限制),適合復雜網絡環境。
sudo apt install iproute2
sudo tc qdisc add dev eth0 root handle 1: htb
sudo tc class add dev eth0 parent 1: classid 1:1 htb rate 100mbit ceil 100mbit
sudo tc class add dev eth0 parent 1:1 classid 1:10 htb rate 10mbit ceil 10mbit
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
服務管理。vsftpd.conf
中配置pasv_min_port
和pasv_max_port
(如pasv_min_port=60000
、pasv_max_port=61000
),并在防火墻中開放這些端口,否則可能導致傳輸失敗。cron
定時任務)恢復。