我注意到 QEMU/KVM(通过 libvirt 使用)和 VirtualBox 之间的网络体验存在以下差异:
对于用户模式或手动网络之外的任何其他情况,QEMU/KVM 需要
virbr0
创建一个网络接口,并且它向 iptables 添加了一堆规则。另一方面,VirtualBox 可以在 NAT 和桥接模式下运行,而无需接触iptables
或创建任何网络接口。可能与上述相关,在非root用户会话中,QEMU/KVM仅允许用户模式(或手动)网络,而VirtualBox即使没有root权限也支持大多数/所有各种网络模式。
我想了解这些差异背后的根本原因及其影响。我想到的几个具体问题:
VirtualBox 的网络解决方案似乎需要较少的权限。这是类似于 QEMU/KVM 的用户模式网络(只是有更多选项)的各种网络协议的用户空间实现的结果,还是用户在组中的成员身份允许的幕后执行的特权操作
vboxusers
?QEMU/KVM 的用户模式网络是否比 VirtualBox 的 NAT 模式网络差?根据libvirt 常见问题解答,用户模式网络“具有不明显的限制,因此不鼓励使用它”,但我找不到这些限制是什么(除了仅限于 NAT 之外)。对我来说,只做一个简单的 NAT 似乎完全没问题(事实上,这似乎是微不足道的,即使不是避免修改的唯一方法
iptables
)。三种 NAT 替代方案(VirtualBox NAT、QEMU/KVM“适当”NAT、QEMU/KVM 用户模式网络)的安全性和性能如何相互比较?