使用Sysctl命令列出并更改内核配置变量

Linux操作系统运行 在内核上实际上是Linux内核。内核名为Linux,但发行版通常称为Linux。内核为用户空间应用程序提供操作系统服务。内核有许多选项和配置的可能性,以满足用户空间的应用程序,库和系统管理员的需要。这些配置可能是IP堆栈、磁盘读取限制、加载的模块等。管理这些配置变量或内核参数的方法不同。Sysctl是一个工具,它提供了这些 内核参数。

null

语法

我们将使用以下语法 sysctl 命令。

sysctl [options] [variable[=value] ...]

救命

$ sysctl
Help
救命

内核参数配置文件

Linux内核配置存储在一个名为 sysctl.conf . 此文件位于 /etc . 下面是此配置文件中的示例部分。

# Uncomment the next line to enable TCP/IP SYN cookies # See http://lwn.net/Articles/277146/ # Note: This may impact IPv6 TCP sessions too net.ipv4.tcp_syncookies=1  # Uncomment the next line to enable packet forwarding for IPv4 net.ipv4.ip_forward=1  # Uncomment the next line to enable packet forwarding for IPv6 #  Enabling this option disables Stateless Address Autoconfiguration #  based on Router Advertisements for this host net.ipv6.conf.all.forwarding=1

还有一个名为 sysctl.d 它也保存配置文件。操作系统准备了一些文件。例如,内核强化配置可以放入 10-kernel-hardening.conf 方便管理的文件。这些文件通常用于使配置持久化并通过引导生效。

$ ls /etc/sysctl.d/
Kernel Parameter Configuration File
内核参数配置文件

显示内核参数

上一部分我们已经检查了配置文件。这些文件只存储一些内核配置变量。有些默认值不能显式配置。默认配置参数可以用 -a 选择意味着一切。

$ sysctl -a
Display Kernel Parameters
显示内核参数

从截图中我们可以看到,参数的排列方式如下

category.parametername = value

有很多参数我们不能在这里列出。

相关文章: 如何创建RSA公钥和私钥?

显示特定的内核参数

在前面的示例中,我们列出了所有内核参数。有许多内核参数将填满我们的屏幕。如果我们只想得到一个参数,我们可以指定它的列表。但我们需要参数的确切名称。如果我们不知道确切的名字,但是名字的某个部分,我们可以过滤它。要学习过滤,请看下面的示例。

$ sysctl -n vm.laptop_mode
Display Specific Kernel Parameter
显示特定的内核参数

下一行提供值 vm.laptop_mode 目前持有。

过滤内核参数

我们可以很容易地列出单个内核参数 -n 选项。但是,如果我们想列出一个完整的类别,或者我们只知道内核参数名称的一部分呢?我们可以用 grep 找到我们想要的东西的工具。在本例中,我们将列出内核参数,这些名称具有 laptop

$ sudo sysctl -a | grep "laptop"

图片[5]-使用Sysctl命令列出并更改内核配置变量-yiteyi-C++库

核参数类别

有不同类型的内核参数类别。我们将用最流行的参数名称对它们进行简要介绍。

  • device 用于设置连接设备信息、hid、鼠标单击键代码、raid速度等的类别。
  • fs 类别用于存储与文件系统相关的nfs配置、quoata参数等。
  • kernel category提供与内核相关的配置主机名、numa、pty、随机熵等。
  • net category提供与网络相关的参数,如appletalk、ipv4、ipv6堆栈、icmp、route
  • vm 类别提供内存配置,如巨大的页面,过度提交,交换,笔记本电脑模式等。

临时设置内核参数

可以使用sysctl从用户空间更改内核参数。要更改此参数,我们需要根权限,因为它将影响系统范围。在本例中,我们将更改 vm.laptop_mode 把它变成现实。

$ sysctl -w vm.laptop_mode=1
Set Kernel Parameter Temporarily
临时设置内核参数

设置内核参数 坚持不懈地

在前面的示例中,我们设置了内核参数,但它是临时的。重新启动后,此内核参数将被设置为其默认值0。我们可以通过将它们写入持久配置文件来防止内核参数值和设置丢失。我们在教程的开始部分查看了这些配置文件。最简单的方法是在 /etc/sysctl.conf 文件

vm.laptop_mode=1

或者更整洁和可管理的方法是创建一个文件作为 /etc/sysctl.d/30-laptop 对于这种类型的笔记本电脑设置和广告到这个文件。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享