Remove automatic RTT mode

This commit is contained in:
byjoey
2026-06-13 10:32:24 +08:00
parent f2e49f5fc0
commit a2d07c1a60
2 changed files with 51 additions and 62 deletions
+2 -2
View File
@@ -197,6 +197,7 @@ net.ipv4.tcp_slow_start_after_idle = 0
- 自动启用 `bbr` 拥塞控制和 `fq` 队列算法。 - 自动启用 `bbr` 拥塞控制和 `fq` 队列算法。
- 根据上传带宽和地区模式映射推荐 TCP buffer 档位。 - 根据上传带宽和地区模式映射推荐 TCP buffer 档位。
- 用户手动选择亚太、美欧或手动 RTT,不再按测速 RTT 自动判断。
- 亚太线路使用较保守的 buffer,美欧高延迟线路使用更大 buffer。 - 亚太线路使用较保守的 buffer,美欧高延迟线路使用更大 buffer。
- 按机器内存设置 TCP buffer 上限,避免小内存 VPS 过度放大缓冲区。 - 按机器内存设置 TCP buffer 上限,避免小内存 VPS 过度放大缓冲区。
- 同步写入 `net.core.rmem_max` / `net.core.wmem_max` / `tcp_rmem` / `tcp_wmem` - 同步写入 `net.core.rmem_max` / `net.core.wmem_max` / `tcp_rmem` / `tcp_wmem`
@@ -206,10 +207,9 @@ net.ipv4.tcp_slow_start_after_idle = 0
| 模式 | RTT 参考 | | 模式 | RTT 参考 |
| --- | --- | | --- | --- |
| 自动判断 | 使用 Speedtest Ping 自动分类 |
| 亚太线路 | 通常小于 `100ms` | | 亚太线路 | 通常小于 `100ms` |
| 美欧线路 | 通常 `150-300ms` | | 美欧线路 | 通常 `150-300ms` |
| 手动 RTT | 按用户输入计算 | | 手动 RTT | 按用户输入 RTT,并手动选择亚太或美欧 buffer 档位 |
配置同样写入: 配置同样写入:
+33 -44
View File
@@ -298,71 +298,60 @@ read_positive_value() {
# 函数:选择地区/RTT 模式 # 函数:选择地区/RTT 模式
select_tuning_rtt() { select_tuning_rtt() {
local measured_ping="$1"
local choice="" local choice=""
local default_rtt="" local buffer_choice=""
while true; do
echo -e "\033[36m请选择线路模式:\033[0m" echo -e "\033[36m请选择线路模式:\033[0m"
echo -e "\033[33m 1. 自动判断(按 Speedtest RTT\033[0m" echo -e "\033[33m 1. 亚太线路(RTT < 100ms\033[0m"
echo -e "\033[33m 2. 亚太线路(RTT < 100ms\033[0m" echo -e "\033[33m 2. 美欧线路(RTT 150-300ms\033[0m"
echo -e "\033[33m 3. 美欧线路(RTT 150-300ms\033[0m" echo -e "\033[33m 3. 手动输入 RTT\033[0m"
echo -e "\033[33m 4. 手动输入 RTT\033[0m" echo -n -e "\033[36m请选择 (1-3): \033[0m"
echo -n -e "\033[36m请选择 (1-4,默认 1): \033[0m"
read -r choice read -r choice
choice="${choice:-1}"
case "$choice" in case "$choice" in
1) 1)
if is_positive_number "$measured_ping"; then
SMART_RTT_MS="$measured_ping"
if awk -v rtt="$SMART_RTT_MS" 'BEGIN { exit !(rtt < 100) }'; then
SMART_REGION="亚太" SMART_REGION="亚太"
SMART_REGION_CODE="asia" SMART_REGION_CODE="asia"
elif awk -v rtt="$SMART_RTT_MS" 'BEGIN { exit !(rtt <= 300) }'; then
SMART_REGION="美欧"
SMART_REGION_CODE="overseas"
else
SMART_REGION="高延迟"
SMART_REGION_CODE="overseas"
fi
else
SMART_REGION="手动"
SMART_REGION_CODE="asia"
SMART_RTT_MS=$(read_positive_value "\033[36m请输入实际 RTT(ms,默认 80): \033[0m" "80") SMART_RTT_MS=$(read_positive_value "\033[36m请输入实际 RTT(ms,默认 80): \033[0m" "80")
fi return 0
;; ;;
2) 2)
SMART_REGION="亚太"
SMART_REGION_CODE="asia"
default_rtt="80"
if is_positive_number "$measured_ping"; then
default_rtt="$measured_ping"
fi
SMART_RTT_MS=$(read_positive_value "\033[36m请输入实际 RTT(ms,默认 ${default_rtt}): \033[0m" "$default_rtt")
;;
3)
SMART_REGION="美欧" SMART_REGION="美欧"
SMART_REGION_CODE="overseas" SMART_REGION_CODE="overseas"
default_rtt="220" SMART_RTT_MS=$(read_positive_value "\033[36m请输入实际 RTT(ms,默认 220): \033[0m" "220")
if is_positive_number "$measured_ping"; then return 0
default_rtt="$measured_ping"
fi
SMART_RTT_MS=$(read_positive_value "\033[36m请输入实际 RTT(ms,默认 ${default_rtt}): \033[0m" "$default_rtt")
;; ;;
4) 3)
SMART_REGION="手动"
SMART_RTT_MS=$(read_positive_value "\033[36m请输入实际 RTT(ms,默认 100): \033[0m" "100") SMART_RTT_MS=$(read_positive_value "\033[36m请输入实际 RTT(ms,默认 100): \033[0m" "100")
if awk -v rtt="$SMART_RTT_MS" 'BEGIN { exit !(rtt < 120) }'; then while true; do
echo -e "\033[36m请选择 buffer 档位模式:\033[0m"
echo -e "\033[33m 1. 亚太档位\033[0m"
echo -e "\033[33m 2. 美欧档位\033[0m"
echo -n -e "\033[36m请选择 (1-2): \033[0m"
read -r buffer_choice
case "$buffer_choice" in
1)
SMART_REGION="手动 RTT / 亚太档"
SMART_REGION_CODE="asia" SMART_REGION_CODE="asia"
else return 0
;;
2)
SMART_REGION="手动 RTT / 美欧档"
SMART_REGION_CODE="overseas" SMART_REGION_CODE="overseas"
fi return 0
;; ;;
*) *)
echo -e "\033[31m输入无效,使用自动判断。\033[0m" echo -e "\033[31m输入 1 或 2 选择 buffer 档位。\033[0m"
select_tuning_rtt "$measured_ping"
;; ;;
esac esac
done
;;
*)
echo -e "\033[31m请输入 1、2 或 3 选择线路模式。\033[0m"
;;
esac
done
} }
# 函数:应用 BBR v3 智能带宽优化 # 函数:应用 BBR v3 智能带宽优化
@@ -402,7 +391,7 @@ apply_smart_bandwidth_tuning() {
download_mbps="$upload_mbps" download_mbps="$upload_mbps"
fi fi
select_tuning_rtt "$SPEEDTEST_PING" select_tuning_rtt
cap_mb=$(get_tcp_buffer_cap_mb) cap_mb=$(get_tcp_buffer_cap_mb)
buffer_mb=$(calculate_smart_buffer_mb "$upload_mbps" "$SMART_REGION_CODE" "$cap_mb") buffer_mb=$(calculate_smart_buffer_mb "$upload_mbps" "$SMART_REGION_CODE" "$cap_mb")