首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Iptables v1.4.14:无法初始化iptables表` `nat':表不存在(需要insmod吗?)

Iptables v1.4.14:无法初始化iptables表` `nat':表不存在(需要insmod吗?)
EN

Stack Overflow用户
提问于 2014-02-24 17:25:10
回答 11查看 135.1K关注 0票数 42

我正在尝试设置iptable规则,当我使用iptable时,我得到以下错误消息:

代码语言:javascript
复制
iptables v1.4.14: can't initialize iptables table `nat': Table does not exist (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded.

我使用的是:

代码语言:javascript
复制
cat /etc/debian_version 
7.4

uname -a
Linux myserver 2.6.32-22-pve #1 SMP Mon Jul 15 08:36:46 CEST 2013 x86_64 GNU/Linux

uname -r
2.6.32-22-pve

这是由服务提供商托管的虚拟服务器。

我能做些什么来解决这个问题?

EN

回答 11

Stack Overflow用户

回答已采纳

发布于 2014-04-05 12:42:03

我也遇到了同样的问题,下面这个方法起作用了:

代码语言:javascript
复制
sudo modprobe ip_tables
sudo echo 'ip_tables' >> /etc/modules

http://www.howtoforge.com/forums/showthread.php?t=3196

票数 20
EN

Stack Overflow用户

发布于 2016-11-03 18:14:21

我在Debian8上也遇到了同样的问题,我通过重启系统解决了这个问题。如果更新了内核映像,并且此后未重新启动系统,则可能会出现此错误。

票数 26
EN

Stack Overflow用户

发布于 2016-01-06 22:22:52

如果你看到这个错误消息,并且你没有使用某种受限的基于容器的主机(例如OpenVZ),那么问题可能是内核缺少nat模块。要检查运行:

代码语言:javascript
复制
modinfo iptable_nat

它应该打印出模块的位置,如果它打印一个错误,那么您就知道这就是问题所在。还有像nf_nat这样的依赖模块可能会丢失,所以如果iptable_nat模块存在但失败了,您将不得不更深入地挖掘。如果它丢失了,您将需要获得另一个内核和模块,或者如果您正在使用自己的内核配置,请确保内核配置包含CONFIG_IP_NF_NAT=m (用于IPv4 NAT)。

对于信息,相关的内核模块通常位于以下位置之一:

代码语言:javascript
复制
ls /lib/modules/`uname -r`/kernel/net/netfilter/
ls /lib/modules/`uname -r`/kernel/net/ipv4/netfilter/

如果你运行的是IPv6,也可以看看这里:

代码语言:javascript
复制
ls /lib/modules/`uname -r`/kernel/net/ipv6/netfilter/
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21983554

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档