上一篇
Debian 12 BBR 一键优化脚本 让小鸡网络飞起 TCP一键运行调优脚本
- 脚本
- 2025-09-23
- 14
之前看有人发了一个网络优化版本,但是没有一件部署,用着非常不方便,我就做了一个一键脚本,方便使用,而且还做了一键检测脚本,检测是否正常!我测试Debian 12,完美运行,有显著提升网络优化作用。TCP调优脚本,可以根据服务器实际情况优化线路,感谢 GPTADM 大神的源码,我只是做了简单优化!
一键执行代码
curl -fsSL https://gist.githubusercontent.com/XiaoDianGG/7e1586bd219fa11725608218f04ceac6/raw/debian12-bbr.sh -o /tmp/debian12-bbr.sh && chmod +x /tmp/debian12-bbr.sh && sudo /tmp/debian12-bbr.sh
一键检测是否成功
bash <(curl -fsSL https://gist.githubusercontent.com/XiaoDianGG/ff536d5ebb3f419f6a8f09081fd40a68/raw/check-bbr.sh)
一键执行源码
#!/bin/bash # # Debian 12 TCP/BBR/FQ auto-tune script # Author: ChatGPT # Date: 2025-09-22 # set -euo pipefail backup_conflict_file() { local file="$1" if [[ -f "$file" ]]; then local timestamp timestamp=$(date +%Y%m%d%H%M%S) mv "$file" "${file}.bak.${timestamp}" echo "已备份冲突文件: $file -> ${file}.bak.${timestamp}" fi } # 检测内存 total_mem=$(free -m | awk '/Mem:/ {print $2}') echo "检测到内存: ${total_mem} MB" if [[ $total_mem -lt 1024 ]]; then echo "⚠️ 内存小于 1G,可能不适合调优" fi # 检测默认网卡 default_iface=$(ip route show default | awk '{print $5}' | head -n1) echo "默认网卡: $default_iface" # 检测 RTT client_ip=$(echo $SSH_CLIENT | awk '{print $1}') if [[ -z "$client_ip" ]]; then client_ip="1.1.1.1" fi rtt=$(ping -c 5 -q "$client_ip" 2>/dev/null | awk -F'/' '/rtt/ {print int($5)}') if [[ -z "$rtt" ]]; then rtt=50 fi echo "检测到 RTT: ${rtt} ms" # 默认带宽 bandwidth_mbps=1000 echo "默认带宽: ${bandwidth_mbps} Mbps" # 计算 BDP bandwidth_bps=$((bandwidth_mbps * 1000000 / 8)) bdp_bytes=$((bandwidth_bps * rtt / 1000)) echo "计算 BDP: ${bdp_bytes} bytes" # 取最近的桶值 for candidate in 4194304 8388608 16777216 33554432 67108864; do if [[ $bdp_bytes -le $candidate ]]; then bucket=$candidate break fi done bucket=${bucket:-67108864} echo "使用桶值: $bucket ($((bucket/1024/1024)) MB)" # 清理冲突配置 echo "清理冲突 sysctl 配置..." sed -i.bak "/net.core.rmem_max/d;/net.core.wmem_max/d;/net.ipv4.tcp_rmem/d;/net.ipv4.tcp_wmem/d;/net.ipv4.tcp_congestion_control/d;/net.core.default_qdisc/d" /etc/sysctl.conf || true for f in /etc/sysctl.d/*.conf; do if grep -Eq 'net\.core\.rmem_max|net\.core\.wmem_max|net\.ipv4\.tcp_rmem|net\.ipv4\.tcp_wmem|net\.ipv4\.tcp_congestion_control|net\.core\.default_qdisc' "$f"; then backup_conflict_file "$f" fi done # 写入新配置 cat >/etc/sysctl.d/999-net-bbr-fq.conf <<EOF net.core.rmem_max = $bucket net.core.wmem_max = $bucket net.ipv4.tcp_rmem = 4096 87380 $bucket net.ipv4.tcp_wmem = 4096 65536 $bucket net.ipv4.tcp_congestion_control = bbr net.core.default_qdisc = fq EOF sysctl --system >/dev/null # 应用 qdisc tc qdisc replace dev "$default_iface" root fq || true # 打印结果 echo "==== RESULT ====" echo "最终使用值 -> 内存: ${total_mem} MB, 带宽: ${bandwidth_mbps} Mbps, RTT: ${rtt} ms" echo "桶值: $bucket ($((bucket/1024/1024)) MB)" sysctl net.ipv4.tcp_congestion_control sysctl net.core.default_qdisc sysctl net.core.rmem_max sysctl net.core.wmem_max sysctl net.ipv4.tcp_rmem sysctl net.ipv4.tcp_wmem tc qdisc show dev "$default_iface" | head -n1 echo "================"
本站所发布的全部内容源于互联网搬运,仅限于小范围内传播学习和文献参考 请在下载后24小时内删除,如果有侵权之处请第一时间联系我们删除。 敬请谅解! E-mail:tudoumc@foxmail.com
本文链接:https://tudoumc.com/post/11542.html
您需要 登录账户 后才能发表评论