sysctl -p /etc/sysctl.conf 返回错误

sysctl -p /etc/sysctl.conf 返回错误

在 VPS 上全新安装 CenotOS 6 后运行sysctl -p /etc/sysctl.conf出现以下错误:

error: "net.bridge.bridge-nf-call-ip6tables" is an unknown key
error: "net.bridge.bridge-nf-call-iptables" is an unknown key
error: "net.bridge.bridge-nf-call-arptables" is an unknown key

解决这个错误的起点是什么?

答案1

您在问题中提到您正在使用 VPS。哪种 VPS?听起来您使用的是 OpenVZ VPS。如果是 OpenVZ,它会在许多容器(如您的容器)之间共享内核,并且您无法更改每个容器的内核配置,只能直接在主机上更改。我实际上构建了一个小型 OpenVZ centos 容器,然后尝试应用内核配置,net.bridge.bridge-nf-call-ip6tables = 0sysctl -p出现了与您相同的错误。如果您确实需要它,则意味着您可能必须考虑更改您正在使用的虚拟化类型,或者您可以尝试联系您的 VPS 提供商并要求他启用此设置。

最好的。

答案2

尝试:

modprobe bridge
lsmod | grep bridge

您不需要将这些模块加载到内核中。

答案3

Red Hat Bugzilla 上有几个关于此问题的错误报告,例如这里这里这里

只需删除这些行或者运行sysctl -e -p就可以了sysctl -p

答案4

此问题已在红帽勘误表:RHBA-2015:1289(可能需要付费墙)。

总之 - 解决方法是将配置从 移动sysctl.confmodprobe.d/dist.conf

删除有问题的行/etc/sysctl.conf

sed -i '/net.bridge.bridge-nf-call-/d' /etc/sysctl.conf

并将行为添加到你的/etc/modprobe.d/dist.conf

cat <<EOF>>/etc/modprobe.d/dist.conf

# Disable netfilter on bridges when the bridge module is loaded
install bridge /sbin/modprobe --ignore-install bridge && /sbin/sysctl -q -w net.bridge.bridge-nf-call-arptables=0 net.bridge.bridge-nf-call-iptables=0 net.bridge.bridge-nf-call-ip6tables=0
EOF

这将在桥接模块加载时正确设置值,或者简单地将您的 rpm 更新为版本

module-init-tools-3.9-25.el6  
initscripts-9.03.53-1.el6

RHEL 6.8 中默认存在这两者

如果有人对这背后的历史感兴趣,它现在这里并附有解释那里

相关内容