我正在运行Debian,我试图使用iptables设置一些防火墙规则,但我只是得到了一个错误:
iptables/1.8.2 Failed to initialize nft: Protocol not supported
不管我要设定什么样的规则,它只会给我带来同样的错误。我试过在谷歌上搜索错误却没有发现任何东西。
以下是我试图制定的规则:
iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
有谁有主意吗?谢谢
发布于 2019-10-18 20:18:39
Debian 10正在使用默认情况下,nftable上的iptable。这意味着一个不同的iptables
命令(iptables-nft
)正在与内核nftables通信:它实际上将每个iptables规则转换为nftable规则,同时在扩展不存在直接的本机转换时保持xtable模块扩展的兼容性。
因为,由于某种原因,您的内核nftables没有功能(我猜它不是标准的Debian 10内核,并且未启用nftable支持)。什么是应答uname -r
?),命令失败。您仍然可以通过更改实际执行的userland命令,选择恢复到仅与iptables内核API通信的遗留iptables命令,如前面的链接所解释的那样:
更新-替代-设置iptables /usr/sbin/iptables遗留#更新-替代-设置ip6tables /usr/sbin/ip6表-遗留#更新-替代-设置arptable/usr/sbin/ arptables遗留#更新-设置ebtable/usr/sbin/ ebtables遗留
你还得调查一下你的非功能性特征。因为从iptables切换到(本机)nftable带来了很大的优势,所以这太糟糕了,不能。
发布于 2020-09-01 23:12:35
对我来说,解决方案来自于这里:我需要在内核升级之后重新启动。当然,最简单的方法是:
# as root
shutdown -r now
https://serverfault.com/questions/988412
复制相似问题