我该如何禁用 Ubuntu 12.04 中的 nf_conntrack 模块?我正尝试在 Ubuntu 服务器上运行 HAProxy,但 nf_conntrack 在运行时出现问题。我找不到任何有关禁用它的文档。
谢谢
答案1
1) 删除 iptables 中对状态模块的任何引用。因此,没有类似
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
the state module requires the nf_conntrack (ip_conntrack) module
2)删除 /etc/sysconfig/iptables-config 中的以下行(如果存在)
IPTABLES_MODULES="ip_conntrack_netbios_ns"
That module requires ip_conntrack which we are trying to ditch.
3)重新加载不带状态规则的 iptables。
sudo iptables -F
# add your real rules
4) 删除模块。我不得不使用:
sudo modprobe -r xt_NOTRACK nf_conntrack_netbios_ns nf_conntrack_ipv4 xt_state
sudo modprobe -r nf_conntrack
confirm you don't have a reference to /proc/net/nf_conntrack
答案2
nf_conntrack
内置于内核...您无法禁用它:
# lsmod | grep con
nf_conntrack_ipv4 14487 2
nf_defrag_ipv4 12729 1 nf_conntrack_ipv4
nf_conntrack 83275 6 ipt_MASQUERADE,nf_nat,xt_state,nf_nat_ipv4,iptable_nat,nf_conntrack_ipv4
nf_conntrack
是内核用于处理的模块网络通信:
# rmmod nf_conntrack
Error: Module nf_conntrack is in use by: ipt_MASQUERADE nf_nat xt_state nf_nat_ipv4 iptable_nat nf_conntrack_ipv4
如果您需要禁用它,您可以尝试禁用所有依赖它的模块;但您可能会发现这是不可能的。我喜欢联网系统,所以我甚至不会去尝试它;)
答案3
到目前为止列出的答案都是错误的。
首先,如果它被列为模块,那它肯定不是“内置于内核”
创建如下文件将导致其被强制禁用。
# cat /etc/modprobe.d/conntrack.conf
install nf_conntrack /bin/false
答案4
如果不使用带过滤器的 stat 模块并且不使用 nat 表,您可以执行此操作来删除 nf_conntrack。
这是在 Linux 4.14 上的测试
modprobe -r iptable_nat nf_conntrack_ipv4