主要有两种方法,NAT和桥接
NAT设置
NAT就是虚拟机里的guestOS通过host的物理网卡eth0,连接上网。该方法方便设置,缺点是其他机器难以访问到guest。
要求host机器创建虚拟网卡tap0,guest机器和该网卡tap0设置为统一网段,并以tap0的地址作为网关,host机器上的物理网卡eth0为该tap0做NAT。
因此需要安装Uml-utilites以生成虚拟网卡tap0,tunctl -t tap0
注:
1. 首先内核中支持tap/tuns设备,可以通过lsmod |grep tun,查看输出有没有tun,没有的话就得重新编译内核模块加入,这个可以从查找相应资料
2. qemu中在启动虚拟机时可以自动生成一个虚拟网卡(-net nic -net tap,ifname=tap0,script=/etc/qemu-ipup)
3. 可以在qemu启动时加上-net user参数,直接让guest上网
步骤:
1. 首先在qemu启动时,通过ipconfig查找到其生成的虚拟网卡tapN,手动设置其ip
ifconfig tapN 192.168.25.1 netmask 255.255.255.0
当然也可以在/etc/qemu-ipup脚本中删除其他内容加入
ifconfig $1 192.168.25.1 netmask 255.255.255.0 ($1 是qemu传递过来的网卡名称,即tap0)
别忘用 ifconfig tapN 查看设置结果
2. 现在启动qemu,在gusetOS里设置网络,和tapN同一网段,网管为tapN的ip,DNS也和host机器一样
tapN:
ip: 192.168.25.1
broadcast: 192.168.25.255
netmask: 255.255.255.0
guestOS :
ip: 192.168.25.N
broadcast: 192.168.25.255
netmask: 255.255.255.0
getway: 192.168.25.1
DNS: 参照host机器eth0的设置
相关命令 ifconfig eth0 192.168.255.123 netmask 255.255.255.0
route add default gw 192.168.25.1
设置好以后,应该gusetOS就可以和host通讯里,ping以下host的eth0的ip看看。但是guestOS还不能上网,成里host-only了。
3.设置NAT
这个其实就是在host里双网卡,其中eth0为tapN做NAT。
首先打开ip转换功能(也可以直接编辑配置文件ip_forward=1)
echo 1 > /proc/sys/net/ipv4/ip_forward
然后开启NAT
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.25.0/24 -j MASQUERADE
上句的意思为将所有来自192.168.8.0/24网段的数据包,从eth0接口转发出去
这样虚拟机里的guestOS就可以上网喽。
启动虚拟机
qemu -hda /imagepath -net nic -net tap,ifname=tapN
桥接设置
基本思想是host机器上,物理网卡eth0和虚拟网卡tapN建立网桥,guestOS通过tapN连接上网,这样guestOS和host都处于物理局域网内,其他机器也可以访问guestOS。
需要安装以下两个包,bridge-tils和Uml-utilites,前者用于建立桥接,后者用于生成虚拟网卡。
步骤:
1.删除host上eth0的ip,建立网桥,将eth0加入到网桥中
eth0的ip为192.168.8.123,删除之
ip addr del 192.168.8.123 dev eth0
生成网桥br0
brctl addbr br0
将eth0加入网桥
brctl addif eth0
将eth0的ip信息配置到br0中
ifconfig br0 192.168.8.123 。。。
如果时dhcp则
dhclient dr0
2.启动qemu虚拟机,之后ifconfig中会出现新的tap设备tapN,将之加入到br0中
brctl addif br0 tapN
3.虚拟机gusetOS里设置网络参数,和eth0最初的一样,如果时dhcp则将自动获取到局域网的ip,至此就可以上网喽。
以上其实可以写一个脚本,可以参考下面的文章。
参考
KVM虚拟机和QEMU
http://jianlee.ylinux.org/Computer/Software/kvm-qemu.html
VisualBox设置桥接的方法
http://forum.ubuntu.org.cn/viewtopic.php?f=65&t=172790
Qemu使用Bridge模式让虚拟机和主系统互访和上网
http://www.wangchao.net.cn/bbsdetail_1611042.html
Qemu & Networking
http://ubuntuforums.org/showthread.php?t=457405
qemu安装连接wlan qemu配置网络
转载文章标签 qemu安装连接wlan 网络 ubuntu 虚拟机 networking 文章分类 机器学习 人工智能
-
qemu虚拟机无法连接网络 qemu虚拟机配置网络
vmware三种网络连接,qemu两种网络连接实现 虚拟机<--->主机 虚拟机<--->互联网通信的方法。顺便写了下如何不重新编译整个内核支持某个功能,对系
qemu虚拟机无法连接网络 运维 操作系统 linux 加载