From 4bd898a06744bdc800071a71e915b05da188388a Mon Sep 17 00:00:00 2001 From: Olia Lisa Date: Thu, 28 May 2026 08:43:55 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0l=20bbr=E5=8A=A0=E9=80=9F=20?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- install.sh | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/install.sh b/install.sh index bc74d40..7555a1d 100644 --- a/install.sh +++ b/install.sh @@ -135,6 +135,48 @@ create_config(){ esac } +enable_kernel_bbr(){ + if [ "$(id -u)" -ne 0 ]; then + echo "请使用 root 权限运行该操作" + return 1 + fi + + if [ "$(sysctl -n net.ipv4.tcp_congestion_control 2>/dev/null)" = "bbr" ]; then + echo "BBR加速 已经开启,无需重复操作" + return 0 + fi + + if command -v modprobe >/dev/null 2>&1; then + modprobe tcp_bbr 2>/dev/null || true + fi + + if ! sysctl net.ipv4.tcp_available_congestion_control 2>/dev/null | grep -qw bbr; then + echo "当前系统内核不支持 BBR" + return 1 + fi + + set_sysctl_conf(){ + local key="$1" + local value="$2" + local file="/etc/sysctl.conf" + + touch "$file" + if grep -qE "^[[:space:]]*#?[[:space:]]*$key[[:space:]]*=" "$file"; then + sed -i "s|^[[:space:]]*#\?[[:space:]]*$key[[:space:]]*=.*|$key = $value|" "$file" + else + echo "$key = $value" >> "$file" + fi + } + + set_sysctl_conf "net.core.default_qdisc" "fq" + set_sysctl_conf "net.ipv4.tcp_congestion_control" "bbr" + + sysctl -w net.core.default_qdisc=fq >/dev/null + sysctl -w net.ipv4.tcp_congestion_control=bbr >/dev/null + + echo "BBR加速 已开启" +} + main(){ local container_status=$(check_container_status) # 显示菜单 @@ -151,6 +193,7 @@ main(){ echo "7. 修改端口" echo "8. 更新镜像" echo "9. 更新脚本" + echo "10. 开启BBR加速" # 读取用户选择 local choice @@ -212,6 +255,10 @@ main(){ # 更新脚本 git pull ;; + 10) + # 开启BBR加速 + enable_kernel_bbr + ;; *) echo "无效的选择, 请重新选择." ;;