如何从 iptables 规则中正确将 IP 地址添加到 ipset?或者根本就不可能?
这条规则对我来说不起作用:-A INPUT -m recent --name IP_LIST --set
IP_LIST 的类型是 hash:net IP_LIST 是使用命令创建的ipset create IP_LIST hash:net
但检查同一个列表中的 IP 以将其删除,则有效:
-A INPUT -m set --match-set IP_LIST src -j DROP
答案1
所以,因为这-j SET
就是你想要的:
在 iptables 中,-m set
当您想要将数据包与 ipset(-m
代表匹配)进行比较时使用,它可以在单个规则中多次使用。
-j SET
另一方面,用于将条目插入到 ipset 中,它是一个非终止目标,意味着规则遍历将继续。
您应该阅读 iptables 手册页来获得预期语法的完整解释。
答案2
正如 @Olipro 和 @0x534B41 所说,我不能使用-m recent
。因此,要从 iptables 规则向 ipset 添加条目,您应该使用-j SET --add-set IPSET_LIST src
答案3
Iptables 文档表明recent
模块与 无关ipset
。相反,它创建仅由其自身使用的动态列表。模块使用的列表recent
通过 procfs 公开/proc/net/xt_recent/