在 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 = 0
但sysctl -p
出现了与您相同的错误。如果您确实需要它,则意味着您可能必须考虑更改您正在使用的虚拟化类型,或者您可以尝试联系您的 VPS 提供商并要求他启用此设置。
最好的。
答案2
尝试:
modprobe bridge
lsmod | grep bridge
您不需要将这些模块加载到内核中。
答案3
答案4
此问题已在红帽勘误表:RHBA-2015:1289(可能需要付费墙)。
总之 - 解决方法是将配置从 移动sysctl.conf
到modprobe.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 中默认存在这两者