我在 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
。
如果您可以告诉我们您正在使用什么发行版,我们可能可以帮助找出适当的机制。