官方 nft wiki 页面会计示例查看‘nexthop’
nft add rule filter postrouting meter acct { rt nexthop timeout 600s counter }
nft add rule ip6 filter postrouting meter acct { rt nexthop timeout 600s counter}
我将该示例改编为:
sudo nft'添加规则 inetfirewalld nat__POSTROUTING_RULES_log meter acct {下一跳时间 600 秒计数器}'
你好,
我上面引用的 wiki 链接在命令行指向意外'}'。有什么想法吗?
感谢您的支持。
答案1
IIRC,在命令中使用括号的情况下,您需要对其进行转义,例如nft 'add chain nat prerouting { type nat hook prerouting priority -100; }'
,因此该示例可能确实是错误的
编辑:看起来括号不需要转义,只有分号。
编辑2:根据错误消息(Error: cannot determine ip protocol version, use "ip nexthop" or "ip6 nexthop" instead
)判断,在我看来,在 inet 表的情况下,您必须在操作或匹配块中指定 ip 或 ipv6 proto:
nft 'add rule inet firewalld nat__POSTROUTING_RULES_log meter acct {rt ip nexthop timeout 600s counter}
或者在匹配块中
nft 'add rule inet firewalld nat__POSTROUTING_RULES_log ip saddr 192.168.2.0/24 meter acct {rt nexthop timeout 600s counter}'