Ubuntu hardy 中安装 KVM 速记中网络配置采用 KVM 默认方式,此法简单易用。
用户网络
使用情形
- 最简易的从虚拟机访问宿主,Internet,和其它本地网络资源
- 你不需要从一个 guest 访问另外一个 guest
- 你不追求最高性能
警告:用户网络不支持部分网络特性如 ICMPP,影响一些程序(如 ping) 无法完全正常工作。
前置需求
- 你需要 kvm 启动并运行
- 非 root 用户运行需要拥有 /dev/kvm rw 权限
- 如果你需要访问 Internet 或本地网络,你的宿主系统必须可以访问 Internet 和本地网络
解决方案
以参数 "-net nic -net user" 运行 kvm , 例如:
kvm -hda /path/to/hda.img -net nic -net user
注意
- IP地址由qemu 自带的 DHCP 服务自动分配
- 如果你在一个宿主上运行多 guest 系统,你无法为每个 guest 指定不同的 MAC 地址
- 你仍可访问一个指定的端口,你可以使用 "redir" 选项(译者按:启动 kvm 时)
公共网桥
警告: 下面的方法,不适用于大部分的无限驱动,因为他们不支持 bridging 功能。
使用案例
- 你不想指定 IP 地址到你的虚拟机器并且使它们可以从本地网络访问
-
- 希望性能于虚拟机无关
前置需求
- kvm 已启动并运行
- 非 root 用户运行需要拥有 /dev/kvm rw 权限
停止当前网络接口
sudo /etc/init.d/networking restart
编辑 /etc/network/interfaces 设置 bridge 接口,注释或替换原配置为(修改为对应你网络的配置):
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet manual
auto br0
iface br0 inet static
address 192.168.0.10
network 192.168.0.0
netmask 255.255.255.0
broadcast 192.168.0.255
gateway 192.168.0.1
bridge_ports eth0
bridge_fd 9
bridge_hello 2
bridge_maxage 12
bridge_stp off
或使用 DHCP(对 laptop 比较有用,但不能使用无线,囧)
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet manual
auto br0
iface br0 inet dhcp
bridge_ports eth0
bridge_fd 9
bridge_hello 2
bridge_maxage 12
bridge_stp off
这将用来创建虚拟接口 br0
重启网络
sudo /etc/init.d/networking restart
手工或用下面的脚本创建 MAC 地址
#!/bin/bash
# generate a random mac address for the qemu nic
# shell script borrowed from user pheldens @ qemu forum
echo $(echo -n DE:AD:BE:EF ; for i in `seq 1 2` ;
do echo -n `echo ":$RANDOM$RANDOM" | cut -n -c -3` ;done)
注:原脚本用的环境为 /bin/sh,ubuntu 上出错,所以这里我替换为 /bin/bash
用生成的 MAC 地址替换下面的 $macaddress 启动 KVM
kvm -hda /path/to/hda.img -net nic,macaddr=$macaddress -net tap
现在可以 ping 通本地网络了,:-)