Linux命令--sysctl

2016-12-10 08:52:19 6571

sysctl命令被用于在内核运行时动态地修改内核的运行参数,可用的内核参数在目录/proc/sys中。它包含一些TCP/ip堆栈和虚拟内存系统的高级选项。

语法:

sysctl (选项)(参数)


选项:

-n:打印值时不打印关键字; 

-e:忽略未知关键字错误; 

-N:仅打印名称; 

-w:当改变sysctl设置时使用此项; 

-p:从配置文件“/etc/sysctl.conf”加载内核参数设置; 

-a:打印当前所有可用的内核参数变量和值; 

-A:以表格方式打印当前所有可用的内核参数变量和值。


参数:

变量=值:设置内核参数对应的变量值


实例

查看所有可读变量:

sysctl -a

读一个指定的变量,例如vm.swappiness:

[root@wangerxiao proc]# sysctl  vm.swappiness 
vm.swappiness = 60

要设定一个指定的变量,直接用variable=value这样的语法:


[root@wangerxiao proc]# sysctl  vm.swappiness=60
vm.swappiness = 60


可以使用sysctl修改系统变量,也可以通过编辑sysctl.conf文件来修改系统变量。sysctl.conf看起来很像rc.conf。它用variable=value的形式来设定值。指定的值在系统进入多用户模式之后被设定。并不是所有的变量都可以在这个模式下设定。
sysctl变量的设置通常是字符串、数字或者布尔型。(布尔型用 1 来表示'yes',用 0 来表示'no')。


sysctl -w kernel.sysrq=0 

sysctl -w kernel.core_uses_pid=1 

sysctl -w net.ipv4.conf.default.accept_redirects=0 

sysctl -w net.ipv4.conf.default.accept_source_route=0 

sysctl -w net.ipv4.conf.default.rp_filter=1 

sysctl -w net.ipv4.tcp_syncookies=1

sysctl -w net.ipv4.tcp_max_syn_backlog=2048 

sysctl -w net.ipv4.tcp_fin_timeout=30 

sysctl -w net.ipv4.tcp_synack_retries=2 

sysctl -w net.ipv4.tcp_keepalive_time=3600 

sysctl -w net.ipv4.tcp_window_scaling=1 

sysctl -w net.ipv4.tcp_sack=1


配置sysctl

编辑此文?:/etc/sysctl.conf

如果该文件为空,则输入以下内容,否则请根据情况自己做调整:


如果希望屏蔽别人ping你的主机,则加入以下代码:

#Disable ping requests 

net.ipv4.icmp_echo_ignore_all=1

编辑完成后,执行以下命令使配置生效:

sysctl -p 

sysctl -w net.ipv4.route.flush=1





提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: