我有这个规则iptables
iptables -I INPUT 1 -i eth0 -p tcp -s 192.168.178.20 --dport 8201 -j REJECT
我在寻找如何翻译规则教程,但找不到。我如何创建该规则nftables
?或者语法是一样的吗?
答案1
来自 nftables维基百科:
自 2018 年 6 月以来,旧的 xtables/setsockopt 工具被视为遗留工具。不过,nf_tables 内核后端支持使用 iptables/ip6tables/arptables/ebtables 旧语法。 Legacy xtables 工具 wiki 页面对此进行了更详细的描述。
您可以使用iptables-nft
以下方法来实现您的目标:
iptables-nft -I INPUT 1 -i eth0 -p tcp -s 192.168.178.20 --dport 8201 -j REJECT
输入后,iptabels-nft-save
将应用您的规则。您可以通过以下方式确认 nftables 中是否存在此规则:
nft list ruleset
你必须看到这样的东西:
nft list ruleset
table ip filter {
chain INPUT {
type filter hook input priority filter; policy accept;
iifname "eth0" ip saddr 192.168.178.20 tcp dport 8201 counter packets 0 bytes 0 reject
}
}
此外,您可以使用以下语法直接翻译您的规则:
iptables-translate -I INPUT 1 -i eth0 -p tcp -s 192.168.178.20 --dport 8201 -j REJECT
这将为您提供以下输出:
nft insert rule ip filter INPUT iifname "eth0" ip saddr 192.168.178.20 tcp dport 8201 counter reject
另外,您可以保存所有 iptables 规则iptables-save > save.txt
,然后使用它iptables-restore-translate -f save.txt
来获取翻译后的规则。
看看我自己的问题几个月前进行进一步解释。