From 6701bacc74e89d06b300dadbe53b770955e42de8 Mon Sep 17 00:00:00 2001 From: coosld Date: Tue, 26 Nov 2024 23:40:59 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20xs.sh?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- xs.sh | 41 +++++++++-------------------------------- 1 file changed, 9 insertions(+), 32 deletions(-) diff --git a/xs.sh b/xs.sh index 1c9e644..1090c42 100644 --- a/xs.sh +++ b/xs.sh @@ -1,22 +1,13 @@ #!/bin/bash -# 网络接口名称 +# 定义网络接口和限速参数 INTERFACE="eno1" - -# 带宽限制 LIMIT_RATE="2mbit" -# 检查是否提供操作参数 -if [ "$#" -lt 1 ]; then - echo "Usage: $0 {add|del}" - exit 1 -fi - -# 添加限速规则 add_limit() { echo "Applying new bandwidth limit..." - # 确保加载 ifb 模块并启用 ifb0 + # 加载 ifb 模块并启用 ifb0 modprobe ifb 2>/dev/null ip link add ifb0 type ifb 2>/dev/null ip link set ifb0 up 2>/dev/null @@ -34,45 +25,31 @@ add_limit() { # 添加下行规则 tc qdisc add dev ifb0 root handle 1: htb default 11 - tc class add dev ifb0 parent 1: classid 1:1 htb rate "$LIMIT_RATE" - tc class add dev ifb0 parent 1:1 classid 1:11 htb rate "$LIMIT_RATE" + tc class add dev ifb0 parent 1:classid 1:1 htb rate "$LIMIT_RATE" + tc class add dev ifb0 parent 1:classid 1:11 htb rate "$LIMIT_RATE" tc filter add dev ifb0 protocol ip parent 1:0 prio 1 u32 match ip sport 8337 0xffff flowid 1:11 tc filter add dev ifb0 protocol ip parent 1:0 prio 1 u32 match ip sport 8338 0xffff flowid 1:11 echo "Bandwidth limit applied successfully." } -# 删除限速规则 delete_limit() { - echo "Removing bandwidth limit from interface $INTERFACE..." - - # 删除上行规则 - tc qdisc del dev "$INTERFACE" root - - # 删除下行规则 - tc qdisc del dev ifb0 root - + echo "Removing bandwidth limit..." + tc qdisc del dev "$INTERFACE" root 2>/dev/null + tc qdisc del dev ifb0 root 2>/dev/null + ip link set ifb0 down 2>/dev/null echo "Bandwidth limit removed successfully." } -# 根据用户输入执行操作 case "$1" in add) - # 启用下行流量接口 ifb0 - modprobe ifb - ip link set ifb0 up - add_limit ;; del) delete_limit - - # 禁用下行流量接口 ifb0 - ip link set ifb0 down ;; *) - echo "Invalid option: $1" - echo "Usage: $0 {add|delete}" + echo "Usage: $0 {add|del}" exit 1 ;; esac