Различия

Показаны различия между двумя версиями страницы.


Предыдущая версия
sysctl [2025/07/06 12:40] (текущий) – внешнее изменение 127.0.0.1
Строка 1: Строка 1:
 +====== sysctl утилита, предназначенная для управления параметрами ядра ======
  
 +{{htmlmetatags>
 +metatag-description=(Примеры использования программы sysctl для настройки ядра Linux и FreeBSD.)
 +}}
 +{{ ::proc-sysctl.jpg?nolink |}}
 +
 +**sysctl** - это утилита и механизм управления параметрами ядра в операционных системах на базе BSD (включая FreeBSD) и Linux. Она позволяет изменять параметры ядра во время работы системы без необходимости перезагрузки. 
 +
 +В Linux sysctl используется для чтения и изменения параметров, связанных с сетью, производительностью, безопасностью и другими аспектами работы ядра. Параметры хранятся в виде файлов в виртуальной файловой системе /proc/sys. В BSD FreeBSD sysctl также используется для управления параметрами ядра, но структура и некоторые параметры могут отличаться от Linux. Параметры ядра в FreeBSD хранятся в дереве параметров ядра и имеют аналогичную функциональность.
 +
 +===== Основные команды sysctl =====
 +Для просмотра всех доступных для чтения переменных:
 +<file bash>
 +sysctl -a
 +</file>
 +Чтобы прочитать определённую переменную, например, kern.maxproc, введите:
 +
 +<file bash>
 +sysctl kern.maxproc
 +kern.maxproc: 1044
 +</file>
 +
 +Изменение параметра ядра из командной строки:
 +<file bash>
 +sudo sysctl -w <parameter>=<value>
 +</file>
 +
 +После редактирования sysctl.conf применить изменения, без перезагрузки ОС, можно командой
 +<file bash>
 +# sysctl  -p
 +</file>
 +Показать максимальное количество файлов, которые могут быть открыты в ОС. <code>$ sysctl fs.file-max
 +fs.file-max = 202019</code>
 +
 +Для присвоения значения переменной, используйте выражение вида переменная=значение:
 +
 +  # sysctl kern.maxfiles=5000
 +  kern.maxfiles: 2088 -> 5000
 +
 +Изменяемые с помощью sysctl переменные обычно принимают значения либо строкового, либо целого, либо булевого типа. Переменные булевого типа могут принимать два значения (1 (истина) и 0 (ложь)).
 +
 +Если вы хотите устанавливать некоторые переменные автоматически при каждой загрузке компьютера, добавьте их в файл /etc/sysctl.conf. За дополнительной информацией обращайтесь к странице справочника sysctl.conf.
 +
 +<file bash>
 +net.inet.tcp.msl=7500 -- время ожидания ACK в ответ на SYN-ACK или FIN-ACK
 +net.inet.tcp.blackhole=2 -- все пакеты на закрытый порт отбрасываются без отсылки RST
 +net.inet.udp.blackhole=1 -- отбрасывать пакеты для  закрытых UDP портов net.inet.icmp.icmplim=50 -- чтобы не флудили по ICMP
 +kern.ipc.somaxconn=32768 -- увеличение числа одновременно открытых сокетов
 +kern.polling.enable=1       -- небольшой тюнинг
 +kern.polling.user_frac=50 --  поллинга
 +net.inet.icmp.drop_redirect=1 -- редиректить нам не надо
 +net.inet.ip.redirect=0 -- запрещаем ответ на часть "лишнего" icmp эти переменные,
 +начиная с 6.0 уже имеют такие значения, но для успокоения души лучше их выставить принудительно
 +net.inet.icmp.maskrepl=0
 +net.inet.ip.sourceroute=0
 +net.inet.ip.accept_sourceroute=0
 +net.inet.icmp.bmcastecho=0
 +net.inet.ip.random_id=1
 +</file>
 +
 +  * [[wpru>Explicit Congestion Notification]] (ECN) — (Явное Уведомление о Перегруженности) <file>
 +# sysctl net.ipv4.tcp_ecn
 +net.ipv4.tcp_ecn = 2
 +</file>
 +===== Распространенные примеры тюнинга ядра Linux =====
 +Настройка сети:
 +  - net.ipv4.tcp_syncookies: Управление использованием SYN cookies для защиты от атак типа [[obnaruzhenie_i_zaschita_ot_dos-atak#syn-flud_poluotkrytoe_tcp_ip-soedinenie|SYN flood]]. Параметр net.ipv4.tcp_syncookies имеет два значения: 0 — SYN cookies отключены, 1 — SYN cookies включены. Когда SYN cookies отключены, сервер использует стандартный механизм обработки SYN-запросов. Это подходит для нормальных условий, когда нагрузка на сервер невысока и нет угрозы атаки SYN flood. Когда SYN cookies включены, сервер защищен от атак SYN flood. Это рекомендуется включать в следующих случаях: Высокая вероятность атак SYN flood: Если ваш сервер подвержен атакам типа SYN flood, включение SYN cookies поможет защитить его от исчерпания ресурсов. Сетевые ресурсы ограничены: Если сервер имеет ограниченные ресурсы, включение SYN cookies может помочь более эффективно использовать эти ресурсы при высокой нагрузке.
 +  - net.ipv4.ip_forward: Разрешение или запрет маршрутизации IP-пакетов между сетевыми интерфейсами ([[nat|Тюнинг NAT в Linux]]).
 +
 +Управление памятью:
 +  - [[swap|vm.swappiness]]: Контроль степени использования swap-памяти вместо оперативной памяти.
 +  - vm.dirty_ratio и vm.dirty_background_ratio: Установка порогов для отложенной записи (dirty) в оперативную память.
 +
 +<panel type="primary" title="Читайте также">
 +  * [[cheklist_nastrojka_vps_vds_vydelennogo_servera_linux]], [[swap]]
 +  * [[nat|Тюнинг NAT в Linux]]
 +  * Тюнинг своп раздела: [[swap]]
 +  * Тюнинг [[wireguard]]
 +</panel>
 +===== Заключение =====
 +Программа sysctl и файл sysctl.conf предоставляют мощные инструменты для тюнинга и оптимизации работы ядра Linux. Путем изменения параметров ядра, пользователи могут настроить систему в соответствии с их требованиями, повысить ее производительность и обеспечить безопасность. Распространенные примеры тюнинга ядра Linux включают настройку сети, управление памятью и повышение безопасности. Важно помнить, что изменение параметров ядра может повлиять на работу системы, поэтому перед внесением изменений рекомендуется ознакомиться с их значениями и последствиями.

📌 Удобный подбор VPS по параметрам доступен на DIEGfinder.com - официальном инструменте проекта DIEG. Это часть единой экосистемы, созданной для того, чтобы помочь быстро найти подходящий VPS/VDS сервер для любых задач хостинга.

📌 Для тестирования скриптов, установщиков VPN и Python-ботов рекомендуем использовать надежные VPS на короткий срок. Подробнее о быстрой аренде VPS для экспериментов - читайте здесь.

💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!