Uso de sysctl para cambiar los parámetros del núcleo
Utilice el comando sysctl para ver y cambiar los parámetros del núcleo para modificar el comportamiento del sistema operativo, como la configuración de red, las funciones de seguridad y los límites de recursos.
Para obtener más información, consulte la página del comando man sysctl(8).
Enumeración de parámetros y valores del núcleo
Utilice el comando sysctl para examinar los parámetros del sistema de núcleo definidos en el sistema de archivos virtual /proc/sys.
El carácter delimitador del nombre de un valor es un punto (
.) en lugar de una barra diagonal (/) en una ruta relativa a /proc/sys. Por ejemplo, net.ipv4.ip_forward representa net/ipv4/ip_forward. - Para ver todos los parámetros del núcleo y sus valores para el núcleo en ejecución, ejecute
sysctl -a, por ejemplo:sudo sysctl -a... kernel.sched_cfs_bandwidth_slice_us = 5000 kernel.sched_deadline_period_max_us = 4194304 kernel.sched_deadline_period_min_us = 100 kernel.sched_rr_timeslice_ms = 100 kernel.sched_rt_period_us = 1000000 kernel.sched_rt_runtime_us = 950000 kernel.sched_schedstats = 0 ... - Para ver un parámetro específico y su valor, ejecute
sysctly el nombre del parámetro, por ejemplo:sudo sysctl kernel.dmesg_restrictkernel.dmesg_restrict = 0 - Para ver una recopilación de valores de parámetros, ejecute
sysctly el nombre de una recopilación, por ejemplo:sudo sysctl net.ipv4.conf.allnet.ipv4.conf.all.accept_local = 0 net.ipv4.conf.all.accept_redirects = 1 net.ipv4.conf.all.accept_source_route = 0 net.ipv4.conf.all.arp_accept = 0 net.ipv4.conf.all.arp_announce = 0 net.ipv4.conf.all.arp_evict_nocarrier = 1 net.ipv4.conf.all.arp_filter = 0 net.ipv4.conf.all.arp_ignore = 0 net.ipv4.conf.all.arp_notify = 0 net.ipv4.conf.all.bc_forwarding = 0 net.ipv4.conf.all.bootp_relay = 0 net.ipv4.conf.all.disable_policy = 0 net.ipv4.conf.all.disable_xfrm = 0 net.ipv4.conf.all.drop_gratuitous_arp = 0 net.ipv4.conf.all.drop_unicast_in_l2_multicast = 0 net.ipv4.conf.all.force_igmp_version = 0 net.ipv4.conf.all.forwarding = 0 net.ipv4.conf.all.igmpv2_unsolicited_report_interval = 10000 net.ipv4.conf.all.igmpv3_unsolicited_report_interval = 1000 net.ipv4.conf.all.ignore_routes_with_linkdown = 0 net.ipv4.conf.all.log_martians = 0 net.ipv4.conf.all.mc_forwarding = 0 net.ipv4.conf.all.medium_id = 0 net.ipv4.conf.all.promote_secondaries = 0 net.ipv4.conf.all.proxy_arp = 0 net.ipv4.conf.all.proxy_arp_pvlan = 0 net.ipv4.conf.all.route_localnet = 0 net.ipv4.conf.all.rp_filter = 0 net.ipv4.conf.all.secure_redirects = 1 net.ipv4.conf.all.send_redirects = 1 net.ipv4.conf.all.shared_media = 1 net.ipv4.conf.all.src_valid_mark = 0 net.ipv4.conf.all.tag = 0
Actualizar parámetros de núcleo
Utilice el comando sysctl para cambiar los valores de los parámetros del núcleo definidos en el sistema de archivos virtual /proc/sys. Los cambios de parámetros del núcleo pueden ser temporales para que el cambio dure hasta el siguiente reinicio de la instancia. O bien, puede hacer que los cambios de parámetros del núcleo sean permanentes para que se mantengan tras los reinicios de la instancia.
- Realizar un cambio temporal en un parámetro del núcleo
- Utilice el comando
sysctl, el nombre del parámetro y su nuevo valor.Por ejemplo, para permitir temporalmente que la instancia reenvíe paquetes IPv4 recibidos en una interfaz de red a otra, defina el valor del parámetro
net.ipv4.ip_forwarden1:sudo sysctl -w net.ipv4.ip_forward=1net.ipv4.ip_forward = 1El cambio de parámetro se revierte la próxima vez que se reinicia la instancia.
- Realizar un cambio de parámetro de núcleo que se mantenga después de reiniciar la instancia
- Agregue el cambio en un archivo de configuración al directorio
/etc/sysctl.d. Los cambios que realice en los archivos de este directorio se aplicarán cuando se reinicie la instancia o si ejecuta el comandosysctl --system.Por ejemplo, puede que desee limitar de forma permanente el acceso a los mensajes de buffer de anillo de núcleo para que solo los usuarios con permisos root puedan ejecutar el comando
dmesg. Para ello, activekernel.dmesg_restrictmediante un archivo de configuración para que el cambio se mantenga mediante reinicios.- Navegue hasta el directorio
/etc/sysctl.d. - Cree un archivo del tipo de configuración, por ejemplo:
sudo touch 99-custom-sysctl.conf - Abra el archivo de configuración en modo de edición. Por ejemplo, edite el archivo con el editor de texto vi:
sudo vi 99-custom-sysctl.conf - Agregar
kernel.dmesg_restrict=1al archivo, guardarlo y cerrar el editor. - Restablezca la instancia para que utilice solo los valores configurados para cargarse en el momento del inicio mediante el comando
sysctl --system. El sistema lee y aplica todos los archivos de configuración agregados o los cambios de configuración en los archivos existentes en el directorio/etc/sysctl.d.Importante
Los valores de los parámetros del núcleo se pueden definir en varias ubicaciones. El comandosysctl --systemaplica los cambios de configuración del núcleo inmediatamente sin reiniciar, lo que vuelve a cargar todos los valores de/etc/sysctl.conf,/etc/sysctl.dy todas las demás ubicaciones, como/usr/lib/sysctl.d/*.confy/run/sysctl.d/*.conf.sudo sysctl --system* Applying /usr/lib/sysctl.d/01-unprivileged-bpf.conf ... * Applying /usr/lib/sysctl.d/10-default-yama-scope.conf ... * Applying /usr/lib/sysctl.d/50-coredump.conf ... * Applying /usr/lib/sysctl.d/50-default.conf ... * Applying /usr/lib/sysctl.d/50-ipv6.conf ... * Applying /usr/lib/sysctl.d/50-libkcapi-optmem_max.conf ... * Applying /usr/lib/sysctl.d/50-pid-max.conf ... * Applying /usr/lib/sysctl.d/50-redhat.conf ... * Applying /usr/lib/sysctl.d/50-scsi-logging.conf ... * Applying /etc/sysctl.d/99-custom-sysctl.conf ... <--New configuration file * Applying /etc/sysctl.d/99-sysctl.conf ... * Applying /etc/sysctl.conf ... kernel.unprivileged_bpf_disabled = 1 kernel.yama.ptrace_scope = 0 kernel.core_pattern = |/usr/lib/systemd/systemd-coredump %P %u %g %s %t %c %h %d kernel.core_pipe_limit = 16 fs.suid_dumpable = 2 kernel.sysrq = 16 kernel.core_uses_pid = 1 net.ipv4.conf.default.rp_filter = 2 net.ipv4.conf.ens3.rp_filter = 2 net.ipv4.conf.lo.rp_filter = 2 net.ipv4.conf.default.accept_source_route = 0 net.ipv4.conf.ens3.accept_source_route = 0 net.ipv4.conf.lo.accept_source_route = 0 net.ipv4.conf.default.promote_secondaries = 1 net.ipv4.conf.ens3.promote_secondaries = 1 net.ipv4.conf.lo.promote_secondaries = 1 net.ipv4.ping_group_range = 0 2147483647 net.core.default_qdisc = fq_codel fs.protected_hardlinks = 1 fs.protected_symlinks = 1 fs.protected_regular = 1 fs.protected_fifos = 1 net.ipv6.conf.default.disable_ipv6 = 0 net.ipv6.conf.all.disable_ipv6 = 0 net.core.optmem_max = 81920 kernel.pid_max = 4194304 kernel.kptr_restrict = 1 net.ipv4.conf.default.rp_filter = 1 net.ipv4.conf.ens3.rp_filter = 1 net.ipv4.conf.lo.rp_filter = 1 dev.scsi.logging_level = 68 kernel.dmesg_restrict = 1 <--Parameter change read from new configuration file. kernel.unknown_nmi_panic = 1
- Navegue hasta el directorio