From 8998e596ba50afb16dd9aa56fb859947bd2cca6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=A5=E6=B5=A9?= Date: Fri, 17 Oct 2025 16:17:23 +0800 Subject: [PATCH] =?UTF-8?q?feat(sysctl):=20=E6=94=AF=E6=8C=81=20Debian=201?= =?UTF-8?q?3=20=E5=8F=8A=E4=BB=A5=E4=B8=8A=E7=89=88=E6=9C=AC=E7=9A=84=20sy?= =?UTF-8?q?sctl=20=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6=E8=B7=AF=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 1.sh | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/1.sh b/1.sh index 6cf23fe..635703d 100644 --- a/1.sh +++ b/1.sh @@ -45,6 +45,22 @@ sysctl_config() { print_green "###################" print_green "##### sysctl ######" print_green "###################" + + # 确定 sysctl 配置文件路径 + SYSCTL_CONF="/etc/sysctl.conf" + if [ "$SYSTEM_TYPE" = "debian" ]; then + DEBIAN_VERSION=$(grep -oP 'VERSION_ID="\K[^"]+' /etc/os-release 2>/dev/null || cat /etc/debian_version 2>/dev/null | cut -d. -f1) + + if [ -z "$DEBIAN_VERSION" ]; then + echo "无法确定 Debian 版本,使用默认配置文件" + elif (( DEBIAN_VERSION >= 13 )); then + SYSCTL_CONF="/etc/sysctl.d/999-custom.conf" + echo "检测到 Debian $DEBIAN_VERSION,使用 $SYSCTL_CONF" + else + echo "检测到 Debian $DEBIAN_VERSION,使用 $SYSCTL_CONF" + fi + fi + SYSCTL_SETTINGS=( "net.core.rmem_max=16777216" "net.core.wmem_max=16777216" @@ -55,13 +71,17 @@ sysctl_config() { "net.ipv4.tcp_notsent_lowat=16384" # "net.ipv4.tcp_notsent_lowat=131072" ) + + # # 确保配置文件目录存在 + # mkdir -p "$(dirname "$SYSCTL_CONF")" + for SETTING in "${SYSCTL_SETTINGS[@]}"; do # 遍历数组 KEY=$(echo "$SETTING" | cut -d '=' -f 1) # 截取=左边的字符串 - sed -i "/^$KEY *= *[0-9]*/d" /etc/sysctl.conf # 删除已有的配置 - echo "$SETTING" >>/etc/sysctl.conf # 追加新的配置 + sed -i "/^$KEY *= *[0-9]*/d" "$SYSCTL_CONF" # 删除已有的配置 + echo "$SETTING" >>"$SYSCTL_CONF" # 追加新的配置 # echo "已添加系统配置: $SETTING" # 输出提示信息 done # 循环结束 - sysctl -p + sysctl --system } detect_cn_network() {