从 Ubuntu 20.04 升级到 20.10 后,我想最终开始使用 firewalld 而不是旧的手动 iptables 方法,但我从服务中得到的只是以下内容,这也破坏了与 Docker 的任何网络集成:
Feb 13 13:28:20 myhost firewalld[36390]: ERROR: 'python-nftables' failed: internal:0:0-0: Error: Could not process rule: No such file or directory
该错误消息并没有真正的帮助,因为它没有说“找不到什么”。
我还尝试直接journalctl --unit firewalld --no-pager
使用该nft
命令执行 JSON blob (from ),但这只会给出相同的错误消息,实际上是多次。所以错误消息是来自libnftables1
.
在此处和此处查看了一些 Python 代码后,很明显我需要反汇编大 JSON blob 并查看哪些指令完全失败,这导致我出现以下情况(在将 JSON blob 存储到 之后
~/nftables.json
):...获取条目数(在我的情况下为 225),然后:
...仅第一个条目就失败了:
由于这只是添加了一条链,因此这里唯一可能出错的是缺少的表,这已通过以下方式确认:
...所以我们需要添加它:
在经历了更多类似的失败之后,我最终只手动添加了以下表格: