问题:
当尝试添加 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
您有特定需要使用后者。