学习啦>学习电脑>操作系统>Linux教程>

sysctl命令怎么修改内核参数

春健分享

  RedHat向管理员提供了非常好的方法,使我们可以在系统运行时更改内核参数,而不需要重新引导系统。这是通过/proc虚拟文件系统实 现的。/proc/sys目录下存放着大多数的内核参数,并且设计成可以在系统运行的同时进行更改。那么sysctl命令怎么修改内核参数呢?小编为大家分享了sysctl命令修改内核参数的方法,下面大家跟着学习啦小编一起来了解一下吧。

  sysctl命令修改内核参数方法

  sysctl配置与显示在/proc/sys目录中的内核参数.可以用sysctl来设置或重新设置联网功能,如IP转发、IP碎片去除以及源路由检查等。用户只需要编辑/etc/sysctl.conf文件,即可手工或自动执行由sysctl控制的功能。

  命令格式:

  sysctl [-n] [-e] -w variable=value

  sysctl [-n] [-e] -p (default /etc/sysctl.conf)

  sysctl [-n] [-e] -a

  常用参数的意义:

  -w 临时改变某个指定参数的值,如

  sysctl -w net.ipv4.ip_forward=1

  -a 显示所有的系统参数

  -p 从指定的文件加载系统参数,如不指定即从/etc/sysctl.conf中加载

  如果仅仅是想临时改变某个系统参数的值,可以用两种方法来实现,例如想启用IP路由转发功能:

  1) #echo 1 > /proc/sys/net/ipv4/ip_forward

  2) #sysctl -w net.ipv4.ip_forward=1

  以上两种方法都可能立即开启路由功能,但如果系统重启,或执行了

  # service network restart

  命令,所设置的值即会丢失,如果想永久保留配置,可以修改/etc/sysctl.conf文件

  将 net.ipv4.ip_forward=0改为net.ipv4.ip_forward=1

  常见用法

  修改(配置)方法有三种

  临时生效2种

  代码如下:

  # echo 1 > /proc/sys/net/ipv4/ip_forward // 开启路由功能

  # sysctl -w net.ipv4.ip_forward=1 // 用此选项来改变一个sysctl设置

  如果系统重启,或执行service network restart命令,所设置的值即会丢失

  /proc目录下的所有内容都是临时性的, 所以重启动系统后任何修改都会丢失。

  永久生效1种

  代码如下:

  # vi /etc/sysctl.conf

  修改net.ipv4.ip_forward=0的值为1 // 打开数据包的转发功能

  代码如下:

  # sysctl -p /etc/sysctl.conf // 重新载入/etc/sysctl.conf文件,如-p后未指定路径,则载入/etc/sysctl.conf

  指定的值在系统进入多用户模式之后被设定。并不是所有的变量都可以在这个模式下设定。

  sysctl 变量的设置通常是字符串、数字或者布尔型。 (布尔型用 1 来表示'yes',用 0 来表示'no')。

  代码如下:

  [root@Firewall sys]# sysctl -a //查看所有参数

  [root@Firewall sys]# sysctl net.core.wmem_max //查看指定的参数

  net.core.wmem_max = 131071

  [root@Firewall sys]# sysctl net.core.wmem_max=256000 //修改指定的参数

  net.core.wmem_max = 256000

749517