![启用 Conntrack 以使 iptables 在 openvz 容器上运行?](https://linux22.com/image/1130423/%E5%90%AF%E7%94%A8%20Conntrack%20%E4%BB%A5%E4%BD%BF%20iptables%20%E5%9C%A8%20openvz%20%E5%AE%B9%E5%99%A8%E4%B8%8A%E8%BF%90%E8%A1%8C%EF%BC%9F.png)
我正在尝试在新购买的 openvz 容器上使用 iptables。一切进展顺利,直到我注意到 apt-get 不起作用,四处查看后,我发现一些教程说需要使用以下命令建立连接:
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
当我运行这个程序时,我收到错误:
iptables: No chain/target/match by that name.
在网上查找后我发现,如果模块在内核中编译,则可能需要加载 modprobe,因此我尝试了以下操作,结果如下:
root:~# modprobe nf_conntrack
modprobe: ERROR: ../libkmod/libkmod.c:508 kmod_lookup_alias_from_builtin_file() could not open builtin file '/lib/modules/2.6.32-042stab105.14/modules.builtin.bin'
modprobe: FATAL: Module nf_conntrack not found.
root:~# modprobe *conntrack*
modprobe: ERROR: ../libkmod/libkmod.c:508 kmod_lookup_alias_from_builtin_file() could not open builtin file '/lib/modules/2.6.32-042stab105.14/modules.builtin.bin'
modprobe: FATAL: Module *conntrack* not found.
对我来说,这意味着 Conntrack 未在内核中编译,但在联系主机支持团队时,他们向我保证它在托管节点中已启用。再次联系他们时,他们建议安装 Conntrack 包。
有人能告诉我为什么我从 apt 中找到的唯一包是 Conntrack-tools,但它看起来似乎没有什么帮助(并且对安装/重启也没有任何影响)。
最后,在询问他们是否可以提供更多帮助之后,他们指出,由于我使用的是非托管服务,因此他们无法提供更多帮助,我必须自己解决问题。
我甚至尝试重新安装操作系统并将其从 14.04 更改为 15.x,以防我从中获得更新的内核版本(尽管我认为这不太可能)。
由于我现在完全不明白为什么这不起作用,我希望这里有人可以提供帮助,要么告诉我试试这个/那个,告诉我我没有错,它不在内核中,或者告诉我一个确认数据包的解决方法,这样我就可以不使用 Conntrack。
感谢您提供的任何帮助/建议。
答案1
我认为根本问题在于 openz。以下是引自这里
OpenVZ 服务器与主机共享内核,因此您无法加载任何内核模块,也无法执行其他任务。