一、虚拟机的创建: 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 -hda voltdb.img -boot d -cdrom ./ubuntu-16.04-desktop-amd64.iso -m 2048 -vnc :1
-enable-kvm:使用KVM进行加速(确保在BIOS中开启CPU对虚拟化的支持,若未加此项,则镜像安装会很慢)
-hda: 指定要安装虚拟机要使用的虚拟磁盘
-boot d: 指定启动位置,d表示从光盘启动
-cdrom:指定cdrom为iso文件
-m: 指定虚拟机内存大小,默认单位是MB
-vnc:1:通过vnc创建虚拟桌面。(笔者在这里未加-vnc:1时,会提示:Could not initialize SDL(No available video device) - exiting)
3.此时,ubuntu的命令行会阻塞,我们可以通过在windows下通过TigerVNC去远程连接
(下载地址:https://github.com/TigerVNC/tigervnc/releases)
在TigerVNC中,我们输入ip:1(注意圆角半角的:)连接即可连接到voltdb.img虚拟镜像的安装界面,在那里完成虚拟机操作系统的安装即可。
二、配置桥接网络
qemu采用两种方式配置上网:
其一,默认方式为用户模式网络(Usermode Networking),数据包由NAT方式通过主机的接口进行传送。
其二,使用桥接方式(Bridged Networking),外部的机器可以直接联通到虚拟机,就像联通到你的主机一样。
第一,用户模式
虚拟机可以使用网络服务,但局域网中其他机器包括宿主机无法连接它。比如,它可以浏览网页,但外部机器不能访问架设在它里面的web服务器。
默认的,虚拟机得到的ip空间为10.0.2.0/24,主机ip为10.0.2.2供虚拟机访问。可以ssh到主机(10.0.2.2),用scp来拷贝文件。
第二,桥接模式
这种模式允许虚拟机就像一台独立的主机一样拥有网络。这种模式需要网卡支持,一般的有线网卡都支持,绝大部分的无线网卡都不支持
1.配置host
桥接就是把一台机器上的若干个网络接口“连接”起来。其结果是,其中一个网口收到的报文会被复制给其他网口并发送出去。以使得网口之间的报文能够互相转发。
目的:使得局域网内可以通过ssh登陆虚拟机
1.1首先,安装两个配置网络所需软件包:
apt-get install bridge-utils # 虚拟网桥工具
apt-get install uml-utilities # UML(User-mode linux)工具
1.2创建网桥,并添加端口,如下显示的是/etc/network/interface配置文件下的设置
[plain] view plain copy
- source /etc/network/interfaces.d/*
- # The loopback network interface
- auto lo
- iface lo inet loopback
- #以下是之前未添加网桥时的配置
- # The primary network interface
- #auto enp3s0
- #iface enp3s0 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 enp3s0 tap0 #为网桥添加两个接口,分别是enp3s0(之前默认的上网网口)和tap0
- bridge_stp off
- bridge_fd 0
- bridge_maxwait 0
- dns-nameservers 114.114.114.114
- #添加接口enp3s0,上网方式采用自动
- auto enp3s0
- 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虚拟机的启动脚本,替换成如下内容:
[plain] view plain copy