Что приоритетнее в Linux (ubuntu): /etc/sysctl.conf или /proc/sys/net/ipv4/ip_forward?
Коллеги, я так понимаю записи в файлах /etc/sysctl.conf 'net.ipv4.ip_forward=1' и /proc/sys/net/ipv4/ip_forward '1' равнозначны? И если да, то какой из них приоритетнее (на случай если вдруг забыл что делал изменение)?
могу ошибаться, но данные из sysctl загружаются в /proc
в сам /proc параметры можно добавить , но они работают только до перезагрузки. по сути тупо можно разве что добавить параметры на "живую" чтобы не перезагружать систему
В /proc - действующие параметры ядра линукс. Эта виртуальная файловая система - прямое отображение некоторых структур ядра в user space. Любые изменения тут сразу же становятся активны в ядре. При перезагрузке все изменения сбрасываются на значения по умолчанию.
/etc/sysctl.conf - обычный файл в файловой системе, как и многие другие, находящиеся в /etc. Чтоб конфигурация из файла вступила в силу, надо запустить специальную утилиту, в данном случае sysctl.
проверял на Ubuntu 2204. после перезагрузке сохраняются.У меня так роутер сделан)
1. Возможно то же значение указано и в /etc/sysctl.conf, поэтому оно подтянулось после перезагрузки.
2. Какие-то другие программы могут вносить изменения в параметры ядра при старте системы
3. Значения по умолчанию указываются при сборке ядра из исходников. Поэтому в разных дистрибутивах и разных ядрах значения по умолчанию могут быть разные. Возможно в вашем конкретном ядре такое значение указано при сборке.
не равнозначны :)
/proc/sys/net/ipv4/ip_forward - псевдофайл, напрямую меняющий параметр внутри ядра линукса.
т.е. запись в файл сразу меняет поведение драйвера.
/etc/sysctl.conf - это файл настроек для специальной утилиты sysctl, который используется для установления параметров ядра системы при загрузке.
параметры из /etc/sysctl.conf в ядро попадают только при запуске sysctl.
обычно при загрузке система разок запускается sysctl для установки параметров ядра.
sysctl на основе /etc/sysctl.conf делает изменения в /proc
В /proc хранятся оперативные и текущие значения, в sysctl - значения для управления этими значениями