KVM桥接网络的

转载 2012年03月31日 14:21:07

下面介绍配置KVM桥接网络的方法: \\特别注意,大部分不能桥接无线网卡。。。只能桥接PCI网卡。。。。
安装桥接工具:

代码:

sudo apt-get install bridge-utils

安装创建TAP界面的工具:

代码:

sudo apt-get install uml-utilities

编辑网络界面配置文件
代码:

sudo vi /etc/network/interfaces
  ,根据你的情况加入以下内容:

代码:

auto eth0
iface eth0 inet static \\这里可以为DHCP
address 192.168.1.2
netmask 255.255.255.0
gateway 192.168.1.1

或使用最保守的eth0配置:
auto eth0
iface eth0 inet manual

auto tap0
iface tap0 inet manual
up ifconfig $IFACE 0.0.0.0 up
down ifconfig $IFACE down
tunctl_user lm \\lm是我的用户名,在这里换为你的用户名

auto br0
iface br0 inet static \\当然这里也可以使用DHCP分配
bridge_ports eth0 tap0
address 192.168.1.3
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1


激活tap0和br0: //有些时候会不奏效,但重启后就行了

代码:

sudo /sbin/ifup tap0
sudo /sbin/ifup br0

好了以后ifconfig看一下,多了一个tap0和br0, br0上的IP地址就是你本机的IP地址。

KVM的使用方法:
KVM的使用方法具体可以参考

代码:
/usr/local/kvm/bin/qemu-system-x86_64 --help

下面具体举几个例子:
创建虚拟磁盘(用qemu-img命令):

代码:

mkdir kvm
cd kvm
/usr/local/kvm/bin/qemu-img create -f qcow2 winxp.img 10G

创建虚拟机:

代码:

sudo /usr/local/kvm/bin/qemu-system-x86_64 -m 512 -hda /home/lm/kvm/winxp.img -localtime -net nic,vlan=0,macaddr=52-54-00-12-34-01 -net tap,vlan=0,ifname=tap0,script=no -boot d -cdrom /home/lm/iso/winxp.iso -smp 2 -clock rtc -soundhw es1370

这里对各个参数说明一下:

代码:

-m 512

分配512MB的内存给GUEST OS

代码:

-hda /home/lm/kvm/winxp.img

使用虚拟磁盘的文件和路径

代码:

-localtime

使用本地时间(一定要加这个参数,不然虚拟机时间会有问题)

代码:

-net nic,vlan=0,macaddr=52-54-00-12-34-01 -net tap,vlan=0,ifname=tap0,script=no

使用网络,并连接到一个存在的网络设备tap0,注意mac地址一定要自己编一个,特别是如果你虚拟了多个系统并且要同时运行的话,不然就MAC冲突了

代码:

-boot d

从光盘启动 (从硬盘启动则为 -boot c )

代码:

-cdrom /home/lm/iso/winxp.iso

使用的光盘镜像,如果要使用物理光驱的话就是 -cdrom /dev/cdrom

代码:

-smp 2 

smp处理器个数为2个,如果你是4核处理器,后面的数字就为4(如果不开启此选项,则只能以单核模式运行)

代码:

-clock rtc

使用rtc时钟(如果不开启此选项,WINXP可能会很慢)

开始启动装系统了吧?是不是非常的快?如果你机器可以的话大概在15分钟左右就把XP装好了。
启动装好的虚拟机(很简单,上面的命令改两个参数就行):

代码:

sudo /usr/local/kvm/bin/qemu-system-x86_64 -m 512 -hda /home/lm/kvm/winxp.img -localtime -net nic,vlan=0,macaddr=52-54-00-12-34-01 -net tap,vlan=0,ifname=tap0,script=no -boot c -smp 2 -clock rtc -soundhw es1370

然后在客户端里设置好IP地址就可以使用了,但是KVM的显卡能力不行,可以通过rdesktop远程连接解决(客机转发IP设为br0指定的gw的IP)

代码1:

rdesktop 192.168.1.1:3389 -u administrator -p ****** -g 1280x750 -D -r sound:local \\分辨率可以自行设定,是不是比VirtualBox的无缝连接模式要爽??

