ESC

Start typing to search across invoices, services, domains, tickets, and more...

Search... Ctrl+K
Сеть и IP

Как включить BBR в Linux: ручная настройка TCP BBR без скриптов

5 шагов 8 мин чтения 55647 просмотров 96
Содержание

BBR — алгоритм управления перегрузкой TCP от Google, который обычно заметно ускоряет передачу данных на дальних, международных и слегка нестабильных маршрутах. В статье рассказано, как включить BBR в Linux на KVM VPS и выделенных серверах с Debian, Ubuntu, CentOS Stream, Rocky Linux или AlmaLinux. Мы используем только прозрачный ручной способ и не рекомендуем непроверенные «скрипты в одну команду».

Некоторые популярные скрипты заменяют ядро, меняют десятки системных параметров и даже устанавливают неизвестные программы. Это может привести к незагружаемой системе и угрозам безопасности. Для BBR достаточно двух строк — настройте вручную.

Шаг 1: Проверьте поддержку BBR ядром

BBR требует ядро Linux 4.9 или новее. Узнайте версии ядра и ОС:

uname -r
cat /etc/os-release

Стандартные ядра Debian 10+, Ubuntu 18.04+ и Rocky/AlmaLinux 8+ уже поддерживают BBR. CentOS 7 (ядро 3.10) больше не поддерживается — надёжнее переустановить новую ОС из личного кабинета, чем принудительно обновлять ядро.

Шаг 2: Посмотрите доступные алгоритмы управления перегрузкой

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

Если bbr нет в списке, загрузите модуль вручную:

modprobe tcp_bbr
sysctl net.ipv4.tcp_available_congestion_control

Шаг 3: Включите BBR через sysctl (постоянно)

Запишите параметры в отдельный файл в /etc/sysctl.d/ — так их проще контролировать и откатывать. Установите default_qdisc в fq и алгоритм в bbr:

echo "net.core.default_qdisc=fq" | tee /etc/sysctl.d/99-bbr.conf
echo "net.ipv4.tcp_congestion_control=bbr" | tee -a /etc/sysctl.d/99-bbr.conf
sysctl --system

Настройка сохраняется после перезагрузки; команды одинаковы для Debian/Ubuntu и CentOS/Rocky/AlmaLinux.

Шаг 4: Проверьте, что BBR включён

sysctl net.ipv4.tcp_congestion_control
sysctl net.core.default_qdisc
lsmod | grep bbr

Если первая команда выводит bbr, а вторая — fq, всё работает. Наличие tcp_bbr в lsmod означает, что модуль загружен; если BBR встроен в ядро, lsmod может ничего не показать — это нормально, главное, чтобы sysctl показывал bbr.

Шаг 5: Оценка эффекта и откат

Сравните скорость загрузки одного и того же большого файла или результаты iperf3 до и после. Чтобы вернуть стандартный cubic:

rm -f /etc/sysctl.d/99-bbr.conf
sysctl -w net.ipv4.tcp_congestion_control=cubic
sysctl -w net.core.default_qdisc=fq_codel
BBR в основном ускоряет TCP-трафик, отправляемый сервером (загрузки с сайта, раздача видео). На входящий трафик и UDP влияние минимально.

Частые вопросы

Можно ли включить BBR в контейнерах OpenVZ или LXC?

Контейнеры используют ядро хоста и не могут загружать модули или менять алгоритм. На KVM VPS и выделенных серверах это возможно.

BBR включён, но скорость не изменилась.

BBR эффективнее всего на маршрутах с высокой задержкой и небольшими потерями. Если узкое место — ваш домашний канал, клиент или лимит полосы, прирост будет небольшим. Проверьте потери через mtr.

Нужны ли BBR Plus и другие модификации?

Неофициальные версии требуют стороннего ядра и не гарантируют стабильность. В продакшене используйте штатный BBR из дистрибутива.

Если проблема не решена, создайте тикет в круглосуточную техподдержку IMIDC и приложите вывод uname -r и sysctl.

Помог ли вам данный ответ?

Похожие руководства