apt-get install uml-utilities # UML(User-mode Linux)工具
1.2创建网桥,并添加端口,如下显示的是/etc/network/interface配置文件下的设置
source /etc/network/interfaces.d/* # The loopback network interface auto lo iface lo inet loopback #以下是之前未添加网桥时的配置 # The primary network interface #auto enp2s0 #iface enp2s0 inet static # address 192.168.66.149 # netmask 255.255.255.0 # network 192.168.66.0 # broadcast 192.168.66.255 # gateway 192.168.66.1 # dns-nameservers 114.114.114.114 # dns-search foolsky #添加网桥br0 auto br0 iface br0 inet static #之前上网时采用静态IP,所以这里依然使用此 address 192.168.66.149 #将之前上网的ip地址分配给网桥。 network 192.168.66.0 netmask 255.255.255.0 broadcast 192.168.66.255 gateway 192.168.66.1 bridge_ports enp2s0 tap0 #为网桥添加两个接口,分别是enp3s0(之前默认的上网网口)和tap0 bridge_stp off bridge_fd 0 bridge_maxwait 0 dns-nameservers 114.114.114.114 #添加接口enp2s0,上网方式采用自动 auto enp2s0 iface eth0 inet manual 此时,查看当前网络配置:注意:enp3s0是未分配ip的。
1.3使用brctl配置网桥: tunctl -t tap0 -u 用户名 # 创建一个tap0接口,只允许指定用户访问
brctl addif br0 tap0 # 在虚拟网桥中增加一个tap0接口
ifconfig tap0 0.0.0.0 promisc up # 打开tap0接口
brctl showstp br0 br0网桥显示如下:
1.4修改/etc/qemu-ifup虚拟机的启动脚本,替换成如下内容:
#!/bin/bash switch=br0 if [ -n "$1" ]; then ip link set $1 up sleep 1 brctl addif ${switch} $1 exit 0 else echo “Error: no interface specified” exit 1 fi
1.5使用如下命令行启动qemu虚拟机 sudo qemu-system-x86_64 -enable-kvm -boot d -drive file=/usr/local/ubuntu.img,if=virtio -m 1024 -smp 2 -netdev type=tap,script=/etc/qemu-ifup,downscript=no,id=net0 -device virtio-net-pci,netdev=net0,mac=00:11:22:33:44:AB -vnc :1 -daemonize file:指定镜像位置 script:指向启动脚本的位置。 -daemonize:使得改启动命令 不在阻塞,执行完该命令后依然可以执行其他命令。 mac:为虚拟机的默认网卡分配指定的虚拟mac地址,可自行设定(MACADDR 可以指定一个mac地址,但要注意,第一个字节必须为偶数,如00,52等,不能为奇数(01),否则会有不可预料的问题。因为奇数保留为多播使用。) 2.配置虚拟机内操作系统的网络 此时,我们依然需要通过TigerVNC进入虚拟机已安装的操作系统,进入后,修改/etc/network/interfaces如下: # interfaces(5) file used by ifup(8) and ifdown(8) auto lo iface lo inet loopback auto enp0s3 #以下内容是新加入的,之前并未为enp0s3分配ip以及上网方式。 iface enp0s3 inet static address 192.168.66.155 #设置该ip与网桥同一网段,下边的内容相同即可。 netmask 255.255.255.0 network 192.168.66.0 gateway 192.168.66.1 brodcast 192.168.66.255 dns-nameservers 114.114.114.114 bridge_fd 9 bridge_hello 2 bridge_maxage 12 bridge_stp off 之后重启虚拟机中操作系统,即可在局域网内通过ssh连接qemu中的操作系统。
可参考: http://www.cnblogs.com/york-hust/archive/2012/05/29/2523437.html http://blog.csdn.net/tycoon1988/article/details/40819239 http://blog.csdn.net/simonzhao0536/article/details/9188859 http://blog.csdn.net/hzhsan/article/details/7904129/