sysctl命令怎么修改内核参数

2016-12-02

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

更多相关阅读

最新发布的文章