![nftables 拒绝添加规则“错误:无法处理规则:没有这样的文件或目录”](https://linux22.com/image/199747/nftables%20%E6%8B%92%E7%BB%9D%E6%B7%BB%E5%8A%A0%E8%A7%84%E5%88%99%E2%80%9C%E9%94%99%E8%AF%AF%EF%BC%9A%E6%97%A0%E6%B3%95%E5%A4%84%E7%90%86%E8%A7%84%E5%88%99%EF%BC%9A%E6%B2%A1%E6%9C%89%E8%BF%99%E6%A0%B7%E7%9A%84%E6%96%87%E4%BB%B6%E6%88%96%E7%9B%AE%E5%BD%95%E2%80%9D.png)
问题:
当尝试添加 nft 规则时,我不断收到“错误:无法处理规则:没有这样的文件或目录”
命令示例:
nft add rule netdev filter input ip daddr 10.10.10.10 counter
故障排除:
- 已确认的“netdev 过滤器”如所列表格所示
nft list tables
- 确保 nftables.service 正在运行。
- 单元文件显示 /etc/nftables.conf 正在使用。
- 以 root 身份运行所有命令。
- 这个帖子建议设置
CONFIG_NF_TABLES_INET=y
.我如何以及如何做到这一点?尚不清楚。
系统
- Ubuntu 20.04.2 LTS
- 内核 5.4.0-91-通用
不知道如何解决这个问题,错误非常模糊。我缺少什么?为什么我无法添加 nft 规则?
答案1
地址netdev
族没有input
钩子,但有ingress
钩子。您的命令可能仍然有效,但前提是您创建了一个名为input
first的基本链,例如
nft add chain netdev filter input \{ type filter hook ingress device "eth0" priority filter; policy accept; \}
在这里,第一个filter
是姓名预先存在的netdev filter
表。第二filter
指定类型链的第三个filter
是正常的标准名称优先事项用于过滤器链。
设置的建议CONFIG_NF_TABLES_INET=y
可能也意味着使用inet
地址族,除非netdev
您有特定需要使用后者。