linux内核参数修改方法

由于Linux的内核参数信息都存在内存中,因此可以通过命令直接修改,并且修改后直接生效。但是,当系统重新启动后,原来设置的参数值就会丢失,而系统每次启动时都会自动去/etc/sysctl.conf文件中读取内核参数,因此将内核的参数配置写入这个文件中,是一个比较好的选择。

  1. /proc/sys /proc/sys/kernel
  2. sysctl命令
  3. /etc/sysctl.conf文件,linux系统重启后内核参数值从该文件中读取

Linux 操作系统修改内核参数有3种方式:
1.直接修改 /proc/sys/ 目录中的文件,如: echo “379008 505344 758016” > /proc/sys/net/ipv4/tcp_mem
2.使用sysctl命令临时修改,如:sysctl -w net.ipv4.tcp_mem=“379008 505344 758016”
3.修改 /etc/sysctl.conf 文件,加入配置选项,格式为 key = value ,修改保存后调用 sysctl -p 加载新配置

第三种方式在操作系统重启后会自动生效,第二和第三种方法重启后失效。

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

你可能感兴趣的:(Linux)