Skip to content
 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Linux Extreme Optimize BBR Enabled TFO Enabled Version 2.0.1 License MIT

🔥 Linux 极限网络优化脚本

一键启用,让你的 VPS 带宽真正「跑满」
安全 · 通用 · 持久 · 可逆 · 极限性能

快速开始 · 核心功能 · 性能提升 · 使用方法 · 兼容性 · 状态检查 · 卸载 · 优化详情 · 更新日志


📖 项目简介

这是一个全面的 Linux 服务器网络与系统性能优化脚本。通过智能调优内核参数(TCP/IP 协议栈、内存管理、CPU 调度、硬件中断等),显著提升服务器吞吐量、降低延迟、增强并发能力

定位:面向 VPS/云主机/物理机的「一键式」系统与网络栈调优,兼顾可逆与幂等,适合持续运行在生产环境。

  • 作者@buyi06
  • 版本:v2.0.1 Extreme Edition
  • 许可证:MIT License

⚡ 快速开始

一键安装(推荐:pin 到已发布 tag 并校验 sha256)

# 1) 下载(固定 tag,而非 main,避免未来被篡改影响历史安装)
curl -fsSLO https://raw.githubusercontent.com/buyi06/-Linux-/v2.0.1/universal_optimize_extreme.sh

# 2) 校验 sha256(请替换为 Releases 页面公布的值)
echo "<发布页公布的 sha256>  universal_optimize_extreme.sh" | sha256sum -c -

# 3) 执行
sudo bash universal_optimize_extreme.sh

快捷方式(不做校验,仅测试环境使用)

bash -c "$(curl -fsSL https://raw.githubusercontent.com/buyi06/-Linux-/v2.0.1/universal_optimize_extreme.sh)"

⚠️ 安全提示curl | bash 直连 main 分支(即上游任意新 commit)在生产环境是反模式。本项目推荐 pin 到 tag 并校验 sha256。 权限提示:脚本需要 rootsudo 执行。 预演:首次使用可加 --dry-run 查看将要写入的内容而不改动系统。


✨ 核心功能

分类 功能 效果
拥塞控制 BBR + FQ 队列调度 提升吞吐量,降低延迟,尤其在丢包网络中效果显著
连接优化 TCP 快速打开 (TFO) 减少连接建立时间,加速短连接
TIME_WAIT 优化 快速回收端口,支持高并发服务器
缓冲区调优 动态内存缓冲区 根据系统内存自动调整 TCP/UDP 缓冲区大小
系统响应 内存管理优化 优化 swappiness 和 dirty_ratio,优先保障应用性能
连接跟踪优化 大幅增加 nf_conntrack_max,防止高负载下连接被丢弃
硬件优化 IRQ 亲和性 & Offload 智能绑定网卡中断到指定 CPU,关闭问题 offload
易用性 幂等 & 可逆 可重复执行,提供完整卸载功能
广泛兼容 支持主流 Linux 发行版和虚拟化平台

📈 性能提升

⚠️ 免责声明:下列数字来自作者单机测试,仅为示意值,不构成任何性能承诺。实际效果强烈依赖硬件、网卡驱动、对端链路、拥塞状态、流量模型等因素,个别场景可能出现负优化。请在生产环境启用前先在测试机验证,并结合 iperf3 / wrk / sockperf 等工具建立你自己的基线。

测试环境:2 核 / 4GB 内存 / 1Gbps 带宽 / Debian 12 VPS(作者单次测试)

指标 优化前 优化后 变化
TCP 吞吐量 ~650 Mbps ~920 Mbps
网络延迟 (RTT) 45 ms 38 ms
连接建立时间 3.2 ms 1.8 ms
最大并发连接 ~10,000 >1,000,000

🧰 使用方法

命令参考

命令 说明
sudo bash universal_optimize_extreme.sh 默认:应用所有优化
sudo bash universal_optimize_extreme.sh apply 应用所有优化
sudo bash universal_optimize_extreme.sh apply --dry-run 预演,不改动系统
sudo bash universal_optimize_extreme.sh status 显示当前系统配置状态报告
sudo bash universal_optimize_extreme.sh repair 检查并修复缺失的配置
sudo bash universal_optimize_extreme.sh uninstall 完全卸载,恢复系统默认设置
sudo bash universal_optimize_extreme.sh help 显示帮助信息

环境变量

变量 默认 说明
IFACE 自动探测 手动指定网卡
EXTREME_TFO 1 TCP Fast Open:0 关闭 / 1 仅客户端 / 3 服务端+客户端(对老中间盒兼容性差,按需启用)
EXTREME_ECN 2 显式拥塞通知:0 关闭 / 1 主动 / 2 被动(推荐,避免部分老防火墙丢包)

指定网卡

IFACE=ens3 sudo bash universal_optimize_extreme.sh apply

🖥️ 兼容性

支持的发行版

发行版 版本 状态
Debian 10 / 11 / 12 ✅ 完全支持
Ubuntu 20.04 / 22.04 / 24.04 ✅ 完全支持
CentOS 7 / 8 / Stream ✅ 完全支持
Rocky Linux 8 / 9 ✅ 完全支持
AlmaLinux 8 / 9 ✅ 完全支持
Arch Linux Rolling ✅ 完全支持
openSUSE 15+ ✅ 完全支持
Alpine Linux 3.12+ ⚠️ 部分支持(无 systemd)

内核要求

  • 最低要求:Linux 4.9+(BBR 支持)
  • 推荐版本:Linux 5.4+(更完善的网络栈)

虚拟化平台

平台 状态
KVM / QEMU ✅ 完全支持
VMware ✅ 完全支持
Xen ✅ 完全支持
Hyper-V ✅ 完全支持
OpenVZ ⚠️ 部分支持(无法修改内核参数)
LXC / LXD ⚠️ 部分支持

🔍 状态检查

# 查看 BBR 是否启用
sysctl net.ipv4.tcp_congestion_control

# 查看可用的拥塞控制算法
sysctl net.ipv4.tcp_available_congestion_control

# 查看当前队列调度
tc qdisc show

# 查看缓冲区设置
sysctl -a | grep -E 'rmem|wmem'

# 查看健康自检日志
journalctl -u extreme-health -b --no-pager

# 使用脚本查看完整状态
sudo bash universal_optimize_extreme.sh status

🗑️ 完全卸载

使用脚本卸载(推荐)

sudo bash universal_optimize_extreme.sh uninstall
手动卸载(展开)
# 停止并禁用服务
sudo systemctl disable --now extreme-offload@*.service
sudo systemctl disable --now extreme-qdisc@*.service
sudo systemctl disable --now extreme-irqpin@*.service
sudo systemctl disable --now extreme-health.service

# 删除配置文件
sudo rm -f /etc/sysctl.d/99-extreme-optimize.conf
sudo rm -f /etc/security/limits.d/99-extreme.conf
sudo rm -f /etc/systemd/system.conf.d/99-extreme-limits.conf
sudo rm -f /etc/systemd/system/extreme-*.service
sudo rm -f /etc/default/extreme-optimize

# 重新加载配置
sudo sysctl --system
sudo systemctl daemon-reload

# 建议重启以完全恢复默认设置
sudo reboot

🔧 优化详情

1) BBR 拥塞控制

BBR(Bottleneck Bandwidth and RTT)是 Google 开发的 TCP 拥塞控制算法,通过测量实际带宽和往返时间来调节发送速率,避免传统算法因丢包而过度降速。

net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr

效果

  • 吞吐量提升 4-14%
  • 显著降低延迟
  • 更好地处理丢包
2) TCP 快速打开 (TFO)

允许在 TCP 握手的 SYN 包中携带数据,减少一个 RTT。默认仅启用客户端方向(=1,因为服务端方向(=3)在部分运营商/CDN 中间盒中存在兼容性问题。如需服务端启用,请显式 EXTREME_TFO=3

net.ipv4.tcp_fastopen = 1    # 默认:仅客户端
# net.ipv4.tcp_fastopen = 3  # 需要服务端 TFO 时显式开启
3) 动态缓冲区调整

根据系统内存自动选择最优配置:

内存 rmem_max wmem_max tcp_rmem max 模式
< 2GB 32 MB 32 MB 16 MB 保守模式
2-8 GB 64 MB 64 MB 64 MB 标准模式
> 8GB 128 MB 128 MB 128 MB 激进模式
4) TIME_WAIT 优化

高并发服务器的端口快速回收:

net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 15
net.ipv4.tcp_max_tw_buckets = 2000000
5) 连接跟踪优化

支持百万级并发连接:

net.netfilter.nf_conntrack_max = 2097152
net.netfilter.nf_conntrack_tcp_timeout_established = 7200
6) 内存管理优化

减少交换,优先保障应用性能:

vm.swappiness = 10
vm.dirty_ratio = 40
vm.dirty_background_ratio = 10
vm.vfs_cache_pressure = 50
7) 网卡 Offload 关闭

关闭可能导致问题的硬件卸载功能:

  • GRO / GSO / TSO / LRO
  • Scatter-gather
  • rx-gro-hw / rx-udp-gro-forwarding
  • 各种隧道分段
8) 队列调度优化

使用 BBR 团队推荐的 FQ(Fair Queue)调度器:

tc qdisc add dev eth0 root fq

📁 文件结构

路径 用途
/etc/sysctl.d/99-extreme-optimize.conf 网络与系统内核参数
/etc/security/limits.d/99-extreme.conf 用户资源限制
/etc/systemd/system.conf.d/99-extreme-limits.conf systemd 服务限制
/etc/systemd/system/extreme-offload@.service 网卡 Offload 关闭服务
/etc/systemd/system/extreme-qdisc@.service 队列调度配置服务
/etc/systemd/system/extreme-irqpin@.service IRQ 亲和性绑定服务
/etc/systemd/system/extreme-health.service 开机健康自检服务
/etc/default/extreme-optimize 环境变量配置

⚠️ 注意事项(展开)
  1. 需要 root 权限:脚本需要 root 或 sudo 执行
  2. BBR 需要内核支持:Linux 4.9+ 内核才支持 BBR
  3. OpenVZ 限制:OpenVZ 容器无法修改内核参数,仅部分功能可用
  4. 建议重启:部分优化(如 ulimit)需要重启或重新登录才能完全生效
  5. 生产环境:建议先在测试环境验证效果

🧠 设计原则

原则 说明
安全第一 所有操作使用 `
智能检测 自动检测系统内存、BBR 支持、网卡等
动态调整 根据系统资源自动选择最优参数
跨平台 支持主流 Linux 发行版
幂等性 重复执行无副作用
可逆性 提供完整卸载功能
透明性 详细的状态报告和日志

📝 更新日志

v2.0.1 Extreme Edition

  • 🐛 修复 IRQ 亲和性掩码轮询 bug(CPU 数≥4 时分布错误甚至越界)
  • 🔒 TFO 默认改为 1(仅客户端),避免对老中间盒的兼容性问题;可用 EXTREME_TFO=3 覆盖
  • 🔒 ECN 默认改为 2(被动),可用 EXTREME_ECN=1 覆盖
  • 🔒 移除 vm.overcommit_memory=1vm.overcommit_ratiokernel.panic_on_oops=1kernel.shmmax/shmall 等激进/非网络相关默认
  • 📈 tcp_mem / udp_mem 按内存分级,与缓冲区一致
  • 📝 sysctl -p 错误写入 /var/log/extreme-optimize.log,不再静默吞掉
  • 🆕 新增 --dry-run 预演模式
  • 🆕 启动时检测 OpenVZ / LXC / Docker 环境并提前警告
  • 📖 README 安装改为推荐 tag pin + sha256 校验;性能表加免责声明

v2.0.0 Extreme Edition

  • ✅ 新增 BBR 拥塞控制(自动检测并启用)
  • ✅ 新增 TCP 快速打开 (TFO)
  • ✅ 新增动态缓冲区调整(根据内存自动优化)
  • ✅ 新增 TIME_WAIT 优化
  • ✅ 新增连接跟踪优化(支持百万级并发)
  • ✅ 新增内存管理优化(swappiness / dirty_ratio)
  • ✅ 新增队列调度优化(fq)
  • ✅ 新增 Ring Buffer 调整
  • ✅ 新增完整卸载功能
  • ✅ 改进状态报告格式
  • ✅ 改进 Debian 兼容性

v1.1.0

  • 初始版本
  • sysctl 网络优化
  • ulimit 提升
  • 网卡 Offload 关闭
  • IRQ 绑定
  • 开机自检

🙏 致谢(展开)

感谢以下资源提供的技术参考:


📄 许可证

本项目采用 MIT License 开源许可证。

如果这个项目对你有帮助,请给个 ⭐ Star 支持一下!

About

🔥 一键优化 Linux 网络性能与系统稳定性(sysctl + IRQ + Offload + 自检修复)安全、通用、持久。

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages