即使配置文件存在,nftables 也不起作用

即使配置文件存在,nftables 也不起作用

我在 Debian 10 上使用 nftables。这是我的配置文件

# cat /etc/nftables.conf
#!/usr/sbin/nft -f

flush ruleset

table inet filter {
        chain input {
                type filter hook input priority 0;
        }
        chain forward {
                type filter hook forward priority 0;
        }
        chain output {
                type filter hook output priority 0;
        }
}

以及服务文件

[Unit]
Description=nftables
Documentation=man:nft(8) http://wiki.nftables.org
Wants=network-pre.target
Before=network-pre.target shutdown.target
Conflicts=shutdown.target
DefaultDependencies=no

[Service]
Type=oneshot
RemainAfterExit=yes
StandardInput=null
ProtectSystem=full
ProtectHome=true
ExecStart=/usr/sbin/nft -f /etc/nftables.conf
ExecReload=/usr/sbin/nft -f /etc/nftables.conf
ExecStop=/usr/sbin/nft flush ruleset

[Install]
WantedBy=sysinit.target

但 nftables 无法正常工作。有一些例子:

nft list tables: 无输出

...

# nft list table inet filter
Error: Could not process rule: No such file or directory
list table inet filter
                ^^^^^^

....

# nft add table ip filter
Error: Could not process rule: Operation not supported
add table ip filter
^^^^^^^^^^^^^^^^^^^^

为什么?以及如何解决它?

答案1

您的发行版的软件包nftables可能提供了一种机制,可在系统启动时自动加载 nftables 规则。例如,在 Fedora 上,您可以启用该nftables服务...

systemctl enable nftables

...这将从 加载配置/etc/sysconfig/nftables.conf

如果您可以告诉我们您正在使用什么发行版,我们可能可以帮助找出适当的机制。

相关内容