154 lines
5.0 KiB
Markdown
154 lines
5.0 KiB
Markdown
---
|
||
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
|
||
|
||
😄 |