Qemu使用Bridge模式让虚拟机和主系统互访和上网
2009-05-13 07:59:24来源:未知 阅读 ()
202.103.xx.xx
Internet ---- Gateway -------[eth0] Host [tap0] ------- Virtual Machine [eth0]
192.168.0.1 192.168.0.2 10.8.0.1 10.8.0.2
但是这样有时候很不方便,如果主系统所在局域网要访问虚拟机,是无法直接访问的,需要在主系统上面设置端口映射。
有没有像 VMware 桥连模式一样的方式呢?虚拟机如同局域网内另外一台独立的计算机,有和主系统同网段内的IP,虚拟机可以和局域网内所有其他机器互访,并且虚拟机可以上网。
经过一番摸索,终于找到了解决办法。如下:
启动虚拟机时仍然使用 TUN/TAP 模式,但是网卡启动脚本有些变化。
qemu -boot c -hda system.img -net nic -net tap,ifname=tap0,script=/etc/qemu-ifup
启动脚本:/etc/qemu-ifup
### 注释掉原来的脚本
## ifconfig $1 10.8.0.1
## 获取原来主系统 eth0 的 IP 和网关
IP=`ifconfig eth0|grep "inet addr"|awk '{print $2}'|sed 's/addr://'`
GATEWAY=`route -n|grep ^0.0.0.0|awk '{print $2}'`
## 删除 eth0 的 IP
ip addr del $IP dev eth0
## 激活 tap0 ($1 是qemu传递过来的网卡名称,即tap0)
ip link set $1 up
## 停止并删除存在的网桥
ip link set br0 down &>/dev/null
brctl delbr br0 &>/dev/null
## 添加网桥接口 br0
brctl addbr br0
## 将 eth0 加入网桥
brctl addif br0 eth0
## 将 tap0 加入网桥
brctl addif br0 $1
## 启动网桥
ifconfig br0 $IP up
## 添加默认路由
route add default gw $GATEWAY
这样当虚拟机启动后,主系统网络接口信息为:
br0 192.168.0.2
eth0
tap0
网关 192.168.0.1
此时虚拟机的eth0可以设置为 192.168.0.3, 网关设为192.168.0.1
这样设置后,主系统可以和虚拟机相互通讯,虚拟机也可以上网了:)
如果关闭了虚拟机,需要恢复原来的网络设置,可以执行下面的脚本:
## /etc/qemu-ifup.restore
IP=`ifconfig br0|grep "inet addr"|awk '{print $2}'|sed 's/addr://'`
GATEWAY=`route -n|grep ^0.0.0.0|awk '{print $2}'`
ip addr del $IP dev br0
ip link set br0 down
brctl delbr br0
ifconfig eth0 $IP up
route add default gw $GATEWAY
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/27464/showart_290885.html
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- ACL 疑问 2009-05-13
- 做完raid之后,系统无法启动,各位兄弟帮帮忙吧 2009-05-13
- freebsd系统共享上网问题! 2009-05-13
- PC-BSD 7.1不能登录 2009-05-13
- 内核编译 修改了操作系统名称,改如何改回来? 2009-05-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash