Linux如何开启路由转发功能

华子目录

  • 查看
  • 临时开启
    • 方法1
    • 方法2
  • 永久开启
  • `sysctl`命令
      • 一、基本用法
      • 二、常用选项
      • 三、使用示例
      • 四、内核变量名称规则
      • 五、注意事项

查看

  • 查看转发功能是否开启
[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  912 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命令的版本信息。

三、使用示例

  1. 查询所有内核参数

    sysctl -a
    

    这将列出所有内核参数的名称和当前值。

  2. 查询特定内核参数的值

    sysctl -n net.ipv4.ip_forward
    

    这将仅显示net.ipv4.ip_forward参数的当前值。

  3. 修改内核参数的值

    sysctl -w vm.swappiness=60
    

    这将临时将vm.swappiness参数的值设置为60。注意,这种修改在重启后不会保留。

  4. 从配置文件加载内核参数

    如果希望永久修改内核参数,可以编辑/etc/sysctl.conf文件,并添加或修改相应的参数。然后,使用以下命令重新加载配置文件,使修改生效:

    sysctl -p
    

四、内核变量名称规则

Linux内核中的变量全部以文本形式存放在/proc/sys目录下。这些文件通过目录结构表示不同的参数类别和子类别,文件中存放的值即为变量的值。例如,vm.swappiness参数对应的文件是/proc/sys/vm/swappiness

五、注意事项

  • 修改内核参数时,应谨慎操作,因为不当的参数设置可能会导致系统不稳定或性能下降。
  • 临时修改的内核参数在重启后不会保留,如果需要永久修改,请编辑/etc/sysctl.conf文件。
  • 并非所有内核参数都可以被sysctl命令修改,有些参数可能受到系统安全策略或硬件限制的限制。

你可能感兴趣的:(linux,运维,服务器,网络)