文档章节

ubuntu下使用qemu安装虚拟机并配置桥接网络

lwaif
 lwaif
发布于 2017/12/19 09:04
字数 1443
阅读 203
收藏 0

 

 

一、虚拟机的创建:       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

 

  1. source /etc/network/interfaces.d/*  
  2.     # The loopback network interface  
  3.     auto lo  
  4.     iface lo inet loopback  
  5.       
  6. #以下是之前未添加网桥时的配置  
  7.     # The primary network interface  
  8.     #auto enp3s0  
  9.     #iface enp3s0 inet static  
  10.     #       address 192.168.66.149  
  11.     #       netmask 255.255.255.0  
  12.     #       network 192.168.66.0  
  13.     #       broadcast 192.168.66.255  
  14.     #       gateway 192.168.66.1  
  15.     #       dns-nameservers 114.114.114.114  
  16.     #       dns-search foolsky  
  17. #添加网桥br0  
  18. auto br0  
  19.         iface br0 inet static  #之前上网时采用静态IP,所以这里依然使用此  
  20.         address 192.168.66.149 #将之前上网的ip地址分配给网桥。  
  21.         network 192.168.66.0  
  22.         netmask 255.255.255.0  
  23.         broadcast 192.168.66.255  
  24.         gateway 192.168.66.1  
  25.         bridge_ports enp3s0 tap0 #为网桥添加两个接口,分别是enp3s0(之前默认的上网网口)和tap0  
  26.         bridge_stp off  
  27.         bridge_fd 0  
  28.         bridge_maxwait 0  
  29.         dns-nameservers 114.114.114.114  
  30. #添加接口enp3s0,上网方式采用自动  
  31.     auto enp3s0  
  32.     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

 

  1. #!/bin/bash  
  2. switch=br0  
  3. if [ -n "$1" ]; then  
  4. ip link set $1 up  
  5. sleep 1  
  6. brctl addif ${switch} $1  
  7. exit 0  
  8. else  
  9. echo “Error: no interface specified”  
  10. exit 1  
  11. fi  

1.5使用如下命令行启动qemu虚拟机

    sudo qemu-system-x86_64 -enable-kvm -boot c -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如下:

[plain] view plain copy

 

  1. # interfaces(5) file used by ifup(8) and ifdown(8)  
  2. auto lo  
  3. iface lo inet loopback  
  4. auto enp0s3  
  5. #以下内容是新加入的,之前并未为enp0s3分配ip以及上网方式。  
  6. iface enp0s3 inet static  
  7.         address 192.168.66.155  #设置该ip与网桥同一网段,下边的内容相同即可。  
  8.         netmask 255.255.255.0  
  9.         network 192.168.66.0  
  10.         gateway 192.168.66.1  
  11.         brodcast 192.168.66.255  
  12.         dns-nameservers 114.114.114.114  
  13.         bridge_fd 9  
  14.         bridge_hello 2  
  15.         bridge_maxage 12  
  16.         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/

    

 

 

本文转载自:

共有 人打赏支持
lwaif
粉丝 6
博文 141
码字总数 17946
作品 0
深圳
私信 提问
如何在 Ubuntu 18.04 服务器上安装和配置 KVM

KVM(基于内核的虚拟机)是一款为类 Linux 系统提供的开源的全虚拟化解决方案,KVM 使用虚拟化扩展(如 Intel VT 或 AMD-V)提供虚拟化功能。无论何时我们在任何 Linux 机器上安装 KVM,都会...

12%
2018/06/03
0
0
virsh的使用

这里最先要完成的是对网卡的配置(os ubuntu14.04) 目的是实现vm上是以桥接的方式联网修改/etc/network/interfaces 然后执行,下面的命令要求一次执行, 然后用ip a查看eth0是否没有了ip地址,...

wang__tao
2016/09/10
5
0
后端技术杂谈7:OpenStack的基石KVM

Qemu,KVM,Virsh傻傻的分不清 当你安装了一台Linux,想启动一个KVM虚拟机的时候,你会发现需要安装不同的软件,启动虚拟机的时候,有多种方法: 这些之间是什么关系呢?请先阅读上一篇《白话...

你的猫大哥
2018/07/11
0
0
KVM(二)桥接网络

上一篇把虚拟机安装好了,这一篇配置配置网络 一.KVM网络模式 KVM支持4种网络模式,和Vmware差不多 桥接模式 NAT模式 QEMU内置的用户模式 直接分配网络设备的网络 桥接,NAT是基于linux-bri...

lixiaocheng18
2014/10/23
0
0
Centos6.5装KVM虚拟机

一、检查环境 1、系统要求: 处理器需求:需要一台可以运行最新linux内核的Intel处理器(含VT虚拟化技术)或AMD处理器(含SVM安全虚拟机技术的AMD处理器,也叫AMD-V)。 [root@laks ~]# cat...

moyier123
2015/12/18
510
0

没有更多内容

加载失败,请刷新页面

加载更多

【机器学习PAI实战】—— 玩转人工智能之商品价格预测

摘要: 我们经常思考机器学习,深度学习,以至于人工智能给我们带来什么?在数据相对充足,足够真实的情况下,好的学习模型可以发现事件本身的内在规则,内在联系。我们去除冗余的信息,可以...

zhaowei121
8分钟前
0
0
Spring拓展接口之FactoryBean,我们来看看其源码实现

是什么 FactoryBean的源码比较简单,大家可以细读下其注释,我做了简单的如下翻译 /** * 实现此接口的bean不能用作普通bean。此bean暴露的对象是通过getObject()创建的对象,而不是它自身...

java菜分享
12分钟前
1
0
Pod在多可用区worker节点上的高可用部署

一、 需求分析 当前kubernetes集群中的worker节点可以支持添加多可用区中的ECS,这种部署方式的目的是可以让一个应用的多个pod(至少两个)能够分布在不同的可用区,起码不能分布在同一个可用...

阿里云官方博客
18分钟前
0
0
深入理解 Hive 分区分桶 (Inceptor)

分区是hive存放数据的一种方式。将列值作为目录来存放数据,就是一个分区。这样查询时使用分区列进行过滤,只需根据列值直接扫描对应目录下的数据,不扫描其他不关心的分区,快速定位,提高查...

hblt-j
26分钟前
0
0
数据结构

什么是数据结构 1、数据 数据是描述客观世界的数字、字符以及一切能够输入到计算机中,并且能够被计算机程序处理的符号集合。简言之,数据就是计算机加工处理的原料,是信息的载体。 2、数据...

stars永恒
37分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部