在CentOS系統中,你可以使用firewalld
來限制訪問速度。以下是具體的步驟:
firewalld
的rate-limit
模塊安裝firewalld
(如果尚未安裝):
sudo yum install firewalld
啟動并啟用firewalld
服務:
sudo systemctl start firewalld
sudo systemctl enable firewalld
添加rate-limit
規則:
假設你想限制來自IP地址192.168.1.100
的訪問速度為每秒1個請求,可以使用以下命令:
sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.100" rate-limit value="1/sec"'
重新加載firewalld
配置:
sudo firewall-cmd --reload
iptables
和tc
(Traffic Control)如果你需要更復雜的流量控制,可以使用iptables
結合tc
來實現。
安裝必要的工具:
sudo yum install iptables-services iproute
啟動并啟用iptables
服務:
sudo systemctl start iptables
sudo systemctl enable iptables
創建一個隊列規則: 例如,創建一個htb(Hierarchical Token Bucket)隊列,并設置帶寬限制:
sudo tc qdisc add dev eth0 root handle 1: htb default 30
sudo tc class add dev eth0 parent 1: classid 1:1 htb rate 1mbit ceil 1mbit
sudo tc class add dev eth0 parent 1:1 classid 1:10 htb rate 1mbit ceil 1mbit
創建一個過濾器規則: 將特定IP地址的流量導向你創建的隊列:
sudo iptables -A INPUT -s 192.168.1.100 -j MARK --set-mark 10
sudo tc filter add dev eth0 protocol ip parent 1:0 prio 1 handle 10 fw flowid 1:10
驗證配置: 使用以下命令查看當前的隊列規則和過濾器規則:
sudo tc -s qdisc ls dev eth0
sudo iptables -L -v -n
iptables
和tc
,建議使用firewalld
的rate-limit
模塊,因為它更簡單易用。通過以上方法,你可以在CentOS系統中限制訪問速度。