BBR (Bottleneck Bandwidth and Round-trip propagation time) is a TCP congestion control algorithm developed by Google that replaces the default cubic algorithm on Linux systems. Where cubic relies on packet loss to detect congestion, BBR builds a model of the network path to maximize throughput and minimize latency. This guide walks through how to enable BBR on Linux Mint, verify the change, and persist it across reboots. By the end, your system will use BBR for all TCP connections, which is particularly beneficial for SSH sessions, large file transfers, and streaming 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 steps below to enable it.
Enable BBR on Linux Mint
Load the BBR Kernel Module
BBR ships as a kernel module on all supported Linux Mint releases. Load it into the running kernel to make it available as a congestion control option:
sudo modprobe tcp_bbr
This guide uses
sudofor commands that need root privileges. If your user is not in the sudoers file yet, follow the guide on how to 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 kernel was compiled without BBR support, which is uncommon on standard Linux Mint installations. 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
Enabling BBR requires two sysctl settings: one to set the queuing discipline to fq (Fair Queuing), which BBR needs for optimal packet scheduling, and one to switch the congestion control algorithm from cubic to bbr. The following command writes both settings to /etc/sysctl.conf only if they are not already present, preventing duplicate entries if you run it more than once:
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 line already exists, the echo command is skipped. This approach is safer than blindly appending with >>, which would add duplicate lines on repeated runs.
Apply the BBR Sysctl Settings
Reload the sysctl configuration to apply both settings immediately without rebooting:
sudo sysctl -p
The command reads /etc/sysctl.conf and prints each applied setting:
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. After a reboot, run the verification commands again to confirm BBR reloads automatically.
Troubleshoot BBR on Linux Mint
BBR Reverts to Cubic After Reboot
If the congestion control algorithm reverts to cubic after rebooting, the tcp_bbr kernel module may not be 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.
Module Not Found Error
If sudo modprobe tcp_bbr returns FATAL: Module tcp_bbr not found, your kernel may be too old or was built without BBR support. Check your kernel version:
uname -r
BBR requires kernel 4.9 or later. All supported Linux Mint releases (22.x and 21.x) ship with kernels well above this requirement. If you are running a custom kernel, verify that CONFIG_TCP_CONG_BBR is set to m or y in your kernel configuration. Installing the XanMod kernel on Linux Mint is another option, as it includes BBR support and often enables BBRv2 by default.
Duplicate 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. Check for duplicates:
grep -c 'tcp_congestion_control' /etc/sysctl.conf
If the count is greater than 1, open the file and remove the duplicate lines:
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 the default cubic congestion control algorithm, 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
Apply the change immediately:
sudo sysctl -w net.core.default_qdisc=pfifo_fast
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
If you added a module-load file earlier, remove it as well:
sudo rm -f /etc/modules-load.d/bbr.conf
Frequently Asked Questions About BBR on Linux Mint
BBR primarily improves TCP throughput and latency. It benefits large file transfers, SSH sessions, streaming, and web browsing. It does not affect UDP traffic, so applications like DNS lookups or some real-time gaming protocols that use UDP see no direct improvement.
No. Linux Mint uses the cubic congestion control algorithm by default. BBR is available as a kernel module but must be manually enabled through sysctl configuration.
BBR is safe for most environments. In rare cases, networks with aggressive traffic policing or strict rate limiting may behave differently with BBR because it does not back off as quickly as cubic when it detects congestion. If you experience issues, disabling BBR reverts your system to the default cubic algorithm immediately.
Conclusion
You now have BBR configured as the TCP congestion control algorithm on Linux Mint, with fq queuing and persistence across reboots through /etc/sysctl.conf. For systems running network services, consider pairing BBR with TCP Fast Open in Nginx to further reduce connection latency on outbound traffic.
Formatting tips for your comment
You can use basic HTML to format your comment. Useful tags currently allowed:
<code>command</code>command<strong>bold</strong><em>italic</em><blockquote>quote</blockquote>