运行以下命令后:
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