💡 Полезные Советы

Оптимизация сетевого стека Linux: Включение TCP BBR для ускорения VPN и прокси.

07.12.25
12

Если вы настроили VPN (O******, W***** Op****) или прокси-сервер, но сталкиваетесь с низкой скоростью передачи данных при хорошем канале, причина часто кроется не в ширине канала, а в устаревших алгоритмах управления перегрузкой TCP.

В этой инструкции мы разберем, как включить алгоритм TCP BBR от Google, который де-факто стал стандартом для оптимизации высоконагруженных и удаленных серверов.

Что такое TCP BBR и зачем он нужен?

По умолчанию в большинстве дистрибутивов Linux используется алгоритм TCP CUBIC. Он был создан в эпоху проводных сетей и работает по принципу "loss-based" (основан на потере пакетов):

  1. Сервер наращивает скорость передачи.

  2. Как только теряется хотя бы один пакет, CUBIC считает, что канал забит, и резко сбрасывает скорость (обычно в 2 раза).

  3. Затем начинается медленный набор скорости заново.

Проблема: В современных сетях (особенно мобильных и международных) потеря пакетов часто носит случайный характер и не означает, что канал перегружен. В результате CUBIC «тормозит» там, где можно работать на полную мощность.

Решение (TCP BBR): Algorithm BBR (Bottleneck Bandwidth and Round-trip propagation time), разработанный Google, использует другой подход. Он моделирует сеть, постоянно измеряя два параметра:

  • Максимальную пропускную способность (Bandwidth).

  • Минимальное время отклика (RTT).

BBR игнорирует случайные потери пакетов и поддерживает скорость передачи на уровне реальной пропускной способности канала. Это дает прирост скорости от 30% до 1000% на нестабильных соединениях.

Инструкция по включению

Шаг 0: Проверка версии ядра

Для работы BBR требуется ядро Linux версии 4.9 или выше. Абсолютное большинство современных систем (Ubuntu 18.04+, Debian 10+, CentOS 8+) уже соответствуют этому требованию.

Проверьте версию ядра командой:

uname -r

Если версия ниже 4.9, вам необходимо сначала обновить ядро ОС.

Шаг 1: Включение BBR

Нам нужно изменить два параметра ядра через sysctl.

  1. Изменить планировщик пакетов (Queue Discipline) на fq (Fair Queueing), так как BBR требует его для корректной работы.

  2. Включить сам алгоритм bbr.

# Добавляем настройки в конфигурационный файл
echo "net.core.default_qdisc=fq" | sudo tee -a /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" | sudo tee -a /etc/sysctl.conf
# Применяем изменения без перезагрузки
sudo sysctl -p

Шаг 2: Проверка результата

Убедитесь, что настройки применились корректно.

  1. Проверяем, какой алгоритм управления перегрузкой используется сейчас:

  2. sysctl net.ipv4.tcp_congestion_control
  3. Проверяем, запущен ли модуль BBR:

  4. lsmod | grep bbr

Ожидаемый вывод (пример):

tcp_bbr 20480 14

Результаты

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

Что вы заметите:

  • Стабильность: YouTube и потоковое видео перестанут буферизироваться.

  • Скорость: Speedtest покажет результаты, близкие к заявленным хостером, даже если клиент находится на другом континенте.

  • Плавность: Исчезнут резкие провалы скорости при использовании мобильного интернета.

Техническое примечание (для администраторов)

  • Почему fq, а не fq_codel? Хотя fq_codel часто является дефолтным в современных дистрибутивах, для работы BBR необходим именно планировщик fq, так как он обеспечивает pacing (равномерную подачу пакетов), на который опирается модель BBR.

  • Совместимость: BBR работает только на стороне отправителя (в данном случае — вашего VPN-сервера). Клиентам (телефонам, ноутбукам) ничего настраивать не нужно.

Пропал интернет (RX: 0) на WAN-порту после обновления прошивки OpenWrt

22.10.25
100

Золотое правило обновления OpenWrt: "Обновлять прошивку без сохранения настроек всех настроек". Иначе могут возникать различные проблемы и конфликты.

Вот полезная инструкция для тех, кто столкнется с такой же проблемой.

Симптомы(Это означает, что проблема на 100% в настройках роутера.):

  • На компьютере ошибка "Не удается связаться с DNS-сервером".

  • В интерфейсе OpenWrt (Network -> Interfaces) на wan-интерфейсе есть исходящие пакеты (TX), но нет входящих (RX: 0 B (0 Pkts.)).

  • Если подключить кабель провайдера напрямую к компьютеру - интернет есть.

Небольшая инструкция:

  1. Скачайте нужный файл прошивки с официального сайта OpenWrt. (Используйте образ Sysupgrade образ можно использовать с веб-интерфейсом LuCI или в терминале.)

  2. Зайдите в System -> Backup / Flash Firmware.

  3. Загрузите прошивку. В процессе обновления НИ в коем случае НЕ отключайте питание.

  4. В процессе обновления ОБЯЗАТЕЛЬНО снимите галочку "Keep settings" (Сохранить настройки).

  5. Роутер перезагрузится с настройками по умолчанию. (нужно будет настроить всё с нуля)

Это устраняет 90% всех проблем, связанных с обновлением, включая "призрачные" интерфейсы вроде br-wan, ошибки со значками из-за установки различных сторонних пакетов и прочее.

Что такое RouterOS?

02.10.25
103

RouterOS - это специализированная операционная система, разработанная латвийской компанией MikroTik. Она основана на ядре Linux и предназначена для превращения аппаратных платформ (как фирменных устройств MikroTik RouterBOARD, так и обычных компьютеров на базе архитектуры x86) в многофункциональные сетевые маршрутизаторы.

В чем преимущество RouterOS?

RouterOS славится своей гибкостью и широчайшим набором функций, что позволяет использовать её для решения самых разнообразных сетевых задач - от простого домашнего роутера до сложных провайдерских сетей.

  • Маршрутизация. Поддерживаются все виды статической и динамической маршрутизации (включая OSPF, BGP, RIP), что позволяет строить сложные и отказоустойчивые сети.

  • Брандмауэр (Firewall). Мощный и гибкий межсетевой экран позволяет детально настраивать правила фильтрации трафика, обеспечивая высокий уровень безопасности сети.

  • VPN (Виртуальные частные сети). Система поддерживает множество протоколов VPN (IPsec, L2TP, OpenVPN, PPTP и другие), что даёт возможность безопасно объединять удалённые офисы или подключать сотрудников к корпоративной сети.

  • Управление беспроводными сетями. RouterOS позволяет создавать и управлять беспроводными сетями Wi-Fi в качестве точки доступа, клиента или в составе сложных Mesh-сетей. Поддерживаются все современные стандарты Wi-Fi.

  • Hotspot Gateway. Одна из самых популярных функций - организация публичных Wi-Fi сетей (в кафе, гостиницах, аэропортах) с возможностью аутентификации пользователей, ограничения скорости и учёта трафика.

  • Контроль пропускной способности (QoS). Система позволяет эффективно управлять трафиком: устанавливать приоритеты для определённых видов данных (например, для видеозвонков), ограничивать скорость для отдельных пользователей или устройств.

  • Мониторинг и администрирование. RouterOS предоставляет обширные инструменты для мониторинга состояния сети в реальном времени, ведения логов и диагностики неполадок.

Управлять устройствами на базе RouterOS можно несколькими способами, что делает её удобной как для новичков, так и для опытных сетевых инженеров:

  • WinBox: Самый популярный способ - это специальная утилита с графическим интерфейсом для Windows, которая позволяет легко и наглядно настраивать все функции роутера.

  • WebFig: Веб-интерфейс, доступный через любой браузер. По функциональности почти не уступает WinBox.

  • Командная строка (CLI): Для продвинутых пользователей и автоматизации доступно управление через консоль по протоколам SSH или Telnet. Это самый мощный и гибкий способ конфигурации.

  • API: Позволяет интегрировать управление устройствами MikroTik в сторонние системы мониторинга и автоматизации.

Благодаря своей стабильности, богатому функционалу и доступной цене, оборудование MikroTik под управлением RouterOS стало чрезвычайно популярным как среди интернет-провайдеров и системных администраторов, так и среди энтузиастов, желающих получить максимальный контроль над своей домашней сетью.

Что такое OpenWRT? (Open Wireless Router)

30.09.25
105

Коротко об OpenWrt

OpenWrt (сокращение от Open Wireless Router) - это бесплатная операционная система с открытым исходным кодом на базе Linux, предназначенная в первую очередь для встроенных сетевых устройств, таких как домашние маршрутизаторы (роутеры), точки доступа и шлюзы.

В отличие от стандартной прошивки, поставляемой производителем, OpenWrt предоставляет полностью перезаписываемую файловую систему с системой управления пакетами.

Официальный сайт проекта OpenWrt

Преимущества OpenWrt

  • Полная настройка и расширяемость
  • Можно устанавливать, обновлять и удалять дополнительные программные пакеты (их тысячи) с помощью менеджера пакетов opkg. Это позволяет добавлять такие функции, как поддержка VPN (OpenVPN, WireGuard), блокировка рекламы (Adblock, Pi-Hole), улучшенное управление качеством обслуживания (QoS/SQM), системы обнаружения вторжений, торрент-клиенты, создание гостевых сетей, расширенная настройка VLAN и многое другое.

  • Проект активно поддерживается сообществом, что обеспечивает регулярные обновления безопасности и исправления ошибок, часто для устройств, которые давно перестали поддерживаться производителем.

  • Настройка может производиться как через веб-интерфейс (LuCI), который включен в большинство стандартных сборок, так и через интерфейс командной строки (SSH).

  • Поддерживает широкий спектр аппаратного обеспечения от разных производителей. Однако перед установкой всегда необходимо проверить совместимость конкретной модели на сайте проекта OpenWrt. Удобная таблица для поиска вашего устройства на сайте OpenWRT

Из необычного устройство на OpenWRT можно использовать:

  • Для расширенных сетевых функций: Если вам требуются возможности, которых нет в стандартной прошивке (например, собственный VPN-сервер или клиент на роутере).

  • Для создания специализированных устройств: Например, для настройки роутера в качестве сетевого хранилища (NAS) при наличии USB-порта, сервера печати или даже в качестве основы для устройств Интернета вещей (IoT).

  • Для создания специализированных устройств: Например, для настройки роутера в качестве сетевого хранилища (NAS) при наличии USB-порта, сервера печати или даже в качестве основы для устройств Интернета вещей (IoT).

"Не хватка памяти - oom-killer". Что такое swap в Linux? Или как подкачать RAM?

13.08.25
161

Пример ошибки: text uvicorn invoked oom-killer: gfp_mask=0x1100cca(GFP_HIGHUSER_MOVABLE), order=0, oom_score_adj=0 

OOM Killer (Out-of-Memory Killer) - это механизм ядра Linux, который активируется при критическом исчерпании памяти (физической или swap) и выбирает процесс для принудительного завершения, чтобы освободить ресурсы. Этот механизм предотвращает полную остановку системы, сохраняя её стабильность в условиях высокой нагрузки.

Когда RAM заканчивается - система перемещает редко используемые куски памяти на диск (в swap), это позволяет запускать больше программ, чем позволяет физическая память. Но так как диск медленнее RAM, система может замедлиться. Зато не падает с ошибкой "не хватает памяти".

✅ Swap в Linux - это аналог "файла подкачки" (pagefile.sys) в Windows.

Даже на HDD swap - это страховка от падений при нехватке памяти. На NVMe он работает ещё эффективнее. Настраиваем:

  1. Создаем обычный файл размером 2 гигабайта по пути swapfile. Этот файл будет использоваться как виртуальная память на диске. bash sudo fallocate -l 2G /swapfile
  2. Устанавливаем права доступа к файлу: только root может читать и писать. Это важно для безопасности - swap может содержать конфиденциальные данные (пароли, сессии, куки). bash sudo chmod 600 /swapfile
  3. "Форматируем" файл как swap-пространство. Добавляем внутрь специальную метку, чтобы система поняла: "этот файл - не просто файл, а место для подкачки". bash sudo mkswap /swapfile
  4. Активируем swap-файл. Система начинает использовать его как расширение оперативной памяти. bash sudo swapon /swapfile
  5. Добавляем строку в файл fstab - таблицу файловых систем. Это нужно, чтобы swap включался автоматически при каждой перезагрузке сервера. bash echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

Как установить Outline Client на Linux Mint?

22.04.25
228

1 . Скачайте образ по ссылке: Linux: https://s3.amazonaws.com/outline-releases/client/linux/stable/Outline-Client.AppImage Альтернативно, через терминал: bash wget https://s3.amazonaws.com/outline-releases/client/linux/stable/Outline-Client.AppImage 2 . Выполните команду в терминале, чтобы установить необходимые библиотеки для работы Outline: bash sudo apt install libappindicator3-1 libgtk-3-0 libnotify4 libnss3 libxss1 libxtst6 xdg-utils Зачем это нужно?

Эти пакеты обеспечивают работу графического интерфейса, системных уведомлений и интеграцию с рабочим столом.

3 . Настройте права и запустите приложение

  • Сделайте файл исполняемым(нужно находиться в той же папке, что и файл):

bash chmod +x Outline-Client.AppImage

  • Запустите клиент от обычного пользователя (без sudo):

bash ./Outline-Client.AppImage

4 . Потребуется доустановить Outline -Controller от суперпользователя:

  • Вводим пароль суперпользователя
  • Yes
  • Решение проблемы с интерфейсом Если кнопки не отображаются:
  • Перейдите в Параметры системы → Экран.
  • Временно измените ориентацию на Книжную (Portrait).
  • Запустите Outline Client — теперь интерфейс должен отображаться корректно.
  • После настройки подключения верните ориентацию экрана в исходное состояние.

Почему это происходит?

Приложение может некорректно обрабатывать размер окна на некоторых разрешениях экрана. А изменения размера интерфейса приложения нет.

5 . Подключение к серверу - Получите ключ доступа от администратора сервера. Он имеет формат: text ss://<зашифрованные_данные> Вставьте ключ в поле ввода Outline Client: - Если ключ определился автоматически, нажмите «Подключиться». - Если нет — вставьте его вручную и нажмите «Подключиться».

6 . Теперь у вас есть доступ к свободному интернету. Чтобы убедиться, что вы подключились к серверу, введите в Google Поиске фразу "Какой у меня IP-адрес". IP-адрес, указанный в Google, должен совпадать с IP-адресом в клиенте Outline.

Важно:

Используйте только доверенные ключи доступа — они предоставляют полный доступ к вашему трафику.