gra*_*alf 5 linux debian iptables
我正在运行 Debian,并尝试使用 iptables 设置一些防火墙规则,但出现错误:
iptables/1.8.2 Failed to initialize nft: Protocol not supported
Run Code Online (Sandbox Code Playgroud)
我尝试设置什么样的规则并不重要,它只会给我同样的错误。我尝试用谷歌搜索错误但没有找到任何东西。
这些是我试图设定的规则:
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
Run Code Online (Sandbox Code Playgroud)
有人有想法吗?谢谢
Debian 10 默认使用iptables 而不是 nftables。这意味着不同的iptables命令 ( iptables-nft) 正在与内核 nftables API 进行通信:它实际上将每个iptables规则转换为nftables规则,同时在扩展不存在直接本机翻译时保持xtables模块扩展兼容性。
因为不知何故,你的内核nftables API 不起作用(我的猜测是它不是标准的 Debian 10 内核并且未启用 nftables 支持。答案是什么uname -r?),命令失败。您仍然可以选择通过更改实际执行的用户态命令来恢复到仅与 iptables 内核 API 通信的旧版 iptables 命令,如上一个链接中所述:
Run Code Online (Sandbox Code Playgroud)# update-alternatives --set iptables /usr/sbin/iptables-legacy # update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy # update-alternatives --set arptables /usr/sbin/arptables-legacy # update-alternatives --set ebtables /usr/sbin/ebtables-legacy
您仍然需要调查您的非功能性nftables功能。由于从 iptables 切换到(原生)nftables 会带来巨大的优势,因此如果不能这样做就太糟糕了。
| 归档时间: |
|
| 查看次数: |
16098 次 |
| 最近记录: |