iptables 错误:没有该名称的链/目标/匹配?

iptables 错误:没有该名称的链/目标/匹配?

运行以下命令后:

iptables -t nat -I POSTROUTING -m state --state NEW -p tcp --dport 25 -o eth0 -m statistic --mode nth --every 5 -j SNAT --to-source 173.224.222.45

我收到以下错误:

iptables: No chain/target/match by that name.

我正在运行此命令来更改 postfix 的传出 smtp 连接的 ip。此“173.224.222.45”是公共 ip。我进行此设置是为了测试目的,所以不要责怪我发送垃圾邮件。我的系统是 centos5 32 位,使用带有 postfix 作为 MTA 的邮件服务器。您可以查看我学会这样做的一篇文章http://www.kutukupret.com/2009/11/30/postfix-smtp-outgoing-ip-rotator-using-iptables。请帮助我摆脱这一困境。

答案1

听起来好像xt_statistic模块未启用/加载到正在运行的内核中。使用以下命令进行检查:

$ grep -i statistic /boot/config-$(uname -r)

如果结果是# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set,则重新编译内核以启用它:

[*] Networking support  --->
  Networking options  --->
    [*] Network packet filtering framework (Netfilter)  --->
      Core Netfilter Configuration  --->
        <*>   "statistic" match support

如果得到CONFIG_NETFILTER_XT_MATCH_STATISTIC=m,请通过运行以下命令将其加载到内核中:

# modprobe xt_statistic

相关内容