一键启用,让你的 VPS 带宽真正「跑满」
安全 · 通用 · 持久 · 可逆 · 极限性能
快速开始 · 核心功能 · 性能提升 · 使用方法 · 兼容性 · 状态检查 · 卸载 · 优化详情 · 更新日志
这是一个全面的 Linux 服务器网络与系统性能优化脚本。通过智能调优内核参数(TCP/IP 协议栈、内存管理、CPU 调度、硬件中断等),显著提升服务器吞吐量、降低延迟、增强并发能力。
定位:面向 VPS/云主机/物理机的「一键式」系统与网络栈调优,兼顾可逆与幂等,适合持续运行在生产环境。
- 作者:@buyi06
- 版本:v2.0.1 Extreme Edition
- 许可证:MIT License
# 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.shbash -c "$(curl -fsSL https://raw.githubusercontent.com/buyi06/-Linux-/v2.0.1/universal_optimize_extreme.sh)"
⚠️ 安全提示:curl | bash直连main分支(即上游任意新 commit)在生产环境是反模式。本项目推荐 pin 到 tag 并校验 sha256。 权限提示:脚本需要root或sudo执行。 预演:首次使用可加--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+ |
- 最低要求: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 statussudo 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 reboot1) 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 = 20000005) 连接跟踪优化
支持百万级并发连接:
net.netfilter.nf_conntrack_max = 2097152
net.netfilter.nf_conntrack_tcp_timeout_established = 72006) 内存管理优化
减少交换,优先保障应用性能:
vm.swappiness = 10
vm.dirty_ratio = 40
vm.dirty_background_ratio = 10
vm.vfs_cache_pressure = 507) 网卡 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 |
环境变量配置 |
⚠️ 注意事项(展开)
- 需要 root 权限:脚本需要 root 或 sudo 执行
- BBR 需要内核支持:Linux 4.9+ 内核才支持 BBR
- OpenVZ 限制:OpenVZ 容器无法修改内核参数,仅部分功能可用
- 建议重启:部分优化(如 ulimit)需要重启或重新登录才能完全生效
- 生产环境:建议先在测试环境验证效果
| 原则 | 说明 |
|---|---|
| 安全第一 | 所有操作使用 ` |
| 智能检测 | 自动检测系统内存、BBR 支持、网卡等 |
| 动态调整 | 根据系统资源自动选择最优参数 |
| 跨平台 | 支持主流 Linux 发行版 |
| 幂等性 | 重复执行无副作用 |
| 可逆性 | 提供完整卸载功能 |
| 透明性 | 详细的状态报告和日志 |
- 🐛 修复 IRQ 亲和性掩码轮询 bug(CPU 数≥4 时分布错误甚至越界)
- 🔒 TFO 默认改为
1(仅客户端),避免对老中间盒的兼容性问题;可用EXTREME_TFO=3覆盖 - 🔒 ECN 默认改为
2(被动),可用EXTREME_ECN=1覆盖 - 🔒 移除
vm.overcommit_memory=1、vm.overcommit_ratio、kernel.panic_on_oops=1、kernel.shmmax/shmall等激进/非网络相关默认 - 📈
tcp_mem/udp_mem按内存分级,与缓冲区一致 - 📝
sysctl -p错误写入/var/log/extreme-optimize.log,不再静默吞掉 - 🆕 新增
--dry-run预演模式 - 🆕 启动时检测 OpenVZ / LXC / Docker 环境并提前警告
- 📖 README 安装改为推荐 tag pin + sha256 校验;性能表加免责声明
- ✅ 新增 BBR 拥塞控制(自动检测并启用)
- ✅ 新增 TCP 快速打开 (TFO)
- ✅ 新增动态缓冲区调整(根据内存自动优化)
- ✅ 新增 TIME_WAIT 优化
- ✅ 新增连接跟踪优化(支持百万级并发)
- ✅ 新增内存管理优化(swappiness / dirty_ratio)
- ✅ 新增队列调度优化(fq)
- ✅ 新增 Ring Buffer 调整
- ✅ 新增完整卸载功能
- ✅ 改进状态报告格式
- ✅ 改进 Debian 兼容性
- 初始版本
- sysctl 网络优化
- ulimit 提升
- 网卡 Offload 关闭
- IRQ 绑定
- 开机自检
🙏 致谢(展开)
感谢以下资源提供的技术参考:
- ESnet Fasterdata - Linux 网络调优指南
- nixCraft - BBR 配置教程
- DigitalOcean - 性能优化教程
- Linux Kernel Documentation - 内核网络文档
- IDC Flare 论坛用户的反馈和建议
本项目采用 MIT License 开源许可证。
如果这个项目对你有帮助,请给个 ⭐ Star 支持一下!