首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我需要在linux中消除反向路径过滤,将net.ipv4.conf.default.rp_filter设置为0(net.ipv4.conf.default.rp_filter = 2)。

我需要在linux中消除反向路径过滤,将net.ipv4.conf.default.rp_filter设置为0(net.ipv4.conf.default.rp_filter = 2)。
EN

Stack Overflow用户
提问于 2022-01-02 05:02:24
回答 1查看 942关注 0票数 1

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

代码语言:javascript
运行
复制
 root@user:/home/user# sysctl -w net.ipv4.conf.default.rp_filter=0

现在我想知道如何使上述设置处于活动状态,因此禁用反向路径筛选吗?我需要重新启动sysctl或其他东西吗?请告诉我。

我试过像上面那样,但是当我运行sysctl -system

我明白了

代码语言:javascript
运行
复制
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打印为

代码语言:javascript
运行
复制
net.ipv4.conf.default.rp_filter = 2
along with message
EN

回答 1

Stack Overflow用户

发布于 2022-01-02 05:17:22

有些事情你很困惑,

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

其次,当您使用sysctl -w更改任何设置时,-w意味着在“写而不是读”-sense中写入,而不是在“写到文件”-sense中写入。它只会影响当前活动的配置,并且不会被保存到任何地方。

因此,当您运行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-style配置文件之一,然后重新启动或重新加载--system)。

除了defaulteth0 (或您的名字是什么)之外,还有一个all版本;它就像一个通配符,影响到所有现有的变体(例如:eth0eth1eth2)。当您的sysctl配置在启动期间加载时,在解析sysctl配置时,网络设备可能存在,也可能不存在,因此,如果eth0当时存在或不存在,则很容易发生变化。如果它已经存在,那么eth0all变体将产生所需的影响,而default变体则不会。然而,如果设备还不存在,那么它实际上是相反的,而default是一个能够按预期工作的设备。

当然,只需在/etc/sysctl.conf/etc/sysctl.d/*.conf文件中将所有/两者都更改即可。

更新。

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

但是,主要的事情仍然是,您做而不是想同时使用sysctl -wsysctl --system,因为后者取消了前者所做的事情。

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

代码语言:javascript
运行
复制
sysctl -w net.ipv4.conf.default.rp_filter=0 ;
sysctl -w net.ipv4.conf.tun0.rp_filter=0    ;

代码语言:javascript
运行
复制
echo 0 > /proc/sys/net/ipv4/conf/default/rp_filter ;
echo 0 > /proc/sys/net/ipv4/conf/tun0/rp_filter    ;

或者,使用.conf文件;然后可以使用--system重新加载它们。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70553713

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档