为你的站点提速之开启BBR减少丢包

为你的站点提速之开启BBR减少丢包

前言

很多站长在建完一个网站之后通常会选择优化和美化自己的站点,例如WordPress和Typecho等等的框架。

但是有时候这些优化并不一定都有效,而且大多数站长都基本偏向于站点的优化,通常不会对服务器进行优化。所以本篇教程教你优化服服器的TCP传输来降低传输中的网络延迟,以此来达到优化网站加载速度的目的。

注:BBR在不同网络环境下,可能不起作用,甚至会有反作用,请检查你的实际需求再启用。

可能看到这里的你还是有一些疑惑。什么是BBR?那就来做一个小解释吧。

什么是BBR?

BBR(Bottleneck Bandwidth and Round-trip propagation time)是由Google在2016年提出的一种TCP拥塞控制算法。它旨在让服务器在高带宽、高延迟的现代网络环境中,更高效地利用好现有的网络资源,同时保持较低的延迟。

说人话: BBR就是一个更聪明的网络调速器,它的目的主要是在尽量不堵车的情况下,让公路跑最多的车。不用BBR就相当于用老方法,而老方法则是等撞车了才刹车,动不动就很容易造成大堵车。这样就能让道路始终处于最佳的状态,这样就能减少丢包和延迟,而对于加速网站也是很有用的。(试过才知道,虽然不一定有用)

检查是否开启BBR

因为有些厂商的服务器是默认开启BBR的,所以需要先检查一下有没有开启,如果已经开启了,那可以去到文章最下面看 检测BBR是否开启。

我们需要在服务器终端执行以下指令:

sysctl net.ipv4.tcp_congestion_control

如果反馈的结果是: net.ipv4.tcp_congestion_control = bbr

这说明BBR已经在系统里启用了,无需再进行配置。

我们还可以再看一下,BBR是否已经在内核里开启:

lsmod | grep bbr

如果有类似以下的输出:

tcp_bbr 20480 9(右边每个人的数据都不一样)

证明服务器已经完全开启了BBR,并且正在使用BBR进行TCP网络拥堵优化,无需再进行下面的操作。

如果你使用 sysctl net.ipv4.tcp_congestion_control 显示的是: net.ipv4.tcp_congestion_control = cubic 又或者是使用 lsmod | grep bbr 没有任何反馈

证明你的服务器现在还没有开启BBR加速,那就看以下的教程开启一下BBR吧!

如何开启BBR?

在开启之前,需要检测你当前使用系统的内核版本是否符合BBR开启的要求。我们可以使用这个指令来打印系统的内核版本

echo "内核版本: $(uname -r)"

最低内核版本要求是: Linux主版本为4,次版本号为9

推荐内核版本要求是: Linux主版本为5,次版本为13及以上

如果你满足这些条件(总不能是10年老系统吧),额不满足的话….我给你点个赞

接下来依次输入以下指令来开启BBR:

sudo sysctl -w net.core.default_qdisc=fq
sudo sysctl -w net.ipv4.tcp_congestion_control=bbr

小知识: FQ(Fair Queuing,公平队列)是Linux内核中一种先进的网络数据包调度的算法,它和BBR拥塞控制算法搭配使用能显著提升和改善网络性能。

接下来将配置添加到sysctl 的配置文件中:

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

最后,应用配置。使BBR可以一直保持开启的状态:

sudo sysctl -p

至此,BBR开启的教程完毕。

检测BBR是否开启

为了确保BBR已经开启,需要分别输入之前的指令来检查是否是之前的预期输出。

sysctl net.ipv4.tcp_congestion_control
lsmod | grep bbr

如果已经正常启用就可以看到下图的反馈:

又或者我们可可以让系统分别打印以下参数:

echo "1. 拥塞控制算法: $(sysctl -n net.ipv4.tcp_congestion_control)"
echo "2. 队列规则: $(sysctl -n net.core.default_qdisc)"
echo "3. 内核模块: $(if lsmod | grep -q tcp_bbr; then echo "已加载"; else echo "未加载"; fi)"
echo "4. 活动连接: $(if ss -tin | grep -q bbr; then echo "检测到BBR连接"; else echo "未检测到"; fi)"

我们还可以使用 speedtest-cli 工具来测试开启后的服务器的上传速度和下载速度。(需要在未开启前测速和开启后测速进行对比才能看到效果和不同)

curl -s https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py | python -

关闭BBR

可能BBR并不一定适合所有人,如果你发现在开启后没有什么效果甚至有副作用,那么你可以选择关闭BBR。

只需要从配置文件中删除BBR相关设置即可:

sudo sed -i '/net.core.default_qdisc/d' /etc/sysctl.conf
sudo sed -i '/net.ipv4.tcp_congestion_control/d' /etc/sysctl.conf

又或者直接注释掉相关行即可(更安全一点)

sudo sed -i 's/^net.core.default_qdisc/#net.core.default_qdisc/g' /etc/sysctl.conf
sudo sed -i 's/^net.ipv4.tcp_congestion_control/#net.ipv4.tcp_congestion_control/g' /etc/sysctl.conf

接下来保存配置,之后重启服务器即可,然后验证方法和开启的方法一样。

sudo sysctl -p

只要没有显示bbr的字样,证明已经成功关闭。

好啦,写了快一下午的文章,终于写完了。感谢你能看到这里,希望这篇文章可以帮到你呀。我们下一篇文章见!

本站所有文章均为原创,搬运请严格遵循
知识共享署名 4.0 国际许可协议(CC BY 4.0)

文章标题: 为你的站点提速之开启BBR减少丢包
文章永久链接: https://www.memxb.top/archives/909
文章作者: 默小班

评论

  1. Android Chrome 131.0.6778.200
    19 分前
    2025-10-06 22:25:28

    中秋快乐!来回访啦!

  2. Windows Chrome 116.0.0.0
    4 小时前
    2025-10-06 18:25:44

    祝你中秋快乐!串个门

    • Avatar photo
      博主
      彬红茶
      Android Chrome 133.0.0.0
      4 小时前
      2025-10-06 18:29:53

      同乐啊,看来我也得去串串门了

发送评论 编辑评论


|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
Source: https://github.com/MengXi2021/Argon-Emoji-DailyNotes
Source: https://github.com/Ghost-chu/argon-huhu-emotions
Source: github.com/zhheo/Sticker-Heo
颜文字
Emoji
小恐龙
花!
每日手帐
呼呼
Heo
B站基础表情
B站节日表情
B站游戏表情
B站活动表情
上一篇