Activer TCP BBR sur un VPS Linux (Debian, Ubuntu, CentOS, Rocky Linux)
TCP BBR est un algorithme de contrôle de congestion développé par Google et intégré au noyau Linux depuis la version 4.9. Sur les liaisons à forte latence, par exemple entre un VPS JUSTG à Johannesburg ou à Moscou et des utilisateurs en Asie, l'algorithme CUBIC par défaut ralentit fortement dès qu'il y a un peu de perte de paquets. BBR estime plutôt la bande passante réelle et le temps d'aller-retour du chemin, ce qui améliore généralement le débit TCP des sites web, téléchargements, API et transferts de fichiers. Ce guide explique comment activer TCP BBR nativement avec sysctl sur Debian, Ubuntu, CentOS, Rocky Linux et AlmaLinux, puis comment le vérifier.
Pourquoi TCP BBR aide sur les longues distances
Les algorithmes basés sur la perte, comme CUBIC, interprètent chaque paquet perdu comme une congestion et réduisent le débit d'envoi. Sur un trajet intercontinental de 150 à 300 ms, chaque réduction met longtemps à être rattrapée, si bien qu'un transfert unique exploite rarement toute la bande passante du serveur. BBR modélise la bande passante du goulet d'étranglement et le RTT minimal, puis cadence l'envoi des paquets en conséquence. Seul le comportement d'envoi du serveur change : les visiteurs n'ont rien à installer.
Étape 1 : Vérifier la version du noyau et le type de virtualisation
Connectez-vous au VPS en root (ou avec un utilisateur sudo) et vérifiez le noyau. BBR nécessite un noyau 4.9 ou plus récent. Les versions actuelles comme Debian 11/12, Ubuntu 20.04/22.04/24.04, Rocky Linux 8/9 et AlmaLinux 8/9 conviennent.
uname -r
systemd-detect-virt
Si systemd-detect-virt renvoie kvm, xen ou vmware, vous gérez votre propre noyau et pouvez continuer. Dans un conteneur OpenVZ ou LXC, le noyau appartient à l'hôte : impossible d'activer BBR depuis le conteneur.
Étape 2 : Confirmer la disponibilité du module BBR
Affichez les algorithmes proposés par le noyau et chargez le module si bbr n'apparaît pas :
sysctl net.ipv4.tcp_available_congestion_control
modprobe tcp_bbr
sysctl net.ipv4.tcp_available_congestion_control
Le résultat typique est net.ipv4.tcp_available_congestion_control = reno cubic bbr. Si modprobe indique que le module est introuvable, votre noyau est trop ancien : voir l'étape 6.
Étape 3 : Activer TCP BBR avec sysctl
BBR fonctionne au mieux avec l'ordonnanceur de file fq (Fair Queue). Créez un fichier de configuration dédié afin que le réglage persiste après un redémarrage et soit facile à retirer. Les commandes sont identiques sous Debian/Ubuntu et CentOS/Rocky/AlmaLinux :
printf 'net.core.default_qdisc=fq\nnet.ipv4.tcp_congestion_control=bbr\n' | sudo tee /etc/sysctl.d/99-bbr.conf
sudo sysctl --system
Le changement s'applique immédiatement aux nouvelles connexions, sans redémarrage. Les connexions déjà ouvertes gardent l'ancien algorithme jusqu'à leur réouverture.
Étape 4 : Vérifier que BBR est actif
Lancez les contrôles suivants :
sysctl net.ipv4.tcp_congestion_control
sysctl net.core.default_qdisc
lsmod | grep bbr
Vous devez obtenir net.ipv4.tcp_congestion_control = bbr et net.core.default_qdisc = fq. La commande lsmod affiche normalement une ligne contenant tcp_bbr. Sur certains noyaux, BBR est compilé en dur et non chargé comme module : un résultat vide de lsmod est alors normal tant que sysctl indique bbr. Pour voir BBR sur les connexions en cours, exécutez ss -ti et cherchez bbr.
Étape 5 : Mesurer le résultat
Comparez le débit avant et après depuis un client éloigné du serveur, par exemple une machine en Asie qui teste un VPS à Johannesburg. iperf3 est une méthode simple :
# Debian / Ubuntu
apt install -y iperf3
# CentOS / Rocky / AlmaLinux
dnf install -y iperf3
# Sur le serveur
iperf3 -s
# Sur le client (remplacez par l'IP de votre serveur)
iperf3 -c 203.0.113.10 -t 30 -R
N'ouvrez le port TCP 5201 du pare-feu que le temps du test. Les résultats varient selon l'heure et le réseau du client : faites plusieurs mesures.
/etc/sysctl.d/99-bbr.conf, puis exécutez sysctl -w net.ipv4.tcp_congestion_control=cubic et sysctl --system.Étape 6 : Noyaux très anciens (méthode héritée)
Les anciens systèmes comme CentOS 6/7 (noyau 2.6/3.10) ou Debian 8 n'intègrent pas BBR. Autrefois, un script communautaire « en un clic » de Teddysun était populaire : il installait un noyau mainline récent et activait BBR en une seule fois, sans jamais prendre en charge OpenVZ. Nous considérons aujourd'hui cette approche comme obsolète : remplacer le noyau d'une distribution en fin de vie peut empêcher le VPS de démarrer et ne fournit aucune mise à jour de sécurité. Il est plus sûr de sauvegarder vos données, de réinstaller le VPS avec une version actuelle depuis l'espace client, puis de suivre les étapes 1 à 4.
Questions fréquentes
TCP BBR fonctionne-t-il sur OpenVZ ?
Non. OpenVZ et les autres plateformes de conteneurs partagent le noyau de l'hôte : l'algorithme de congestion ne peut pas être modifié dans l'invité. Les serveurs cloud JUSTG utilisent une virtualisation complète, où les étapes 1 à 4 fonctionnent normalement.
BBR accélère-t-il le trafic UDP ?
Non. BBR n'agit que sur les connexions TCP émises par votre serveur. Les services UDP et le trafic reçu par le serveur ne changent pas.
Faut-il aussi activer BBR côté client ?
Non. Il suffit de l'activer du côté qui envoie les données ; pour un serveur web ou de téléchargement, c'est le VPS.
Si le problème persiste après avoir suivi ce guide, ouvrez un ticket et le support technique JUSTG vous aidera.