
Цель урока: Научиться управлять параметрами ядра Linux. Мы узнаем, как изменить поведение сети, памяти и безопасности "на лету" без перезагрузки, и как сохранить эти настройки навсегда.
Часть 1: Теория. Где живут настройки?
В Linux есть специальная виртуальная файловая система /proc/sys/.
Это не файлы на диске. Это прямой интерфейс к оперативной памяти ядра.
Давайте заглянем туда:
ls /proc/sys/
Вы увидите папки net (сеть), vm (виртуальная память), kernel (ядро) и другие.

Если прочитать файл оттуда, вы увидите текущую настройку.
Например, узнаем, разрешен ли "проброс" трафика (превращение сервера в роутер):
cat /proc/sys/net/ipv4/ip_forward
-
0 - выключено.
-
1 - включено.
Утилита sysctl - это удобный способ читать и менять эти значения, не лазая по папкам.
Посмотреть ВСЕ доступные настройки (их тысячи):
sysctl -a | more
(Нажимайте Пробел для прокрутки, q для выхода).
Часть 2: Практика. Меняем настройки "на лету"
Представим задачу: вы хотите, чтобы ваш сервер перестал отвечать на ping (стать "невидимым" для сканеров сети).
Шаг 1: Проверка
С вашего домашнего компьютера (или второго окна терминала) запустите пинг сервера:
ping ВАШ_IP
Он должен идти.
Шаг 2: Изменение настройки
Параметр, который за это отвечает, называется net.ipv4.icmp_echo_ignore_all.
Включим игнорирование пингов (поставим 1):
sysctl -w net.ipv4.icmp_echo_ignore_all=1
(Флаг -w означает write - записать).
Шаг 3: Результат
Пинг мгновенно прекратится. Сервер работает, сайты открываются, SSH работает, но на пинги он "молчит".
Важно: Изменения через sysctl -w действуют только до перезагрузки. Если вы перезагрузите сервер, настройки вернутся к стандартным.
Часть 3: Делаем настройки вечными (/etc/sysctl.conf)
Чтобы настройки сохранились после перезагрузки, их нужно записать в файл /etc/sysctl.conf.
При загрузке Linux читает этот файл и применяет всё, что там написано.
Давайте сделаем настройку "анти-пинг" постоянной (или наоборот, уберем её, если она вам не нужна).
-
Открываем файл:
nano /etc/sysctl.conf -
Листаем в самый конец и добавляем новую строку:
# Отключить ответ на PING (для скрытности) net.ipv4.icmp_echo_ignore_all = 0(Я поставил 0, чтобы вернуть пинг обратно, так как для диагностики он полезен. Если хотите скрыть сервер - ставьте 1).
-
Сохраняем (Ctrl+O, Enter) и выходим (Ctrl+X).
-
Применяем изменения без перезагрузки:
Чтобы Linux перечитал файл прямо сейчас, используйте команду:sysctl -pВы увидите вывод параметров, которые применились.
Часть 4: "Золотой стандарт" настроек для сервера
Что реально полезно прописать в sysctl.conf для боевого сервера?
Вот 3 параметра, которые рекомендуют опытные администраторы.
Откройте /etc/sysctl.conf и добавьте эти строки в конец:
1. Автоматическая перезагрузка при панике
Если ядро "сойдет с ума" (Kernel Panic) - например, из-за сбоя драйвера, - сервер обычно просто зависает и висит вечно, пока вы его не перезагрузите вручную через панель хостинга.
Эта настройка заставит его перезагрузиться самостоятельно через 10 секунд.
# Перезагрузка через 10 секунд после Kernel Panic
kernel.panic = 10
2. Тюнинг использования SWAP (из Урока 66)
Мы уже говорили об этом. Не даем серверу использовать медленный диск, пока есть память.
# Использовать SWAP только в крайнем случае
vm.swappiness = 10
3. Защита от SYN-Flood атак
Простая, но эффективная защита от DoS-атак. Если вас атакуют кучей ложных запросов на соединение, ядро начнет использовать механизм "cookies", чтобы не зависнуть.
# Включить защиту от SYN-flood
net.ipv4.tcp_syncookies = 1
Сохраните файл и примените:
sysctl -p
Часть 5: Увеличение лимитов (Ошибки "Too many open files")
Иногда Nginx или база данных падают с ошибкой Too many open files.
В Linux есть ограничение: одна программа не может открыть больше 1024 файлов одновременно. Для нагруженного сервера это очень мало (каждое соединение с клиентом - это тоже файл!).
Эти лимиты настраиваются в другом месте: /etc/security/limits.conf.
-
Проверим текущий лимит:
ulimit -nСкорее всего, будет 1024.
-
Откроем конфиг:
nano /etc/security/limits.conf -
Добавим перед концом файла строки:
# * означает "для всех пользователей" # soft - предупреждение, hard - жесткий потолок * soft nofile 65535 * hard nofile 65535 root soft nofile 65535 root hard nofile 65535
Важно: Эти изменения применятся только после следующего входа в систему.
Выйдите из SSH (logout или exit) и зайдите снова.
Проверьте ulimit -n. Теперь должно быть 65535.
Итоги урока
Теперь вы знаете, как тюнинговать "двигатель" вашего сервера.
-
/proc/sys/ - это панель управления ядром в реальном времени.
-
sysctl -w параметр=значение - для временных тестов (до перезагрузки).
-
/etc/sysctl.conf - для вечных настроек.
-
sysctl -p - команда, чтобы применить настройки из файла.
-
kernel.panic = 10 - маст-хэв для любого удаленного сервера, чтобы он не зависал намертво при сбоях.
В Уроке 70 мы займемся расследованиями. Мы научимся профессионально читать логи. Не просто открывать файл, а искать события по времени, фильтровать ошибки и использовать мощь journalctl для поиска причин падений.
Перейти к просмотру - УРОК №70.
Промо-код: PROMO15 - скидка 15%!
Введите при оформлении первого заказа на сайте: Hosting-VDS.com

