一天一个命令之---sysctl
程序员文章站
2024-02-23 15:09:58
...
sysctl,这个命令是用来动态修改系统参数的。
sysctl 命令
sysctl命令被用于在内核运行时动态地修改内核的运行参数,可用的内核参数在目录/proc/sys中。
它包含一些TCP/ip堆栈和虚拟内存系统的高级选项,这可以让有经验的管理员提高引人注目的系统性能。用sysctl可以读取设置超过五百个系统变量。
选项 :
-n:打印值时不打印关键字;
-e:忽略未知关键字错误;
-N:仅打印名称;
-w:当改变sysctl设置时使用此项;
-p:从配置文件“/etc/sysctl.conf”加载内核参数设置;
-a:打印当前所有可用的内核参数变量和值;
-A:以表格方式打印当前所有可用的内核参数变量和值。
这里我给大家介绍一下开启路由转发的三种方法:
1、
[[email protected] sbin]# sysctl -w net.ipv4.ip_forward=1
net.ipv4.ip_forward = 1
[[email protected] sbin]# sysctl -a|grep ip_for
net.ipv4.ip_forward = 1
2、
echo 1 > /proc/sys/net/ipv4/ip_forward
3、编辑配置文件
[[email protected] ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward=1
你认为结束了吗?没有!不信你查一下:
[[email protected] ~]# sysctl -a | grep ip_for
net.ipv4.ip_forward = 0
然后我们sysctl -p一下:
[[email protected] ~]# sysctl -p
net.ipv4.ip_forward = 1
[[email protected] ~]# sysctl -a | grep ip_for
net.ipv4.ip_forward = 1
这时候才生效!
前两种方法都是临时改变net.ipv4.ip_forward的值,当前生效,第三种是重启后才能生效。因此,如果我们既想让他当前生效,重启后仍然生效,就需要这三种方法结合起来使用!