Cómo verificar si un parámetro sysctl está configurado en Linux

LinuxLinuxBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderás cómo verificar si un parámetro sysctl específico está configurado en Linux. Exploraremos tres métodos para lograr esto: listar todos los parámetros del kernel utilizando sysctl -a, examinar el archivo de configuración sysctl del sistema en /etc/sysctl.conf y verificar directamente el valor del parámetro dentro del sistema de archivos /proc/sys. Al final de este laboratorio, estarás equipado con las habilidades necesarias para inspeccionar y entender de manera efectiva la configuración de los parámetros del kernel en tu sistema Linux.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/BasicFileOperationsGroup -.-> linux/less("File Paging") subgraph Lab Skills linux/cat -.-> lab-558769{{"Cómo verificar si un parámetro sysctl está configurado en Linux"}} linux/less -.-> lab-558769{{"Cómo verificar si un parámetro sysctl está configurado en Linux"}} end

Listar parámetros sysctl con sysctl -a

En este paso, exploraremos cómo ver y entender los parámetros del kernel utilizando el comando sysctl. El kernel de Linux gestiona muchos aspectos del comportamiento del sistema, y estos comportamientos están controlados por parámetros que se pueden ver y, a veces, modificar en tiempo de ejecución.

El comando sysctl se utiliza para modificar parámetros del kernel en tiempo de ejecución. Estos parámetros se encuentran típicamente en el directorio /proc/sys/.

Para ver una lista de todos los parámetros del kernel disponibles y sus valores actuales, puedes utilizar el comando sysctl -a. La opción -a le indica a sysctl que muestre todos los parámetros.

Abre tu terminal si no está abierta. Recuerda que puedes encontrar el icono de Xfce Terminal en el lado izquierdo de tu escritorio.

Escribe el siguiente comando y presiona Enter:

sysctl -a

Verás una larga lista de resultados, similar a esta (la salida exacta variará según el sistema):

abi.vsyscall32 = 1
fs.aio-max-nr = 1048576
fs.aio-nr = 0
fs.dentry-state = 100000, 96000, 0, 0, 0
fs.dir-notify-enable = 1
fs.file-max = 9223372036854775807
fs.file-nr = 1024      0       9223372036854775807
fs.inotify.max_queued_events = 16384
fs.inotify.max_user_instances = 128
fs.inotify.max_user_watches = 524288
...

Esta salida muestra el nombre de cada parámetro (como fs.file-max) y su valor actual. Estos parámetros controlan varios aspectos del kernel, como la red, el comportamiento del sistema de archivos, la gestión de memoria y más.

Desplazarte por esta lista puede resultar abrumador, pero te da una visión integral de lo que está gestionando el kernel. Puedes usar la barra espaciadora para desplazarte hacia abajo página por página y q para salir de la vista si la salida es larga y se muestra mediante un paginador como less.

Por ahora, simplemente ejecutar el comando es suficiente para completar este paso. Has listado con éxito todos los parámetros del kernel.

Haz clic en Continuar para pasar al siguiente paso.

Verificar la configuración de sysctl con cat /etc/sysctl.conf

En el paso anterior, viste una larga lista de parámetros del kernel utilizando sysctl -a. Si bien sysctl -a muestra los valores actuales, estos valores pueden haberse establecido en el momento del arranque a partir de archivos de configuración.

Uno de los principales archivos de configuración para los parámetros sysctl es /etc/sysctl.conf. Este archivo contiene configuraciones que se aplican cuando el sistema se inicia.

Veamos el contenido de este archivo de configuración utilizando el comando cat. El comando cat se utiliza para mostrar el contenido de archivos.

Escribe el siguiente comando en tu terminal y presiona Enter:

cat /etc/sysctl.conf

Verás el contenido del archivo /etc/sysctl.conf. Este archivo a menudo contiene líneas comentadas (que comienzan con #) que explican el propósito de diferentes configuraciones, así como líneas que establecen parámetros específicos del kernel utilizando el formato parámetro = valor.

A continuación, se muestra un ejemplo de lo que podrías ver (el contenido exacto puede variar):

## /etc/sysctl.conf - Configuration file for setting system variables
#
## For more information, see sysctl(8) and sysctl.conf(5).

## Kernel sysctl configuration file for Debian GNU/Linux
#
## For binary values, 0 is disabled, 1 is enabled.  See sysctl(8) for details.

## Uncomment this to enable software suspend
#kernel.suspend_state = 1

## Uncomment this to enable IPv4 forwarding
#net.ipv4.ip_forward = 1

## Uncomment this to enable IPv6 forwarding
#net.ipv6.conf.all.forwarding = 1

## Uncomment this to enable TCP SYN Cookie Protection
## This protects against SYN flood attacks
#net.ipv4.tcp_syncookies = 1

## Increase the maximum number of open files for the system
#fs.file-max = 100000

## Increase the maximum number of TCP connections
#net.ipv4.tcp_max_syn_backlog = 2048
#net.ipv4.tcp_max_tw_buckets = 4096

Las líneas que no están comentadas (no comienzan con #) son configuraciones activas que se aplicarán. Por ejemplo, una línea como net.ipv4.ip_forward = 1 habilitaría el reenvío de IP.

Ver este archivo te ayuda a entender qué parámetros del kernel se están estableciendo explícitamente durante el arranque del sistema.

Has visto con éxito el contenido del principal archivo de configuración de sysctl.

Haz clic en Continuar para pasar al siguiente paso.

Verificar parámetros en /proc/sys

En los pasos anteriores, utilizaste sysctl -a para listar los parámetros del kernel y cat /etc/sysctl.conf para ver el archivo de configuración. Ahora, veamos dónde se representan realmente estos parámetros en el sistema de archivos.

Los parámetros del kernel gestionados por sysctl se exponen a través de un sistema de archivos virtual especial ubicado en /proc/sys. Este sistema de archivos no almacena archivos reales en el disco; en cambio, proporciona una interfaz a las estructuras de datos del kernel.

La estructura del directorio /proc/sys refleja los nombres jerárquicos de los parámetros sysctl. Por ejemplo, el parámetro net.ipv4.ip_forward corresponde al archivo /proc/sys/net/ipv4/ip_forward.

Vamos a utilizar el comando cat nuevamente para ver el valor de un parámetro específico directamente desde el sistema de archivos /proc/sys. Vamos a observar el parámetro kernel.hostname, que muestra el nombre de host del sistema.

Escribe el siguiente comando en tu terminal y presiona Enter:

cat /proc/sys/kernel/hostname

Deberías ver el nombre de host del sistema, que probablemente sea labex en este entorno:

labex

Ahora veamos otro ejemplo, el parámetro fs.file-max que vimos en la salida de sysctl -a.

Escribe el siguiente comando y presiona Enter:

cat /proc/sys/fs/file-max

Verás el número máximo actual de archivos abiertos permitidos en el sistema:

9223372036854775807

Esto demuestra que los valores que se ven con sysctl -a son directamente accesibles y legibles desde archivos dentro del directorio /proc/sys. Puedes utilizar comandos estándar de manipulación de archivos como cat para leer sus valores.

Comprender el sistema de archivos /proc/sys es fundamental para trabajar con parámetros del kernel, ya que es el mecanismo subyacente con el que interactúa sysctl.

Has verificado con éxito los parámetros del kernel al ver sus archivos correspondientes en /proc/sys.

Haz clic en Continuar para completar este laboratorio.

Resumen

En este laboratorio, aprendimos cómo verificar si un parámetro sysctl está configurado en Linux. Comenzamos utilizando el comando sysctl -a para listar todos los parámetros del kernel disponibles y sus valores actuales, lo que nos brindó una visión integral de la configuración en tiempo de ejecución del kernel.

A continuación, exploramos cómo verificar la configuración persistente de sysctl examinando el archivo /etc/sysctl.conf utilizando el comando cat. Finalmente, aprendimos cómo verificar el valor actual de un parámetro específico inspeccionando directamente su archivo correspondiente dentro del directorio /proc/sys. Estos pasos proporcionan múltiples métodos para entender y confirmar el estado de los parámetros del kernel.