一、虚拟机的创建:
    1.ubuntu下安装好qemu后,使用如下命令创建虚拟机: 
  
  
 
 
    
  
 
 
 
   qemu-img create -f qcow2 voltdb.img 10g 
 
 
 
     -f qcow2是指:qemu采取的镜像格式,qcow2是qemu最常使用的格式,该格式下可 
  以 
  采用 
  来写时复 
  制技术来 
  优化性能; 
 
 
  
    voltdb.img是指:镜像名称 
 
 
  
    10g是指:镜像文件大小 
 
 
  
   2.之后需要为该镜像文件安装操作系统: 
 
 
 
     
  qemu-system-x86_64-enable-kvm-hdavoltdb.img-bootd-cdrom./ubuntu-16.04-desktop-amd64.iso-m2048-vnc:1 
 
 
 
     -enable-kvm: 
  使用  
  KVM  
  进行加速(确保在BIOS中开启cpu对虚拟化的支持,若未加此项,则镜像安装会很慢)  
 
 
 
     -hda: 指定 
  要安装虚拟机要使用的虚拟磁盘 
 
 
  
    -boot d:指定启动位置,d表示从光盘启动 
 
 
 
     -cdrom:指定 
  cdrom为iso文件 
   
 
 
 
     -m: 
  指定虚拟机内存大小,默认单位是 
  MB 
 
 
 
     -vnc:1:通过vnc创建虚拟桌面。(笔者在这里未加-vnc:1时,会提示: 
  CouldnotinitializeSDL(Noavailablevideodevice)-exiting 
  ) 
 
 
 
     3.此时,ubuntu的命令行会阻塞,我们可以通过在windows下通过 
  TigerVNC去远程连接 
 
 
 
   (下载地址: 
  https://github.com/TigerVNC/tigervnc/releases 
  ) 
 
 
  
    在TigerVNC中,我们输入ip:1(注意圆角半角的:)连接即可连接到voltdb.img虚拟镜像的安装界面,在那里完成虚拟机操作系统的安装即可。 
 
 
 
   二、配置桥接网络 
 
 
    
 qemu采用两种方式配置上网: 
 
 
 其一,默认方式为用户模式网络(usermode Networking),数据包由NAT方式通过主机的接口进行传送。 
 
 
 其二,使用桥接方式(Bridged Networking),外部的机器可以直接联通到虚拟机,就像联通到你的主机一样。 
  
  
  
 
  1.配置host  
   
 
 
   第一,用户模式
虚拟机可以使用网络服务,但局域网中其他机器包括宿主机无法连接它。比如,它可以浏览网页,但外部机器不能访问架设在它里面的web服务器。
默认的,虚拟机得到的ip空间为10.0.2.0/24,主机ip为10.0.2.2供虚拟机访问。可以ssh到主机(10.0.2.2),用scp来拷贝文件。
第二,桥接模式
这种模式允许虚拟机就像一台独立的主机一样拥有网络。这种模式需要网卡支持,一般的有线网卡都支持,绝大部分的无线网卡都不支持
 
  
 虚拟机可以使用网络服务,但局域网中其他机器包括宿主机无法连接它。比如,它可以浏览网页,但外部机器不能访问架设在它里面的web服务器。
默认的,虚拟机得到的ip空间为10.0.2.0/24,主机ip为10.0.2.2供虚拟机访问。可以ssh到主机(10.0.2.2),用scp来拷贝文件。
第二,桥接模式
这种模式允许虚拟机就像一台独立的主机一样拥有网络。这种模式需要网卡支持,一般的有线网卡都支持,绝大部分的无线网卡都不支持
 
    桥接就是把一台机器上的若干个网络接口“连接”起来。其结果是,其中一个网口收到的报文会被复制给其他网口并发送出去。以使得网口之间的报文能够互相转发。 
 
     
 目的:使得局域网内可以通过ssh登陆虚拟机 
 
 
 1.1首先, 
 安装两个配置网络所需软件包:   
 
 
     apt-get install bridge-utils # 虚拟网桥工具 
 
apt-get install uml-utilities # UML(User-modeLinux)工具
1.2创建网桥,并添加端口,如下显示的是/etc/network/interface配置文件下的设置
   此时,查看当前网络配置:注意: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虚拟机的启动脚本,替换成如下内容: 
 
   1.5使用如下命令行启动qemu虚拟机 
 
 
 
  sudoqemu-system-x86_64-enable-kvm-bootc-drivefile=/usr/local/ubuntu.img,if=virtio-m1024-smp2-netdevtype=tap,script=/etc/qemu-ifup,downscript=no,id=net0-devicevirtio-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如下: 
 
copy 
     
     
     
   
 
  - 
#interfaces(5)fileusedbyifup(8)andifdown(8) 
   
- autolo
- ifaceloinetloopback
- autoenp0s3
- #以下内容是新加入的,之前并未为enp0s3分配ip以及上网方式。
- ifaceenp0s3inetstatic
- address192.168.66.155#设置该ip与网桥同一网段,下边的内容相同即可。
- brodcast192.168.66.255
- dns-nameservers114.114.114.114
- bridge_fd9
- bridge_hello2
- bridge_maxage12
- bridge_stpoff