AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 28215
In Process
user3215
user3215
Asked: 2011-02-27 09:42:36 +0800 CST2011-02-27 09:42:36 +0800 CST 2011-02-27 09:42:36 +0800 CST

如何修复 iptables 错误消息“无法初始化表‘过滤器’”?

  • 772

当我尝试在我的一台 Rackspace 云服务器上使用 iptables 命令时,我收到以下错误。

在尝试应用 iptables 规则时iptables-apply -t 120 /etc/iptables.rules,iptables-restore < /etc/iptables.rules我得到了下一个错误:

FATAL: Could not load /lib/modules/2.6.32.4-rscloud/modules.dep: No such file or directory
iptables-restore v1.4.4: iptables-restore: unable to initialize table 'filter'

Error occurred at line: 2
Try `iptables-restore -h' or 'iptables-restore --help' for more information.

我该如何解决?

编辑 1:

unname -r:

2.6.32.4-rscloud

modprobe /lib/modules/$(uname -r)/kernel/net/ipv4/netfilter/iptable_filter.ko :

FATAL: Could not load /lib/modules/2.6.32.4-rscloud/modules.dep: No such file or directory

ls /lib/modules/$(uname -r)/kernel/net/ipv4/netfilter/:

ls: cannot access /lib/modules/2.6.32.4-rscloud/kernel/net/ipv4/netfilter/: No such file or directory

编辑 2:

apt-cache 搜索 linux-image- * :

alsa-base - ALSA driver configuration files
linux-image-2.6.31-14-generic - Linux kernel image for version 2.6.31 on x86/x86_64
linux-image-2.6.31-14-server - Linux kernel image for version 2.6.31 on x86_64
linux-image-2.6.31-14-virtual - Linux kernel image for version 2.6.31 on x86/x86_64
linux-image-2.6.31-302-ec2 - Linux kernel image for version 2.6.31 on x86/x86_64
linux-image-2.6.31-9-rt - Linux kernel image for version 2.6.31 on Ingo Molnar's full real time preemption patch
linux-image-rt - Rt Linux kernel image
rt2400-source - source for rt2400 wireless network driver
rt2500-source - source for rt2500 wireless network driver
rt2570-source - source for rt2570 wireless network driver
linux-image - Generic Linux kernel image.
linux-image-2.6.31-15-generic - Linux kernel image for version 2.6.31 on x86/x86_64
linux-image-2.6.31-15-server - Linux kernel image for version 2.6.31 on x86_64
linux-image-2.6.31-15-virtual - Linux kernel image for version 2.6.31 on x86/x86_64
linux-image-2.6.31-16-generic - Linux kernel image for version 2.6.31 on x86/x86_64
linux-image-2.6.31-16-server - Linux kernel image for version 2.6.31 on x86_64
linux-image-2.6.31-16-virtual - Linux kernel image for version 2.6.31 on x86/x86_64
linux-image-2.6.31-17-generic - Linux kernel image for version 2.6.31 on x86/x86_64
linux-image-2.6.31-17-server - Linux kernel image for version 2.6.31 on x86_64
linux-image-2.6.31-17-virtual - Linux kernel image for version 2.6.31 on x86/x86_64
linux-image-2.6.31-19-generic - Linux kernel image for version 2.6.31 on x86/x86_64
linux-image-2.6.31-19-server - Linux kernel image for version 2.6.31 on x86_64
linux-image-2.6.31-19-virtual - Linux kernel image for version 2.6.31 on x86/x86_64
linux-image-2.6.31-20-generic - Linux kernel image for version 2.6.31 on x86/x86_64
linux-image-2.6.31-20-server - Linux kernel image for version 2.6.31 on x86_64
linux-image-2.6.31-20-virtual - Linux kernel image for version 2.6.31 on x86/x86_64
linux-image-2.6.31-21-generic - Linux kernel image for version 2.6.31 on x86/x86_64
linux-image-2.6.31-21-server - Linux kernel image for version 2.6.31 on x86_64
linux-image-2.6.31-21-virtual - Linux kernel image for version 2.6.31 on x86/x86_64
linux-image-2.6.31-304-ec2 - Linux kernel image for version 2.6.31 on x86/x86_64
linux-image-2.6.31-305-ec2 - Linux kernel image for version 2.6.31 on x86/x86_64
linux-image-2.6.31-306-ec2 - Linux kernel image for version 2.6.31 on x86/x86_64
linux-image-ec2 - Linux kernel image for ec2 machines
linux-image-generic - Generic Linux kernel image
linux-image-server - Linux kernel image on Server Equipment.
linux-image-virtual - Linux kernel image for virtual machines
linux-image-2.6.31-22-generic - Linux kernel image for version 2.6.31 on x86/x86_64
linux-image-2.6.31-22-server - Linux kernel image for version 2.6.31 on x86_64
linux-image-2.6.31-22-virtual - Linux kernel image for version 2.6.31 on x86/x86_64
linux-image-2.6.31-307-ec2 - Linux kernel image for version 2.6.31 on x86/x86_64
server
  • 8 8 个回答
  • 66075 Views

8 个回答

  • Voted
  1. Lekensteyn
    2011-02-27T10:01:27+08:002011-02-27T10:01:27+08:00

    您需要加载内核模块以启用过滤器表。以 root 身份运行下一个命令:

    modprobe /lib/modules/$(uname -r)/kernel/net/ipv4/netfilter/iptable_filter.ko
    

    (uname -r给出当前内核版本)


    有关 iptables 可用模块的列表,请列出包含 iptables 模块的目录:

    ls /lib/modules/$(uname -r)/kernel/net/ipv4/netfilter/
    

    要获取有关所有模块的信息:

    modinfo /lib/modules/$(uname -r)/kernel/net/ipv4/netfilter/*.ko
    
    • 7
  2. Anona112
    2018-03-09T01:25:31+08:002018-03-09T01:25:31+08:00

    事实证明,这只是一个缺失的sudo!

    sudo iptables-restore < /etc/iptables.rules

    代替

    iptables-restore < /etc/iptables.rules

    • 5
  3. codercake
    2011-07-12T15:35:11+08:002011-07-12T15:35:11+08:00

    我还使用带有内核 2.6.35.4-rscloud 的 Rackspace Cloud。我有多个使用此内核的实例,并且 iptables 在某些实例上运行良好,而在其他几个实例上我也遇到了与您相同的问题。

    因此我相信这个内核确实有它需要的对 iptables 的支持,而问题是由其他原因引起的(我自己还在寻找解决方案)

    编辑:我通过将工作服务器scp -r复制到非工作服务器解决了我的问题。 /lib/modules/2.6.35.4-rscloudiptables

    出于某种原因,仅包含以前uname -r的版本,例如.2.6.35.4-rscloudls /lib/modules//lib/modules/2.6.31-302-rs

    我不确定为什么这会不同步,或者如果您没有可以从中复制这些文件的工作服务器该怎么办,但希望这会为您指明正确的方向。

    我不需要重新编译内核或类似的东西。

    • 2
  4. Pierre
    2011-03-04T06:08:12+08:002011-03-04T06:08:12+08:00

    您使用的 linux 内核可能没有使用可加载模块支持构建。确定内核是否支持模块的一个好方法是检查文件是否存在/proc/modules。如果它在那里但你没有/lib/modules/$(uname -r)/modules.dep文件,这意味着你的内核支持模块但它们没有正确安装。看起来您的内核是由您的提供商 Rackspace 构建的,您应该向他们询问内核配置。

    • 1
  5. Francis Turner
    2011-07-12T22:15:04+08:002011-07-12T22:15:04+08:00

    获得适当 iptables 支持的另一种方法是安装 xtables-addons,尽管您需要有很多工具才能使其正常工作(模块助手、构建必要等),但优点是最终您拥有使用 ipset 的 ipset 以及 iptables 和(恕我直言)对于大型复杂规则集要好得多

    apt-get install xtables-addons-common
    
    apt-get install xtables-addons-source
    
    m-a prepare
    
    m-a build xtables-addons
    
    m-a install xtables-addons
    
    • 1
  6. David Michael Gregg
    2012-02-28T18:33:59+08:002012-02-28T18:33:59+08:00

    我遇到了同样的错误,但我在一篇不相关的文章(http://articles.slicehost.com/2007/11/6/ubuntu-gutsy-setup-page-1)中发现了一条杂散的评论,该评论确定了愚蠢的分子错误在我的情况下是错误的。问题是我iptables.rules使用文本编辑器 (Notepad++) 创建了文件,但由于无法识别文件类型,Notepad++ 默认使用 Windows行尾和文件尾字符。iptables拒绝这些字符,需要它们的 Unix 等价物,因此在第一次出现时抛出错误:行尾——给人一种语法*filter有问题的错误印象。*filter啊,与字符编码相关的错误永远存在的乐趣!

    两种解决方案

    • 我上面提到的评论者在文件上安装了 ( sudo aptitude install tofrodos) 并运行了 ( fromdos /etc/iptables.rules) 一个小转换实用程序。

    - -或者 - -

    • 我所做的是,在 Notepad++ 中,Edit> EOL Conversion> UNIX Format,然后Save重新上传文件。这处理了行尾字符,但没有处理文件结尾字符(尽管人们可能会期望)。所以一旦我把它上传到服务器,我打开它nano并在文件末尾创建一个换行符并保存。然后一切都很完美。

    也有可能只打开文件nano并重新保存,而不实际手动更改字符,就可以解决问题,但我还没有测试过。

    • 1
  7. William Turrell
    2018-05-03T14:11:36+08:002018-05-03T14:11:36+08:00

    如果您安装了新版本的内核但尚未重新启动,您也可能会收到 iptables 错误(如果您正在使用例如 Ansible playbook 构建新服务器,这是很常见的,并且较早的任务是一个apt-get 升级)

    请参阅https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=829269#41回复:“模块中的未知符号或未知参数”错误。

    • 1
  8. M12
    2019-12-14T13:06:46+08:002019-12-14T13:06:46+08:00

    Lekensteyn的答案几乎是但不完全是正确答案。错误在于该modprobe命令接受模块名称作为其参数(如果在其搜索路径中找到具有该文件名的匹配模块,iptables_filter或iptables-filter;modprobe将自动将破折号转换为下划线),而不是内核对象(.ko)文件的路径写在那个答案中。

    在加载了 IPv4 NetFilter 表但未加载 IPv6 表的系统上,我遇到了与此问题非常相似的问题。这导致iptables-restore成功加载我的防火墙规则,但ip6tables-restore给出了“无法初始化表'过滤器'”错误。解决方案只是在恢复 iptables 防火墙规则集之前以用户身份或 with运行以下modprobe命令:rootsudo

    modprobe ip6table_filter
    

    我在我的一个 CI/CD 管道中的 Travis CI 虚拟环境中体验到了这一点。希望这可以帮助处于类似情况的人。

    • 0

相关问题

  • 使用 dpkg 手动安装软件包是否会阻止未来的升级路径?

  • 如何从命令行刻录双层 dvd iso

  • 如果在服务器机器上运行 Ubuntu 桌面版,性能损失是多少?

  • 将桌面版剥离为服务器版的最简单方法是什么?

  • 如何与无头服务器进行图形交互?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    我需要什么命令来解压缩/提取 .tar.gz 文件?

    • 8 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Marko Smith

    如何使用命令行将用户添加为新的 sudoer?

    • 7 个回答
  • Marko Smith

    更改文件夹权限和所有权

    • 9 个回答
  • Martin Hope
    EmmyS 我需要什么命令来解压缩/提取 .tar.gz 文件? 2011-02-09 14:50:41 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve