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

    xiaoxiao2021-03-25  120

    一、虚拟机的创建:        1.ubuntu下安装好qemu后,使用如下命令创建虚拟机:     qemu-img create -f qcow2ubuntu.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配置文件下的设置

    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/

    转载请注明原文地址: https://ju.6miu.com/read-6135.html

    最新回复(0)