查看
- 查看转发功能是否开启
[root@node1 ~]# cat /proc/sys/net/ipv4/ip_forward
0 #0表示没有开启
[root@node1 ~]# ll /proc/sys/net/ipv4/ip_forward
-rw-r--r-- 1 root root 0 9月 12 10:04 /proc/sys/net/ipv4/ip_forward
临时开启
- 重启无效
方法1
[root@node1 ~]# echo 1 > /proc/sys/net/ipv4/ip_forward
[root@node1 ~]# cat /proc/sys/net/ipv4/ip_forward
1
方法2
[root@node1 ~]# sysctl -w net.ipv4.ip_forward=1
net.ipv4.ip_forward = 1
[root@node1 ~]# cat /proc/sys/net/ipv4/ip_forward
1
永久开启
- 修改配置文件
/etc/sysctl.conf
[root@node1 ~]# vim /etc/sysctl.conf
# sysctl settings are defined through files in
# /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
#
# Vendors settings live in /usr/lib/sysctl.d/.
# To override a whole file, create a new file with the same in
# /etc/sysctl.d/ and put new settings there. To override
# only specific settings, add a file with a lexically later
# name in /etc/sysctl.d/ and put new settings there.
#
# For more information, see sysctl.conf(5) and sysctl.d(5).
net.ipv4.ip_forward=1
[root@node1 ~]# sysctl -p
net.ipv4.ip_forward = 1
[root@rhel9 ~]# sysctl -a | grep ip_for
net.ipv4.ip_forward = 1
net.ipv4.ip_forward_update_priority = 1
net.ipv4.ip_forward_use_pmtu = 0
sysctl
命令
sysctl
命令是Linux系统
中用于在运行时修改内核参数
的重要工具,它允许用户查询和修改内核
的各种参数
,以调整系统性能和行为
。以下是sysctl
命令的详细解析:
一、基本用法
sysctl
命令的基本语法如下:
sysctl [options] [variable[=value] ...]
其中,options
是可选的命令行选项,用于控制sysctl
的行为;variable[=value]
指定了要查询或修改的内核参数及其值(如果需要修改的话)。
二、常用选项
-a
:显示所有内核参数及其当前值
。-n
:仅显示参数的值,而不显示参数名
。-p
:从指定的文件
中读取内核参数值
,并应用到系统
中。如果不指定文件
,则默认从/etc/sysctl.conf
中读取。-w
:临时
将值写入指定的内核参数变量,立即生效
,但重启后失效
。-e
:忽略无效的参数名,防止错误输出。-q
:静默模式,不显示任何输出。--help
:显示帮助信息。--version
:显示sysctl
命令的版本信息。
三、使用示例
-
查询所有内核参数
sysctl -a
这将列出所有内核参数的名称和当前值。
-
查询特定内核参数的值
sysctl -n net.ipv4.ip_forward
这将仅显示
net.ipv4.ip_forward
参数的当前值。 -
修改内核参数的值
sysctl -w vm.swappiness=60
这将临时将
vm.swappiness
参数的值设置为60。注意,这种修改在重启后不会保留。 -
从配置文件加载内核参数
如果希望永久修改内核参数,可以编辑
/etc/sysctl.conf
文件,并添加或修改相应的参数。然后,使用以下命令重新加载配置文件,使修改生效:sysctl -p
四、内核变量名称规则
Linux内核
中的变量
全部以文本形式
存放在/proc/sys
目录下。这些文件通过目录结构
表示不同的参数类别和子类别,文件中存放的值即为变量的值。例如,vm.swappiness
参数对应的文件是/proc/sys/vm/swappiness
。
五、注意事项
- 修改内核参数时,应谨慎操作,因为不当的参数设置可能会导致系统不稳定或性能下降。
- 临时修改的内核参数在重启后不会保留,如果需要永久修改,请编辑
/etc/sysctl.conf
文件。 - 并非所有内核参数都可以被
sysctl
命令修改,有些参数可能受到系统安全策略或硬件限制的限制。