系统极客一直在努力
专注操作系统及软件使用技能

在 Ubuntu 上启用 BBR 的 3 个简单步骤,轻松优化网络性能

Ubuntu

BBR,是由 Google 开发的网络拥塞控制算法,它可以优化数据包的处理方式,显著提升网络传输效率和稳定性。在 Ubuntu 系统中启用 BBR,可以为 Ubuntu Server 和桌面用户提供更加优化的网络连接体验。

BBR 的主要优势有:

  • 速度提升:BBR 能够显著提高网络吞吐量,数据传输更快。
  • 延迟降低:有效减少了数据传输的延迟,让连接变得更加流畅。
  • 实施简便:只需在「终端」执行几条命令,即可轻松启用 BBR。
  • 稳定性增强:即使在网络波动的情况下,BBR 也有助于维持连接稳定。
  • 广泛适用:无论是浏览网页还是提供在线服务,BBR 都能优化体验。

接下来,本文将介绍在 Ubuntu 系统上启用 BBR 的详细步骤,帮助你实现更加高效和流畅的网络体验。

第 1 步:在 Ubuntu 上检查当前 BBR 状态

为了避免重复操作,我们需要先在「终端」中执行以下命令,检查当前 Ubuntu 是否已经启用了 BBR 网络拥塞控制算法:

sysctl net.ipv4.tcp_congestion_control
  • 如果返回net.ipv4.tcp_congestion_control = bbr,表示 BBR 已启用。
  • 如果返回其它算法,比如cubicreno,则说明 BBR 尚未激活。
在 Ubuntu 上查看当前拥塞控制算法
在 Ubuntu 上查看当前拥塞控制算法

第 2 步:在 Ubuntu 上启用 BBR

1虽然主流的 Ubuntu 版本通常都支持 BBR,但为了完整性考虑,请在「终端」中执行以下命令,检查当前 Ubuntu 系统的 BBR 兼容性:

sudo modprobe tcp_bbr

如果系统兼容 BBR,上述命令将不会有任何输出;如果不兼容,则会返回报错信息。

2修改/etc/sysctl.conf配置文件来启用 BBR,请在「终端」中执行以下命令追加配置:

sudo sh -c 'echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf'
sudo sh -c 'echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf'

在这里,我们设置了fq(Fair Queuing,公平排队)作为默认的排队规则,并指定bbr作为拥塞控制算法。

3执行以下命令重新加载 sysctl 配置,以应用更改:

sudo sysctl -p
在 Ubuntu 中启用 BBR 拥塞控制算法
在 Ubuntu 中启用 BBR 拥塞控制算法

第 3 步:在 Ubuntu 上验证 BBR 启用状态

1要验证 BBR 是否已经成功激活,还是使用与「第 1 步」相同的命令:

sysctl net.ipv4.tcp_congestion_control

2如果看到以下输出,表示 BBR 已经成功被设置为 Ubuntu 的默认拥塞控制算法。

net.ipv4.tcp_congestion_control = bbr

3(可选)还可以使用以下命令,检查 BBR 模块是否已经加载到内核中:

lsmod | grep bbr
验证 BBR 拥塞控制算法启用状态
验证 BBR 拥塞控制算法启用状态

通过以上步骤,你的网络连接现在就能够享受到 BBR 带来的性能提升,包括更高的吞吐量和更低的延迟。

赞(1) 赞赏

评论 5

  1. #2

    站长您好,执行`sudo sysctl -p`,得到:

    sysctl: 无法获取/proc/sys/sudo sh -c 'echo "net/core/default_qdisc 的文件状态(stat): 没有那个文件或目录
    sysctl: 无法获取/proc/sys/sudo sh -c 'echo "net/ipv4/tcp_congestion_control 的文件状态(stat): 没有那个文件或目录

    川崎1个月前 (04-20)回复
    • /etc/sysctl.conf 配置文件没写对吧,应该是这两行:
      net.core.default_qdisc=fq
      net.ipv4.tcp_congestion_control=bbr

      海猴子1个月前 (04-20)回复
      • 谢谢站长。我错把那两个命令写进/etc/sysctl.conf中了。

        川崎2周前 (05-11)
  2. #1

    如《何》返回net.ipv4.tcp_congestion_control = bbr,表示 BBR 已启用。
    如果返回其它算法,比如《cubi》或 reno,则说明 BBR 尚未激活。
    有两个地方书写错误

    LoongArch1个月前 (04-16)回复
    • 已更新,感谢刊误。

      海猴子1个月前 (04-16)回复

微信赞赏