From b3cbf0391f9e2be3a42a2ab24a1d12c9d00119a8 Mon Sep 17 00:00:00 2001 From: coosld Date: Tue, 26 Nov 2024 21:45:32 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20xs.sh?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- xs.sh | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 xs.sh diff --git a/xs.sh b/xs.sh new file mode 100644 index 0000000..d2cd075 --- /dev/null +++ b/xs.sh @@ -0,0 +1,56 @@ +#!/bin/bash + +# 网络接口名称 +INTERFACE="eno1" + +# 带宽限制 +LIMIT_RATE="3mbit" + +# 检查是否提供操作参数 +if [ "$#" -lt 1 ]; then + echo "Usage: $0 {add|delete}" + exit 1 +fi + +# 添加限速规则 +add_limit() { + echo "Adding bandwidth limit of $LIMIT_RATE on ports 8337 and 8338 for interface $INTERFACE..." + + # 添加全局队列规则 + tc qdisc add dev "$INTERFACE" root handle 1: htb default 11 + tc class add dev "$INTERFACE" parent 1: classid 1:1 htb rate "$LIMIT_RATE" + tc class add dev "$INTERFACE" parent 1:1 classid 1:11 htb rate "$LIMIT_RATE" + + # 针对端口 8337 添加过滤规则 + tc filter add dev "$INTERFACE" protocol ip parent 1:0 prio 1 u32 match ip dport 8337 0xffff flowid 1:11 + + # 针对端口 8338 添加过滤规则 + tc filter add dev "$INTERFACE" protocol ip parent 1:0 prio 1 u32 match ip dport 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 + + echo "Bandwidth limit removed successfully." +} + +# 根据用户输入执行操作 +case "$1" in + add) + add_limit + ;; + del) + delete_limit + ;; + *) + echo "Invalid option: $1" + echo "Usage: $0 {add|del}" + exit 1 + ;; +esac