我正在尝试从 iptables 转换到 nftables,但ct
子命令(timeouts
、setmarks
、status
、等l3proto
,expectations
但错误消息中提到了期望)在具有 nft rpm 版本 1 之前的 Fedora 37 上未被识别。
list 子命令也不会解析.egnft 'list ct timeouts'
不会解析也不会status
或l3proto
.
注意单引号子命令 AFTERnft
很重要。使用ct expectations
也不行。
注意:手册页有零个示例,而 redhat 和 wiki 只有几个。整件事违反了 Unix 一贯的“做正确的一件事”的哲学。
答案1
它似乎阻止了 iptables -m contrack 的任何实际使用。 --ctstate 已建立,相关...
我正在使用nftables
- iptables 的兼容版本,又名iptables-nft
(您运行iptables
命令,但它创建nftables
规则)。如果我运行:
iptables -A example -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
那么生成的 nftables 规则集是:
table ip filter {
chain example {
ct state related,established counter packets 0 bytes 0 accept
}
}
一般来说,使用包是将规则iptables-nft
迁移到语法的好方法。iptables
nftables
如果您愿意,可以从命令行执行此操作:
# nft add chain ip filter example
# nft add rule ip filter example ct state related,established counter accept
我们可以通过运行以下命令来查看这些规则:
# nft list chain ip filter example
table ip filter {
chain example {
ct state established,related counter packets 0 bytes 0 accept
}
}