iptables - “无法打开 moddep 文件”

iptables - “无法打开 moddep 文件”

更新内核不是一个选项,我在尝试运行 iptables 时收到以下消息

root@mail:/etc/postfix# iptables -L
    libkmod: ERROR ../libkmod/libkmod.c:554 kmod_search_moddep: could not open moddep file '/lib/modules/2.6.32-5-xen-amd64/modules.dep.bin'
    iptables v1.4.14: can't initialize iptables table `filter': Table does not exist (do you need to insmod?)
    Perhaps iptables or your kernel needs to be upgraded.

更新:

跑步后

root@mail:/home/admin#  sudo depmod

我明白了

ERROR: could not open directory /lib/modules/2.6.32-5-xen-amd64: No such file or directory
FATAL: could not search modules: No such file or directory

之后

root@mail:/home/admin#  sudo modinfo ip_tables

我明白了

libkmod: ERROR ../libkmod/libkmod.c:554 kmod_search_moddep: could not open moddep file '/lib/modules/2.6.32-5-xen-amd64/modules.dep.bin'
ERROR: Module alias ip_tables not found.

看来内核更新是必须的。

答案1

您最近是否升级了此安装的内核?通常 iptables 内置于内核中,并且默认情况下不是外部模块(通常 - 我确信在很多情况下情况并非如此)。

尝试使用 depmod 命令重新计算模块加载顺序;它偶尔会修复此问题:

 sudo depmod

运行 depmod 后需要重新启动才能生效。如果您收到错误,请用它更新您的问题。

然后看看是否ip_tables.ko存在:

 sudo modinfo ip_tables

如果未加载,请尝试加载:

 sudo modprobe ip_tables

最后,作为一个潜在有价值的数据点,请查看此命令使用了哪些与 iptables 相关的内核模块,并用详细信息更新您的问题。

 cat /proc/net/ip_tables_matches

如果没有找到,请尝试查看该文件是否在系统上:

 find / -name "ip_tables.ko"

如果不是,我相信您至少必须为您的内核版本重建(或从软件包中重新安装)内核模块。

相关内容