我曾经有一个 iptables 规则允许wireguard流量通过:
来自费姆:
proto udp dport 51820 mod owner ! uid-owner 0-4294967294 mod conntrack ctstate (NEW) ACCEPT;
使用翻译工具,这变成了:
udp dport 51820 meta skuid != 0-4294967294 ct state new accept
然而,当我查看计数器和记录的数据包时,这条规则并未受到影响。
如何使用 nftables 做到这一点?
答案1
如果你的意思是如何做这样的事情: https://superuser.com/questions/1579741/iptables-rule-for-filtering-wireguard-packets 在 nftables 中,您无法像在 iptables 中那样添加排除整个 32 位范围的规则。
在 nftables 中你需要两个规则。第一个删除整个 32 位 uid 范围,第二个接受端口 51820(因为没有 uid)。
chain wireguard_enable {
udp dport 51820 meta skuid { 0-4294967294 } ct state new drop
udp dport 51820 ct state new accept
}