我需要在linux中禁用反向路径过滤,才能将net.ipv4.conf.default.rp_filter设置为0(ne



我需要在Linux中禁用反向路径过滤。我试过像这个

 root@user:/home/user# sysctl -w net.ipv4.conf.default.rp_filter=0

现在我想知道如何激活上面的设置,这样反向路径过滤就被禁用了。我需要重新启动sysctl或其他什么吗,有人能告诉这个吗

我试过上面的方法,但当我运行sysctl -system

我得到这个

net.ipv4.conf.default.rp_filter = 2
sysctl: setting key "net.ipv4.conf.all.rp_filter": Invalid argument

为什么这个无效的参数消息和我尝试将其更改为net.ipv4.conf.default.rp_filter = 0,但它仍然将sysctl -system打印为

net.ipv4.conf.default.rp_filter = 2
along with message

首先,重新加载配置文件是sysctl --system而不是sysctl -system;但这可能只是问题中的一个拼写错误。

其次,当您使用sysctl -w更改任何设置时,-w意味着在"写入而不是读出">意义上,而不是在";写入文件">-感觉。它只会影响当前活动的配置,不会保存在任何位置。

因此,当您运行sysctl --system来重新加载系统配置文件时,您可以撤消先前的sysctl -w操作。


第三,您可能试图更改系统上的有效rp_filter值,但net.ipv4.conf.default.rp_filter密钥的default部分意味着它会影响在之后创建的任何未命名网络设备的默认值。

据推测,您的网络设备已经存在,这意味着它已经有了自己的个人rp_filter设置,并且不再关心default。如果您的网络设备名为eth0,那么net.ipv4.conf.eth0.rp_filter很可能是您实际想要更改的值(使用sysctl -w,将其写入/etc/sysctl.d/*.conf样式的配置文件之一,然后重新启动或重新加载--system(。

除了CCD_ 20和CCD_,还有CCD_ 22版本;这就像一个影响所有现有变体(例如:eth0eth1eth2(的通配符。当您的sysctl配置在引导过程中加载时,网络设备可能在解析sysctl时存在,也可能不存在,因此,如果eth0当时存在或不存在,网络设备很容易发生变化。如果它确实已经存在,那么eth0all变体将产生所需的影响,而default变体则不会。然而,如果该设备还不存在,那么它实际上是相反的,default就是一个可以按预期工作的设备。

可以肯定的是,只需全部/全部更改即可;在您的/etc/sysctl.conf/etc/sysctl.d/*.conf文件中。


更新。

好吧,既然您使用的是稍后创建的虚拟网络设备tun0,那么使用default密钥实际上并不是一个错误。

不过,最重要的是,您确实不想同时使用sysctl -wsysctl --system,因为后者取消了前者的功能。

听起来你要么想要这样的东西:

sysctl -w net.ipv4.conf.default.rp_filter=0 ;
sysctl -w net.ipv4.conf.tun0.rp_filter=0    ;

echo 0 > /proc/sys/net/ipv4/conf/default/rp_filter ;
echo 0 > /proc/sys/net/ipv4/conf/tun0/rp_filter    ;

或者,使用.conf文件;则可以使用CCD_ 38重新加载它们。

最新更新