Skip to main content

sysctl

sysctl

概述

“/proc/sys”目录下存放着大多数内核参数,并且可以在系统运行时进行更改,但是重启机器就会失效。“/etc/sysctl.conf”是一个允许改变正在运行中的Linux系统的接口,它包含一些TCP/IP堆栈和虚拟内存系统的高级选项,修改内核参数永久生效。也就是说,“/proc/sys”下内核文件与配置文件“sysctl.conf”中变量存在着对应关系。

功能测试

以root用户身份登录系统,在终端界面,执行sysctl -a命令,显示所有当前有效的内核参数值。

执行“sysctl -w参数”命令,修改内核参数值,具体的参数名及其作用如下:

■kernel.randomize_va_space:用来设置内存地址随机化的行为。

■net.ipv4.tcp_syncookies:用来防止SyncFlood攻击。

■net.ipv4.tcp_fin_timeout:表示当服务器主动关闭连接时,socket保持在FIN-WAIT-2状态的最大时间。

■net.ipv4.tcp_max_syn_backlog:表示TCP三次握手建立阶段接受SYN请求队列的最大长度。

■net.core.somaxconn:定义系统中每一个端口最大的监听队列的长度。

■kernel.kptr_restrict:是否限制从/proc/kallsym和其他接口显示(打印)内核符号表的地址。

■vm.mmap_min_addr:指定用户进程通过mmap可使用的最小虚拟内存地址,以避免其在低地址空间产生映射导致安全问题。

:::note 对不同的参数值,执行cat /proc/kallsyms命令,可对内核符号地址的显示进行测试。 :::