How to Enable BBR on Linux Mint 22 and 21

Enable BBR on Linux Mint with sysctl. Covers loading tcp_bbr, switching from cubic, verification, troubleshooting, and rollback.

Last updatedAuthorJoshua JamesRead time5 minGuide typeLinux Mint

High-latency links, remote shells, and large downloads can expose the limits of Linux Mint’s default cubic TCP congestion control. To enable BBR on Linux Mint, load the tcp_bbr module and switch the system to Google’s model-based congestion control with two sysctl settings.

Linux Mint 22.x and 21.x use cubic with the fq_codel qdisc on standard installs, so BBR is not active until you change it. Add net.core.default_qdisc=fq and net.ipv4.tcp_congestion_control=bbr to /etc/sysctl.conf, then verify the result and keep a rollback path ready for networks that react poorly to different TCP behavior. BBR only affects TCP traffic, so it helps SSH, web traffic, streaming, and large transfers rather than UDP-heavy workloads.

Check the Current TCP Congestion Algorithm on Linux Mint

Before making changes, check which congestion control algorithm your system currently uses. Open a terminal from the applications menu or by pressing the keyboard shortcut configured on your system, then run:

sysctl net.ipv4.tcp_congestion_control

On a default Linux Mint installation, the output shows cubic as the active algorithm:

net.ipv4.tcp_congestion_control = cubic

If the output already shows bbr, BBR is already active and no further changes are needed. Otherwise, continue with the enable sequence here.

Enable BBR on Linux Mint

Load the BBR Kernel Module

Linux Mint 22.x and 21.x ship BBR as a loadable kernel module in their standard Ubuntu-based kernels. Load tcp_bbr with sudo modprobe tcp_bbr so Linux Mint can expose BBR as an available congestion control option:

sudo modprobe tcp_bbr

Commands that change kernel or sysctl settings need sudo. If your user is not in the sudoers file yet, follow add and manage sudo users on Linux Mint.

The command produces no output on success. If you see a FATAL: Module tcp_bbr not found error, your running kernel does not provide the BBR module. Verify the module is loaded by checking available congestion control algorithms:

sysctl net.ipv4.tcp_available_congestion_control

The output should now include bbr alongside the default algorithms:

net.ipv4.tcp_available_congestion_control = reno cubic bbr

Configure BBR as the Default Algorithm in sysctl.conf

To enable BBR through /etc/sysctl.conf, add net.core.default_qdisc=fq and net.ipv4.tcp_congestion_control=bbr if they are not already present. This guarded append sequence adds each line only once, which keeps repeated runs from filling the file with duplicate settings:

grep -qxF 'net.core.default_qdisc=fq' /etc/sysctl.conf || echo 'net.core.default_qdisc=fq' | sudo tee -a /etc/sysctl.conf
grep -qxF 'net.ipv4.tcp_congestion_control=bbr' /etc/sysctl.conf || echo 'net.ipv4.tcp_congestion_control=bbr' | sudo tee -a /etc/sysctl.conf

The grep -qxF check searches for an exact line match. If the setting is missing, tee -a appends it with root privileges. A plain >> redirection would run in your current shell and can fail against a root-owned file.

Apply the BBR Sysctl Settings

Reload the sysctl configuration to apply both settings immediately without rebooting:

sudo sysctl -p

The sudo sysctl -p command reads /etc/sysctl.conf. Relevant output should include both BBR settings:

net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr

Verify BBR Is Active on Linux Mint

Confirm that BBR is now the active congestion control algorithm:

sysctl net.ipv4.tcp_congestion_control

The output confirms BBR is handling TCP congestion control:

net.ipv4.tcp_congestion_control = bbr

You can also verify the queuing discipline is set correctly:

sysctl net.core.default_qdisc
net.core.default_qdisc = fq

Both settings persist across reboots because they are stored in /etc/sysctl.conf. That makes BBR useful for workloads such as SSH sessions if you install OpenSSH on Linux Mint, web traffic, and large transfers, but it will not change UDP-heavy workloads. After a reboot, run the verification commands again to confirm BBR reloads automatically.

Troubleshoot BBR on Linux Mint

Most Linux Mint systems switch to BBR cleanly, but boot-time module loading, custom kernels, or duplicate sysctl entries can keep the system on cubic.

Fix BBR Reverting to Cubic After Reboot

If the congestion control algorithm reverts to cubic after rebooting, check whether BBR is still listed as an available algorithm:

sysctl net.ipv4.tcp_available_congestion_control
sysctl net.ipv4.tcp_congestion_control

If the available list no longer includes bbr, the tcp_bbr kernel module is not loading automatically. Add it to the modules list so it loads at boot time:

