Определение значений параметров ядра, связанных с sysctl.conf и sysctl.d

На моей машине Ubuntu в файле /etc/sysctl.conf у меня есть параметры фильтрации обратного пути, отмеченные по умолчанию следующим образом:

 #net.ipv4.conf.default.rp_filter=1 #net.ipv4.conf.all.rp_filter=1 

но в /etc/sysctl.d/10-network-security.conf они (опять же, по умолчанию) не закомментированы:

  • systemd share cifs "ошибка монтирования (13): разрешение отклонено"
  • Что делает опция «nointremap» для Linux?
  • Почему мой рабочий стол блокируется, когда я копирую много файлов на USB-накопитель?
  • Как определить службу системы Ubuntu Linux16.04 для fastcgi-mono-server4 или xsp4?
  • Linux: невозможно открыть / dev / dsp
  • Не удалось установить tftpd-hpa
  •  net.ipv4.conf.default.rp_filter=1 net.ipv4.conf.all.rp_filter=1 

    Так включена фильтрация обратного пути или нет? Какое из местоположений конфигурации имеет приоритет? Как проверить текущие значения этих и других параметров ядра?

  • Как настроить загрузчик для загрузки нового ядра?
  • Повторно введите пространство имен PID 1
  • Как узнать, работает ли команда patch?
  • Неиспользует ли уведомление об увольнении, когда начинается запись или когда она завершена?
  • В домашнем каталоге новых пользователей создайте подкаталог с определенной группой и разрешениями
  • Выполняет ли синхронизация команду удалить грязный кэш в памяти?
  • 3 Solutions collect form web for “Определение значений параметров ядра, связанных с sysctl.conf и sysctl.d”

    Проверка значения переменной sysctl так же просто, как и

     sysctl <variable name> 

    и, кстати, установка переменной sysctl столь же проста, как и

     sudo sysctl -w <variable name>=<value> 

    но изменения, сделанные таким образом, вероятно, будут сохраняться только до следующей перезагрузки.

    Что касается расположения конфигураций, /etc/sysctl.conf или /etc/sysctl.d/ имеет приоритет, вот что говорит файл /etc/sysctl.d/README :

    Конечные пользователи могут использовать 60 – *. Conf и выше или напрямую использовать /etc/sysctl.conf , что переопределяет что-либо в этом каталоге .

    После редактирования конфигурации в любом из двух местоположений изменения могут быть применены с помощью

     sudo sysctl -p 

    Этот тип материала обычно находится в интерфейсах ядра /proc и / или /sys (во-первых, имейте в виду, что ничего в этих каталогах не является обычным файлом на диске, все они являются прямыми линиями ядра).

    Итак, например:

     »for x in /proc/sys/net/ipv4/conf/*/rp_filter; do echo -ne "$x "`cat $x`"\n"; done /proc/sys/net/ipv4/conf/all/rp_filter 0 /proc/sys/net/ipv4/conf/default/rp_filter 1 /proc/sys/net/ipv4/conf/em1/rp_filter 1 /proc/sys/net/ipv4/conf/lo/rp_filter 0 /proc/sys/net/ipv4/conf/wlan0/rp_filter 1 

    Похоже, у меня установлен rp_filter для em1, wlan0 и "default". Вы можете установить или отключить их, просто записав в дескриптор файла:

     »cd /proc/sys/net/ipv4/conf/lo »echo 1 > rp_filter »cat rp_filter 1 »echo 0 > rp_filter »cat rp_filter 0 

    Как уже упоминалось, это прямая связь с ядром, так что это вступает в силу немедленно. Это не файлы конфигурации. Если вы попытаетесь сделать что-то не так:

     »echo whatever > rp_filter bash: echo: write error: Invalid argument 

    Разумеется, это не означает, что вы не можете это испортить. И обязательно прочитайте комментарии ниже.

    Чтобы завершить принятый ответ , хотя верно, что параметры /etc/sysctl.conf имеют приоритет над параметрами в /etc/sysctl.d/ , в примере, представленном в исходном вопросе, отображаются две закомментированные переменные в /etc/sysctl.conf :

     #net.ipv4.conf.default.rp_filter=1 #net.ipv4.conf.all.rp_filter=1 

    и те же переменные, которые не закомментированы в /etc/sysctl.d/10-network-security.conf :

     net.ipv4.conf.default.rp_filter=1 net.ipv4.conf.all.rp_filter=1 

    Это может ввести в заблуждение, потому что комментарий не является настройкой, а лишь замечанием того, что может быть настройкой.

    В этой ситуации переменные на самом деле оба установлены в 1, несмотря на то, что в более сильном файле конфигурации они закомментированы.

    Если в /etc/sysctl.conf мы имели:

     net.ipv4.conf.default.rp_filter=0 net.ipv4.conf.all.rp_filter=0 

    то в конечном итоге переменные будут установлены на 0.

    Linux и Unix - лучшая ОС в мире.