使用 kvm 进行虚拟化:将服务从客户机导出到主机

使用 kvm 进行虚拟化:将服务从客户机导出到主机

我想通过 kvm 将一些服务从客户操作系统导出到主机操作系统,并以同样的方式学习一些有关网络的知识。我尝试了以下命令:

在主机(kubuntu 10.4)中:

$ sudo tunctl -u ascobol
Set 'tap0' persistent and owned by uid 2401
$ sudo ifconfig tap0 192.168.2.1 netmask 255.255.255.0 broadcast 192.168.2.255

ifconfig 命令返回:

$ /sbin/ifconfig
tap0      Link encap:Ethernet  HWaddr 3e:4e:e3:cc:bc:92  
inet addr:192.168.2.1  Bcast:192.168.2.255  Mask:255.255.255.0
      inet6 addr: fe80::3c4e:e3ff:fecc:bc92/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:0 errors:0 dropped:0 overruns:0 frame:0
      TX packets:0 errors:0 dropped:17 overruns:0 carrier:0
      collisions:0 txqueuelen:500 
      RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)


$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.2.0     0.0.0.0         255.255.255.0   U     0      0        0 tap0

然后我运行虚拟机(ubuntu server 10.4):

$ sudo  kvm -hda ubuntuserver104.qcow2 -net nic -net tap,name=tap0,script=no

(我使用 sudo,因为如果没有 sudo 它会失败并显示以下消息:)

警告:无法配置 /dev/net/tun:没有虚拟网络仿真

使用 sudo 虚拟机启动时,我只收到此消息:

pci_add_option_rom: 无法找到 romfile“pxe-rtl8139.bin”

在虚拟机中:

$ ifconfig eth0 192.168.2.2 netmask 255.255.255.0 broadcast 192.168.2.255

现在如果我运行:

$ ssh 192.168.2.2

我刚刚得到

没有到主机的路由

这个设置有什么问题?谢谢!

答案1

pci_add_option_rom: failed to find romfile "pxe-rtl8139.bin"

表示您没有安装 pxe bootrom 映像。请尝试安装它们,或者在 /usr/share/qemu 或 /usr/share/gpxe 中查找它们

答案2

虚拟机启动时出现的问题:

$ sudo  kvm -hda ubuntuserver104.qcow2 -net nic -net tap,name=tap0,script=no

我更换了

name=tap0

经过

ifname=tap0

并且成功了

相关内容