我不小心运行了一个sudo apt remove firewalld
,现在尝试使用 virt-manager 创建虚拟机时显示以下消息:
The name org.fedoraproject.FirewallD1 was not provided by any .service files
因此,我决定再次安装该firewalld
软件包。现在,我收到以下错误消息:
internal error: firewalld is set to use the nftables backend, but the required firewalld 'libvirt' zone is missing. Either set the firewalld backend to 'iptables', or ensure that firewalld has a 'libvirt' zone by upgrading firewalld to a version supporting rule priorities (0.7.0+) and/or rebuilding libvirt with --with-firewalld-zone
firewalld
已经是on了0.9.1-1ubuntu1
,大于0.7.0,所以我觉得版本应该不存在问题,但是确实有。
正确的解决方案是什么,将东西恢复到删除之前的样子firewalld
?
尝试手动运行时也会出现相同的错误virsh net-start default
。
我正在使用 Ubuntu 20.10 (Pop!_OS,这就是为什么我必须将我的问题移到这里)
答案1
正如评论中所建议的克里斯蒂安·埃尔哈特在原来的问题中,我改变了
FirewallBackend=nftables
到
FirewallBackend=iptables
在/etc/firewalld/firewalld.conf
。
virt-manager 现在可以工作了。
它似乎是 Ubuntu 中的默认设置,但在重新安装软件包时被重置。
但是,我认为这可能不是最好的解决方案,因为nftables
据说更好,但如果 Ubuntu 维护者认为它很好,那么我就暂时保留它;欢迎提出更好的建议。