Sysctl命令用来配置与显示在/proc/sys目录中的内核参数。如果想使参数长期保存,可以通过编辑/etc/sysctl.conf文件来实现。
命令格式
名字 sysctl - 在运行时配置内核参数 语法 sysctl [options] [variable[=value]] [...] sysctl -p [file or regexp] [...] 描述 sysctl 可以在运行时配置内核参数。所有可用参数都位于 /proc/sys/ 目录下。 参数与选项 variable 要读取其值的变量,比如"kernel.ostype"。[提示]"."也可以用"/"代替。 variable=value 要设置变量及相应的值。必须同时使用 -w 选项。 如果值中含有特殊意义的shell字符或引号,那么你最好使用双引号进行界定。 -n, --values 显示变量值的同时不显示变量名 -e, --ignore 忽略不正确的变量名而不报错 -N, --names 仅显示变量名。常用于脚本中。 -q, --quiet 不在 stdout 上显示变量值 -w, --write 如果你想修改变量的值,就必须使用此选项 -p[FILE], --load[=FILE] 从指定文件(默认 /etc/sysctl.conf)中加载已经设置好的一系列变量值。 如果使用 - 作为文件名,那么表示从 stdin 读取配置。 FILE 还可以是一个正则表达式,以匹配多个文件。 -a, --all 显示所有当前的变量名 --deprecated 在 --all 的输出中包含已被反对使用的参数 -b, --binary 打印值时不添加换行标记 --system 从所有下列配置文件中加载系统设置 /run/sysctl.d/*.conf /etc/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf -r, --pattern pattern 仅应用与正则表达式匹配的文件中的设置。 -h, --help 显示帮助信息后退出 -V, --version 显示版本信息后退出
例:
# echo 1 > /proc/sys/net/ipv4/ip_forward
# sysctl -w net.ipv4.ip_forward=1
以上两种方法都可能立即开启路由功能,但如果系统重启,或执行了# service network restart 命令,所设置的值即会丢失,如果想永久保留配置,可以修改/etc/sysctl.conf文件,将 net.ipv4.ip_forward=0改为net.ipv4.ip_forward=1