Verificar el valor de una variable sysctl es tan fácil como
sysctl <variable name>
y, por cierto, establecer una variable sysctl es tan sencillo como
sudo sysctl -w <variable name>=<value>
pero los cambios realizados de esta manera probablemente solo se mantendrán hasta el próximo reinicio.
En cuanto a cuál de las ubicaciones de configuración, /etc/sysctl.conf
o /etc/sysctl.d/
, tiene prioridad, esto es lo que /etc/sysctl.d/README
el archivo dice:
Los usuarios finales pueden usar 60-*.conf y superior, o usar /etc/sysctl.conf directamente, que anula cualquier cosa en este directorio .
Después de editar la configuración en cualquiera de las dos ubicaciones, los cambios se pueden aplicar con
sudo sysctl -p
Este tipo de cosas suele estar en el /proc
y/o /sys
interfaces del kernel (primero, tenga en cuenta que nada en esos directorios es un archivo de disco normal, son todas líneas directas al kernel).
Entonces, por ejemplo:
»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
Parece que tengo rp_filter configurado para em1, wlan0 y "predeterminado". Puede activarlos o desactivarlos simplemente escribiendo en el identificador del archivo:
»cd /proc/sys/net/ipv4/conf/lo
»echo 1 > rp_filter
»cat rp_filter
1
»echo 0 > rp_filter
»cat rp_filter
0
Como se mencionó, esta es una comunicación directa con el núcleo, por lo que surte efecto de inmediato. Estos no son Archivos de configuración. Si intenta hacer algo mal:
»echo whatever > rp_filter
bash: echo: write error: Invalid argument
Lo que no quiere decir que no puedas arruinar las cosas de esta manera, por supuesto. Y asegúrese de leer los comentarios a continuación.