echo 'tcp_bbr' | sudo tee /etc/modules-load.d/bbr.conf

Reboot and verify with sysctl net.ipv4.tcp_congestion_control to confirm BBR persists. If bbr is available but the active algorithm is still cubic, recheck the two /etc/sysctl.conf lines for typos and reload them with sudo sysctl -p.

Fix the BBR Module Not Found Error

If sudo modprobe tcp_bbr returns FATAL: Module tcp_bbr not found, your kernel may be too old, custom-built without BBR, or missing the module package for the running kernel. Check your kernel version:

uname -r

BBR was added to Linux 4.9, so standard Linux Mint 22.x and 21.x kernels already clear the version requirement. The next check is whether the running kernel exposes tcp_bbr as a module:

modinfo -F filename tcp_bbr

A standard Mint kernel prints a path under /lib/modules/$(uname -r)/. You can also inspect the kernel configuration flag directly:

grep '^CONFIG_TCP_CONG_BBR=' "/boot/config-$(uname -r)"
CONFIG_TCP_CONG_BBR=m

The value m means BBR is available as the tcp_bbr module, while y means it is built into the kernel. If the flag is missing or set to n, switch back to a maintained Mint kernel path such as the HWE kernel on Linux Mint, or use an alternate kernel such as the XanMod kernel on Linux Mint after checking its support notes.

Fix Duplicate BBR Entries in sysctl.conf

If you previously used echo ... >> /etc/sysctl.conf to add BBR settings, running the command multiple times may have added duplicate lines. The grep command in Linux makes it easy to spot both BBR settings at once:

grep -nE '^(net.core.default_qdisc=fq|net.ipv4.tcp_congestion_control=bbr)$' /etc/sysctl.conf

Each BBR setting should appear once. If either line shows up more than once, open the file and remove the duplicates:

sudo nano /etc/sysctl.conf

Keep only one instance of each setting, then reload with sudo sysctl -p.

Disable BBR on Linux Mint

To revert to Linux Mint’s default cubic congestion control and fq_codel qdisc, remove the BBR lines from /etc/sysctl.conf:

sudo sed -i '/^net.core.default_qdisc=fq$/d' /etc/sysctl.conf
sudo sed -i '/^net.ipv4.tcp_congestion_control=bbr$/d' /etc/sysctl.conf

These sed -i commands delete the exact BBR lines in place. If you want a closer look at the pattern before editing a system file, the sed command in Linux guide covers the same in-place editing style.

Apply the change immediately:

sudo sysctl -w net.core.default_qdisc=fq_codel
sudo sysctl -w net.ipv4.tcp_congestion_control=cubic

Verify the system is back on cubic:

sysctl net.ipv4.tcp_congestion_control
net.ipv4.tcp_congestion_control = cubic

Confirm Linux Mint’s queue discipline has been restored as well:

sysctl net.core.default_qdisc
net.core.default_qdisc = fq_codel

On stock Mint 22.x and 21.x, fq_codel is the default qdisc.

If you added a module-load file earlier, remove it as well:

sudo rm -f /etc/modules-load.d/bbr.conf

Use net.ipv4.tcp_congestion_control as the rollback proof. If net.ipv4.tcp_available_congestion_control still lists bbr immediately after testing, a previously loaded module or existing TCP sockets can keep BBR available until those connections close or the system reboots.

Conclusion

Linux Mint is now using BBR with the fq qdisc, so TCP traffic can recover bandwidth faster on high-latency or busy links. Try it against a real SSH session or a large transfer, and if you manage web servers, enable TCP Fast Open in Nginx to trim another round-trip from supported traffic.

Share this guide

Help another Linux user troubleshoot faster

Share this guide with someone troubleshooting Linux systems or saving it for later.

Follow LinuxCapable

Want more LinuxCapable guides in Google?

Add LinuxCapable as a preferred source so Google can show more of our fresh Linux tutorials in Top Stories and From your sources when relevant.

Add LinuxCapable as a preferred source on Google
Search LinuxCapable

Need another guide?

Search LinuxCapable for package installs, commands, troubleshooting, and follow-up guides related to what you just read.

Found this guide useful?

Support LinuxCapable to keep tutorials free and up to date.

Buy me a coffeeBuy me a coffee
Before commenting, please review our Comments Policy.
Formatting tips for your comment

You can use basic HTML to format your comment. Useful tags currently allowed in published comments:

You type Result
<code>command</code> command
<strong>bold</strong> bold
<em>italic</em> italic
<blockquote>quote</blockquote> quote block

Got a Question or Feedback?

We read and reply to every comment - let us know how we can help or improve this guide.

Verify before posting: