如何在不重新编译内核的情况下禁用 CentOS 5.3 中的 nf_conntrack 内核模块

use*_*277 10 linux iptables centos kernel-modules

我正在运行 CentOS 5.3 并希望禁用 nf_conntrack 模块以提高 haproxy 的网络性能。我正在使用一些简单的规则运行 iptables。我真的不需要连接跟踪。

我在 Rackspace 云服务器上运行,所以我无法运行自定义内核。我试过运行 modprobe,但这不起作用。

[mmarano@w1 w1]$ sudo modprobe -n -r nf_conntrack
FATAL: Module nf_conntrack is in use.

[mmarano@w1 w1]$ uname -a
Linux w1.somewhere.com 2.6.24-23-xen #1 SMP Mon Jan 26 03:09:12 UTC 2009 x86_64 x86_64 x86_64 GNU/Linux
[mmarano@w1 w1]$ cat /etc/redhat-release 
CentOS release 5.3 (Final)
Run Code Online (Sandbox Code Playgroud)

我想在撕掉它之后继续运行 iptables,所以我不能完全抛弃所有的 netfilters。有人有什么想法吗?

use*_*277 16

  1. 删除对 iptables 中 state 模块的任何引用。所以,没有像这样的规则

    -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

    state 模块需要 nf_conntrack (ip_conntrack) 模块

  2. 删除 /etc/sysconfig/iptables-config 中的以下行(如果存在)

    IPTABLES_MODULES="ip_conntrack_netbios_ns"

    该模块需要我们试图放弃的 ip_conntrack。

  3. 在没有您的州规则的情况下重新加载 iptables。

    须藤 iptables -F

    # 添加你的真实规则

  4. 放下模块。我不得不使用:

    须藤 modprobe -r xt_NOTRACK nf_conntrack_netbios_ns nf_conntrack_ipv4 xt_state

    须藤 modprobe -r nf_conntrack

  5. 确认您没有对 /proc/net/nf_conntrack 的引用


Den*_*son 5

  • 将模块添加到/etc/modprobe.d/blacklist.conf?

  • 你有没有尝试过:

    rmmod -f modulename
    
    Run Code Online (Sandbox Code Playgroud)

    虽然:

           -f --force
              此选项可能极其危险:除非
              CONFIG_MODULE_FORCE_UNLOAD 是在编译内核时设置的。
              使用此选项,您可以删除正在使用的模块,
              或设计为不可移除或已标记为
              不安全(请参阅 lsmod(8))。