我想通过 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
并且成功了