http://wiki.openvz.org/Setting_up_an_iptables_firewall提到在启动容器之前加载 xt_state 以便在容器中运行 iptables。所以我在主机上运行了 modprobe xt_state 并重新启动了容器,它运行得很好。为了保持这一点,我将 xt_state 添加到了 /etc/modules。
问题是,当我重新启动物理节点时,容器的 iptables 将无法工作,除非我手动重新启动容器,此时它会再次工作。lsmod 显示 xt_state 已加载。有人知道为什么我的容器 iptables 在我手动重新启动容器之前无法工作吗?
答案1
在我看来,在启动 ovz 容器之前模块似乎没有加载。由于您使用的是 /etc/modules,我猜您使用的是 Debian。我在 Debian 上没有 ovz 主机,但我会检查模块是否在启动 ovz 之前真的加载了,甚至可能在 ovz 启动脚本中明确加载它们,以确保万无一失。