在Linux系統中,可以使用tc
(Traffic Control)工具來限制網絡帶寬使用。以下是一個簡單的示例,展示如何使用tc
限制網絡接口的上傳和下載速度。
iproute2
軟件包,它包含了tc
命令。在Debian和Ubuntu系統上,可以使用以下命令安裝:sudo apt-get update
sudo apt-get install iproute2
在CentOS和RHEL系統上,可以使用以下命令安裝:
sudo yum update
sudo yum install iproute
limit_bandwidth.sh
的腳本文件,并使用文本編輯器打開它:nano limit_bandwidth.sh
INTERFACE
(網絡接口名稱)、UPLOAD_LIMIT
(上傳速度限制)和DOWNLOAD_LIMIT
(下載速度限制):#!/bin/bash
# 設置網絡接口名稱、上傳速度限制和下載速度限制
INTERFACE="eth0"
UPLOAD_LIMIT="1mbit"
DOWNLOAD_LIMIT="1mbit"
# 刪除已存在的qdisc規則
tc qdisc del dev $INTERFACE root 2>/dev/null
# 添加根隊列規則
tc qdisc add dev $INTERFACE root handle 1: htb default 30
# 添加類規則
tc class add dev $INTERFACE parent 1: classid 1:1 htb rate $DOWNLOAD_LIMIT ceil $DOWNLOAD_LIMIT
tc class add dev $INTERFACE parent 1:1 classid 1:30 htb rate $UPLOAD_LIMIT ceil $UPLOAD_LIMIT
# 添加過濾器規則
tc filter add dev $INTERFACE protocol ip parent 1:0 prio 1 u32 match ip dst 0.0.0.0/0 flowid 1:1
tc filter add dev $INTERFACE protocol ip parent 1:0 prio 1 u32 match ip src 0.0.0.0/0 flowid 1:30
chmod +x limit_bandwidth.sh
sudo ./limit_bandwidth.sh
現在,指定的網絡接口的上傳和下載速度應該受到限制。要刪除限制,可以再次運行limit_bandwidth.sh
腳本,或者手動刪除tc
規則:
sudo tc qdisc del dev eth0 root
請注意,這個示例僅適用于單個網絡接口。如果要限制多個接口的帶寬,需要為每個接口重復上述步驟。