linuxlab.io
Учебники▾
  • Линукс и сети
    Файловая система, процессы, TCP/IP, BGP и OSPF
    →
  • Terraform и IaC
    HCL, state, plan/apply на sandbox LocalStack
    →
  • Git и GitHub
    Объектная модель, plumbing, ветвление, GitHub Actions
    →
Все учебники →
ЦеныО платформеВойтиСоздать аккаунт
/
  • Введение
  • Уроки
  • How it works
  • Симулятор
  • База знаний
  • Собеседование
Index
Categories
All entries
Footer
linuxlab-УчебникиЦеныО платформеКонфиденциальность и куки
Copyright © 2026 LinuxLab. Все права защищены.
home/linux/kb/Команды/cmd-sysctl

kb/commands ── Команды ── intermediate

sysctl - крутилки ядра

`sysctl` читает и пишет параметры ядра через виртуальную FS `/proc/sys/`. Tuning сети, памяти, файлсистемы - всё через эти ручки.

view as markdownaka: proc-sys, kernel-tunables

Где живут параметры

Каждый параметр - это файл под /proc/sys/:

/proc/sys/net/ipv4/ip_forward          ↔  net.ipv4.ip_forward
/proc/sys/net/ipv4/tcp_congestion_control ↔ net.ipv4.tcp_congestion_control
/proc/sys/vm/swappiness                ↔  vm.swappiness
/proc/sys/kernel/pid_max               ↔  kernel.pid_max

Точки в sysctl-имени = слэши в пути. Чтение/запись файла = вызов sysctl.

Базовые команды

bash
sysctl -a                                  # все параметры (тысячи)
sysctl -a 2>/dev/null | grep ^net.ipv4.tcp # фильтр по подсистеме
sysctl net.ipv4.ip_forward                 # прочитать один
sysctl -n net.ipv4.ip_forward              # -n: только значение, без имени
sudo sysctl -w net.ipv4.ip_forward=1       # установить (до ребута)

Постоянная фиксация

-w живёт до ребута. Чтобы навсегда:

bash
echo 'net.ipv4.ip_forward = 1' | sudo tee /etc/sysctl.d/99-router.conf
sudo sysctl --system                       # применить все .conf-файлы прямо сейчас

Файлы в /etc/sysctl.d/ читаются в лексикографическом порядке - префикс с числом (99- или 10-) задаёт приоритет.

Самые ходовые подсистемы

  • net.ipv4.tcp_* - все TCP-tunables (congestion control, keepalive, окна)
  • net.ipv4.ip_forward - превратить машину в роутер (ip-forwarding)
  • net.core.* - общесетевые буферы, qdisc-defaults
  • net.netfilter.nf_conntrack_max - размер таблицы connection tracking
  • vm.swappiness - насколько агрессивно ядро уходит в swap (0-100)
  • vm.overcommit_memory - стратегия overcommit'а памяти
  • fs.file-max - глобальный лимит открытых fd
  • kernel.pid_max - максимальный PID (по умолчанию 32768 или 4M)

Внутри контейнера

В Docker /proc/sys смонтирован read-only. sysctl -w упадёт с EPERM, если контейнер не запущен с --privileged или нужным capability (SYS_ADMIN + правильный mount). Часть параметров считается per-namespace (network sysctls), часть - глобальные (на хосте всё, контейнеру не дают).

Backup перед изменениями

bash
sysctl -a > /tmp/sysctl-backup-$(date +%F).txt 2>/dev/null

Когда что-то сломалось от tuning'а - сравни diff со snapshot'ом.

§ команды

bash
sysctl -a 2>/dev/null | grep tcp_congestion

Найти параметры по теме (тут - TCP congestion control)

bash
sudo sysctl -w net.ipv4.ip_forward=1

Включить IP-форвардинг (превратить хост в роутер); до ребута

bash
sudo sysctl --system

Перечитать все /etc/sysctl.d/*.conf после правки

bash
cat /proc/sys/net/ipv4/tcp_keepalive_time

Прямое чтение через /proc - то же что sysctl, без бинаря

bash
sudo sysctl -p /etc/sysctl.d/99-mytuning.conf

Применить конкретный конфиг-файл

§ см. также

  • tcp-statesTCP states (LISTEN, ESTABLISHED, TIME_WAIT)TCP-сессия проходит через 11 состояний от LISTEN до CLOSED. Самые важные на проде: LISTEN, ESTABLISHED, TIME_WAIT, CLOSE_WAIT.
  • tcp-handshakeTCP three-way handshakeTCP-соединение открывается тремя пакетами: SYN от клиента, SYN-ACK от сервера, ACK от клиента. После - соединение Established, можно слать данные.
  • ip-forwardingIP forwarding - превратить хост в роутерLinux по умолчанию НЕ пересылает пакеты между интерфейсами. Включается через `sysctl net.ipv4.ip_forward=1`. Без этого не работают NAT, VPN-роутер, любой forwarding.
  • kernel-modulesKernel modules - LKM, modprobe, signing, DKMSLKM - код, динамически загружаемый в kernel. modprobe резолвит зависимости через depmod. Подпись модуля для Secure Boot. DKMS пересобирает out-of-tree модули после kernel-upgrade. Lockdown mode запрещает загрузку неподписанных.
Footer
linuxlab-
Copyright © 2026 LinuxLab. Все права защищены.
Учебники
Цены
О платформе
Конфиденциальность и куки