代码2:rdesktop localhost -u 客机用户名 -p 客机用户密码 -g 1024x768 -z -D -N -k en-us -r clipboard:PRIMARYCLIPBOARD -r sound:local

   使用远程时给kvm加上-redir tcp:3389::3389 把客机的3389端口映射到宿主机上使用localhost即可远程连接,如:
sudo /usr/local/kvm/bin/qemu-system-x86_64 -m 512 -hda /home/lm/kvm/winxp.img -localtime -net nic,vlan=0,macaddr=52-54-00-12-34-01 -net tap,vlan=0,ifname=tap0,script=no -boot c -smp 2 -clock rtc -soundhw es1370 -redir tcp:3389::3389

注1:把用户加入uml-net组,否则有可能会遇到could not open /dev/net/tun: no virtual network emulation这是无/dev/net/tun读写权限造成的,如无tun.ko则编译内核。make menuconfig选择network device support->universal TUN/TAP device driver support;dummy network driver support;bonding driver support(同时设为M);若ls /dev/net/tun有返回信息则 sudo chmod o+rw(或0666) /dev/net/tun。
加入uml-net组代码:
$sudo useradd <userid> uml-net

这样就可以实现KVM虚拟机给宿主机做IP转发了。



补充:
如果同时运行多个GUEST OS ,则网络设置要改一下,在/etc/network/interfaces 里加几个tap界面就行了,每个GUEST OS单独使用一个TAP,比如说现在要同时运行3个GUEST OS ,则配置文件如下:

代码:

auto tap0
iface tap0 inet manual
up ifconfig $IFACE 0.0.0.0 up
down ifconfig $IFACE down
tunctl_user lm \\lm是我的用户名,在这里换为你的用户名

auto tap1
iface tap1 inet manual
up ifconfig $IFACE 0.0.0.0 up
down ifconfig $IFACE down
tunctl_user lm \\lm是我的用户名,在这里换为你的用户名

auto tap2
iface tap2 inet manual
up ifconfig $IFACE 0.0.0.0 up
down ifconfig $IFACE down
tunctl_user lm \\lm是我的用户名,在这里换为你的用户名

auto br0
iface br0 inet static \\当然这里也可以使用DHCP分配
bridge_ports eth0 tap0 tap1 tap2
address 192.168.1.3
netmask 255.255.255.0
network 192.168.1.1
broadcast 192.168.1.255
gateway 192.168.1.1


启动GUEST OS

代码:

sudo /usr/local/kvm/bin/qemu-system-x86_64 -m 512 -hda /home/lm/kvm/winxp.img -localtime -net nic,vlan=0,macaddr=52-54-00-12-34-01 -net tap,vlan=0,ifname=tap0,script=no -boot c -smp 2 -clock rtc -soundhw es1370

把ifname=tap0换为你要tap1或者tap2就行了,MAC也要改噢。。

要注意,系统重启后要重新加载kvm内核模块:

代码:

sudo modprobe kvm
sudo modprobe kvm-amd //如果使用AMD处理器
sudo modprobe kvm-intel //如果是用INTEL处理器

当然,你也可以修改系统相关设置在启动时自动加载该模块。
同理,可以用此方法安装LINUX。装完了可以对比一下,是不是比VB和VM要爽得多呢?

其他比如像USB连接问题可以参考论坛里的帖子

但是现在KVM还有很多的缺点,我还没有成功在KVM上安装SOLARIS系统(可能时钟不同步导致),还有有些时候WINDOWS在KVM里会有系统时钟不同步的问题(会导致WINDOWS GUEST运行很慢)。

我已经在我的系统里同时运行了4个CentOS 4.6 1个winxp sp3 1个win2003 sp2 5个FreeBSD 7.0
速度太快了,难以置信。
系统配置为:Athlon X2 5000+ 4G RAM 跑的Ubuntu 8.04.1 64bit

其实KVM的安装和使用都很方便简单的,大家要理解KVM各个参数的含义。最关键的就是KVM的网络桥接的设置,参考了网上很多的东西都没有效果,最终还是参考了VIRTUALBOX的官方的用户使用文档的网络桥接设置部分才成功的,在这里大家要多看软件自身的文档,会有很大的帮助。

android打包,用户渠道,分享apk可以知道某个用户分享的

注:分享链接就是打包过程目前很多公司通过发送一个分享链接来分享软件,分享链接里包含某个分享用户的信息,只要新用户在html中注册这个自己的信息就可以,给分享用户一个福利。 为了能够快速的分享apk,...
  • s297165331
  • s297165331
  • 2017年11月02日 22:14
  • 124

VMware的Guest与Host进行通信的三种方式

From My Blog(http://bloglong123king.sourceforge.net/?p=48) 1.概述 VMware为Guest与Host通信提供了以下的设施: ...
  • long123king
  • long123king
  • 2013年06月27日 14:44
  • 971

qemu及Guest OS环境搭建

主要参考http://smilejay.com/kvm_theory_practice/ Kvm在安装好Ubuntu13.10server后就有,安装Guest OS参照 http://blog....
  • xhjcehust
  • xhjcehust
  • 2014年07月15日 15:15
  • 881

TUN/TAP设备浅析(一) -- 原理浅析

TUN/TAP设备浅析TUN设备TUN 设备是一种虚拟网络设备,通过此设备,程序可以方便地模拟网络行为。TUN 模拟的是一个二层设备,也就是说,通过它可以处理来自网络层的数据,更通俗一点的说,通过它,...
  • lishuhuakai
  • lishuhuakai
  • 2017年06月12日 21:34
  • 1174

使用TAP网卡-加速你的虚拟机到host的访问

在使用Vmware或者virtualBox的时候,通过网络管理虚拟机的时候,一般网络都是使用的是桥接模式。当时在这种情况下一般都会遇到以下几个烦恼: 1。如果虚拟机采用的是DHCP,可能会每次开...
  • bestboyxie
  • bestboyxie
  • 2016年11月28日 22:58
  • 1233

KVM中Guest OS的调度执行

2.1 KVM中Guest OS的调度执行 VMM调度Guest OS执行时,Qemu通过ioctl系统调用进入内核模式,在KVM Driver中通过get_cpu获得当前物理CPU的引用。之后...
  • tycoon1988
  • tycoon1988
  • 2015年04月17日 22:54
  • 813

DevExpress自学笔记—整体修改窗体及控件的皮肤样式2

在窗体中添加4个按钮,通过按钮的单击事件动态的修改窗体及控件的皮肤样式,既可以实现整个项目皮肤样式的修改也可以实现单个窗体或控件皮肤样式的修改。...
  • songyi160
  • songyi160
  • 2016年02月16日 09:33
  • 2053

Django的models.py在外部独立使用

说明这里说说的在外部独立使用,指的是可以单独写一个脚本,直接运行,操作使用django-models.py的已经组建好的数据库.因为models.py使用起来特别方便,省去了各种繁琐的sql语法,提高...
  • cloudmq
  • cloudmq
  • 2016年07月01日 09:16
  • 1726

Python中os模块的使用(附一个调试例子)

一、os模块概述 Python os模块包含普遍的操作系统功能。如果你希望你的程序能够与平台无关的话,这个模块是尤为重要的。如果我们要操作文件、目录,可以在命令行下面输入操作系统提供的各种命令来完成...
  • GVFDBDF
  • GVFDBDF
  • 2015年10月04日 15:46
  • 2884

实现VirtualBox中的(Guest OS)Mac和主机(Host OS)Win7之间的文件和文件夹共享

已经可以在VirtualBox中正常的使用Mac进行开发了,但是现在想要把一些文件从WIn7下共享到VirtualBox中的Mac中去,所以需要去折腾一些,VirtualBox中的Mac,如何和Win...
  • qq_15282563
  • qq_15282563
  • 2016年08月26日 00:53
  • 959
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:KVM桥接网络的
举报原因:
原因补充:

(最多只允许输入30个字)