如何在 KVM 中创建虚拟网络适配器(如物理 eth0)?因为我没有物理 NIC。
此外,我需要一个主机专用适配器(如 VMware 中一样)来连接 KVM 中的两个虚拟机。在 KVM 中执行此操作的可能解决方案是什么?
请回复。谢谢
答案1
公共桥接
如果 KVM 主机上只有一个 NIC,并且您希望虚拟机能够访问连接到eth0
接口的主网络,那么您必须在物理网络接口上设置一个公共网络桥接(eth0
在示例中):
如果没有桥接,你会得到类似的东西/etc/network/interfaces
:
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.0.101
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1
要设置桥梁,请eth0
用以下方式替换部分:
# The primary network interface
auto br0
iface br0 inet static
address 192.168.0.101
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1
bridge_ports eth0
bridge_stp off
bridge_maxwait 5
或sudo ifup br0
重新启动机器。请注意该bridge_ports eth0
部分,它链接物理网卡上的网桥并允许在主网络上访问网桥。
仅限主机(私人桥接)
通过创建公共网桥,您可以让虚拟机通过连接到 的网络在它们之间进行访问eth0
。如果您只需要在同一主机上的虚拟机之间进行访问,则可以使用私有网桥(这样您就可以维护您的eth0
配置,并且您不必将网络接口绑定到网桥bridge_ports none
)。在您的接口配置文件中,您将拥有:
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.0.101
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1
# The private bridge
auto br0 inet static
address 172.16.0.1
netmask 255.255.255.0
network 172.16.0.0
broadcast 172.16.0.255
bridge_ports none
bridge_stp off
bridge_fd 0
bridge_maxwait 0
或sudo ifup br0
重新启动机器。
您可以使用新创建的网桥(公共或私有br0
)作为 KVM 虚拟机的网络设备。如果您使用 vanilla qemu/kvm cli 或使用某些管理工具(virsh、virt-manager、ovirt、proxmox 等),此步骤会发生变化。
来宾配置
在这两种情况下,您都可以像配置网络上具有网络接口的普通主机一样配置虚拟机,并且可以拥有/etc/network/interfaces
类似以下内容的内容(例如网络 192.168.0.0/24):
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.0.102
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1
一些有用的文档: