Files
StudyDiary/10-WebClipper/为你的 Linux 服务器开启 BBR,大幅提升网络性能!.md
T
2026-07-23 20:36:13 +08:00

154 lines
5.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: "为你的 Linux 服务器开启 BBR,大幅提升网络性能!"
source: "https://blog.eimoon.com/p/ubuntu-bbr/"
author:
- "[[月球基地]]"
published: 2025-06-04
created: 2025-12-01
description: "一份详尽的指南,教你如何在 Ubuntu、Debian、CentOS 等 Linux 服务器上检查、启用和验证 TCP BBR 拥塞控制算法,有效提升网络吞吐量和降低延迟。"
tags:
- "clippings"
---
## 什么是 TCP BBR?为什么你需要它?
在如今这个对网络速度要求越来越高的时代,服务器的网络性能直接影响着用户体验和业务效率。TCP BBR (Bottleneck Bandwidth and Round-trip propagation time) 是由 Google 开发的一种先进的 TCP 拥塞控制算法。与传统的基于丢包的拥塞控制算法(如 Cubic)不同,BBR 通过主动探测网络的瓶颈带宽和往返延迟,来更精确地调整发送速率。
启用 BBR 的主要优势包括:
- 显著提升网络吞吐量:尤其是在有一定丢包率或延迟较高的网络链路上(例如跨国访问、Wi-Fi 和移动网络)。
- 有效降低网络延迟:通过避免不必要的缓冲膨胀 (Bufferbloat),BBR 可以让网络连接更加灵敏。
- 更好的网络波动适应性:即使在网络质量不稳定的情况下,BBR 也能维持相对较高的性能。
对于网站服务器、应用服务器、游戏服务器或任何需要处理大量互联网流量的 Linux 服务器来说,开启 BBR 往往能带来立竿见影的性能改善。
## 如何在你的 Linux 服务器上检查和启用 BBR?
下面,我们将一步步指导你如何在常见的 Linux 发行版(如 Ubuntu, Debian, CentOS)上操作。
### 第一步:检查当前是否已启用 BBR
首先,我们需要确认你的系统当前正在使用哪种 TCP 拥塞控制算法。
在服务器终端输入以下命令:
```bash
sysctl net.ipv4.tcp_congestion_control
```
如果输出结果是:
```fallback
net.ipv4.tcp_congestion_control = bbr
```
恭喜你!这说明 BBR 已经在你的系统上启用了。🎉
接下来,可以进一步确认内核是否已经加载了 BBR 模块:
```bash
lsmod | grep bbr
```
如果看到类似下面的输出(具体数字可能不同):
```fallback
tcp_bbr 20480 1
```
这表明内核已成功加载 BBR 模块,并且系统正在使用 BBR 进行网络加速。
### 第二步:如果 BBR 未启用,如何开启?
如果上述检查结果显示你没有启用 BBR(例如,tcp\_congestion\_control 的值是 cubic),别担心,按照以下步骤来开启它。
#### 1\. 确认内核版本
BBR 需要 Linux 内核版本 4.9 或更高。使用以下命令查看你的内核版本:
```bash
uname -r
```
例如,输出可能是 `5.15.0-72-generic` 。只要主版本号大于等于 4,次版本号大于等于 9,就满足条件。
#### 2\. 启用 BBR 并设置为永久生效
如果内核版本符合要求,你可以通过以下命令立即启用 BBR:
```bash
sudo sysctl -w net.core.default_qdisc=fq
sudo sysctl -w net.ipv4.tcp_congestion_control=bbr
```
`fq` (Fair Queue) 是一种队列调度程序,通常推荐与 BBR 配合使用以获得最佳效果。
为了让这些设置在服务器重启后依然生效,我们需要将它们添加到 `sysctl` 的配置文件中:
```bash
echo "net.core.default_qdisc=fq" | sudo tee -a /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" | sudo tee -a /etc/sysctl.conf
```
然后,应用这些永久配置,使其立即生效,无需重启:
```bash
sudo sysctl -p
```
执行后,系统会加载 `/etc/sysctl.conf` 中的配置。
#### 3\. 再次检查以确认
完成上述步骤后,再次运行检查命令,确保 BBR 已经成功启用:
```bash
sysctl net.ipv4.tcp_congestion_control
```
预期输出:
```fallback
net.ipv4.tcp_congestion_control = bbr
```
以及:
```bash
lsmod | grep bbr
```
预期能看到 `tcp_bbr` 模块。
### 第三步:Bonus - 进行测速验证(可选)
为了直观地感受 BBR 带来的提升,你可以在启用 BBR 前后,使用 speedtest-cli 工具测试服务器的上传和下载速度。
安装并运行 speedtest-cli:
```bash
curl -s https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py | python -
```
对比两次的测试结果,尤其是在上传速度和连接稳定性方面,你可能会发现显著的改善。
## 总结
启用 TCP BBR 是一个简单而有效的提升 Linux 服务器网络性能的方法。通过几个简单的命令,你就可以让你的服务器在复杂的互联网环境中表现得更加出色。如果你还没有尝试过,不妨现在就去检查并开启它吧!
希望这篇教程对你有所帮助!如果你有任何问题或经验分享,欢迎在下方留言。
### 📬 关注我获取更多资讯
2 评论
- 按正序
- 按倒序
- 按热度
[默小班](https://www.memxb.top/) 2025-10-06
已经通过博主的方法启用了,来发个评论支持一下
[moses](https://xn--ciqpnp34izzd/) Admin 2025-10-07
😄