Всё, что вы настроили в Linux, можно было не настраивать
Настройка Linux: что можно не трогать? Честный разбор
Многие из нас тратят часы на правку конфигов. Редактируют /etc/network/interfaces, вручную добавляют скрипты в автозагрузку, крутят swappiness и десятки параметров sysctl. А правда в том, что современный Linux уже умеет делать всё это сам. И лучше вас. Давайте разберём, где ваши усилия были лишними.
Сеть: почему вы до сих пор правите interfaces вручную?
Старая школа — писать статику в /etc/network/interfaces. Но в современных дистрибутивах (Ubuntu 20.04+, Debian 10+, Fedora) по умолчанию крутятся NetworkManager (на десктопах) или systemd-networkd (на серверах). Они сами договариваются с DHCP. Для статического IP достаточно одной команды nmcli или пары кликов в GUI. Сравните:
| Параметр | Ручная настройка (interfaces) | Современный подход |
|---|---|---|
| DHCP | auto eth0; iface eth0 inet dhcp | Просто подключи кабель |
| Статический IP | Править несколько файлов + перезапуск сети | Одна команда nmcli con mod |
| VPN | Скрипты + дополнительные утилиты | Встроен в NetworkManager |
| Несколько интерфейсов | Сложные ifup/ifdown скрипты | Профили и автоматические переключения |
Если вы всё ещё копаетесь в /etc/network/interfaces на свежем дистрибутиве — вы теряете время. Доверьтесь systemd-networkd или NetworkManager. Они спроектированы так, чтобы работать без вашего вмешательства.
rc.local умер. Да здравствует systemd!
Раньше для запуска скриптов при старте были rc.local. Теперь его нет во многих дистрибутивах. Вместо того чтобы дописывать строки в /etc/rc.local, создайте systemd-юнит. Это надежнее: он следит за зависимостями, умеет перезапускать упавший процесс. Пример простого сервиса:
[Unit]
Description=Мой скрипт
After=network.target
[Service]
ExecStart=/usr/local/bin/my_script.sh
Restart=on-failure
[Install]
WantedBy=multi-user.target
Затем systemctl enable my-script.service. Никаких rc.local, которые могут быть проигнорированы. И вы точно знаете, что сервис запустился.
Swap и swappiness: мифы, которые пора забыть
Часто советуют выставить vm.swappiness=10, чтобы система реже сбрасывала данные в swap. Но современные ядра (5.0+) сами отлично балансируют. Значение по умолчанию 60 — не ошибка. Если у вас достаточно ОЗУ, swap почти не используется. Ручное занижение swappiness иногда ухудшает производительность: ядро начинает преждевременно убивать процессы вместо graceful swap. Лишнее действие.
Оставьте swappiness по умолчанию. Если у вас настолько мало памяти, что swap критичен — лучше добавьте ОЗУ, чем играться с одним параметром.
Что на самом деле стоит трогать?
Разработчики ядра и дистрибутивов уже настроили безопасность «из коробки». Например, параметры sysctl:
| Параметр | Типичная рекомендация | Значение по умолчанию |
|---|---|---|
| net.ipv4.ip_forward | 0 | 0 |
| net.ipv4.conf.all.rp_filter | 1 | 1 |
| kernel.randomize_va_space | 2 | 2 |
Всё уже включено. А многие «советы с форумов» относятся к ядрам 2.6 или дистрибутивам десятилетней давности. Современный Linux — это не конструктор, который нужно собирать с нуля. Это отлаженный механизм.
Личное наблюдение автора. Недавно я заметил, что коллеги тратят по полдня на «тонкую настройку» свежеустановленного сервера. А потом выясняется, что 90% их изменений — это возврат к значениям по умолчанию. Linux уже работает хорошо. Своё время лучше потратить на написание кода, мониторинг реальных проблем или автоматизацию развертывания (Ansible, Terraform). Поверьте, разработчики ядра знают своё дело.
Резюме от автора. Не множьте сущности. Не настраивайте то, что уже настроено. Проверьте, не дублирует ли ваша ручная конфигурация работу systemd, NetworkManager или современного ядра. Если всё работает из коробки — не трогайте. Это не лень, это профессионализм.















