现在的位置: 首页 > 综合 > 正文

在主机和虚拟机以bridage模式建立一个虚拟网络,但是虚拟机可以连接到因特网

2013年10月12日 ⁄ 综合 ⁄ 共 1633字 ⁄ 字号 评论关闭

目的: 用bridage模式在主机跟虚拟机间建立一个10.0.1.0的网段,mask为255.255.255.0

主机的tap0网卡地址为10.0.1.1,也作为该虚拟网的网关

虚拟机的eth0网卡地址为10.0.1.2 默认网关 10.0.1.1

如果成功的话,虚拟机是可以通过一个虚拟网上英特网的;

 

如果哪里有误解的,很高兴大家给我指出 

 

1. 在主机新建一个虚拟网卡tap0,安装 tunctl

 命令

  root$ apt-get install uml-utilities

               $ tunctl -u root

 

 

2. 配置tap0网卡

 /etc/init.d/procps restart

 重启服务让文件改变立即生效

3. 配置VirtualBox的虚拟系统网卡(如何安装ViritualBox可以参考我的另一篇文章)

   设置 => 网络 =>
 连接方式选 Britage
, 网卡选tap0
 如图

 

 

4. 确认后启动该虚拟系统,打开一个终端来手动配置网卡eth0

   * 选择你喜欢的一种编辑器打开 /etc/network/interfaces

        $vi /etc/network/interfac
es

        /*在lo的下面加入一下内容*/

    auto eth0

             iface eth0 inet static

                 address 10.0.1.2

                 netmask   255.255.255.0

         /*保存退出*/

 

 *重启network服务,

   $/etc/init.d/networking restart

 

    * 然后用ifconfig命令查看eth0 ip设置是否成功

 

 *再给给虚拟机添加一条默认网关

   $route add default gw 10.0.1.1

    *用route命令查看网关设置是否成功

 *最后如果都设置OK, 我们来测试是否可以成功将虚拟机的数据包发送到外网

  在主机上输入

           $tcpdump -i eth0 icmp
/*监听主机网卡eth0上的icmp协议数据包接发情况*/

 

  在虚拟机上输入

   $ping 8.8.8.8
/*任意一个因特网IP*/

 

 如果在主机上收到类似的信息,就代表设置OK

 21:03:12.030315 IP ubuntu.local > google-public-dns-a.google.com: ICMP echo request, id 4602, seq 14, length 64

 

PS:现在你已经建立一个10.0.1.0的虚拟网,网内有一台主机和你的虚拟机,虚拟机可以向外网发送数据包,但是可能永远无法收到回应(如果你是以路由器上连接在主机的eth0网卡的话,路由不知道如何处理回应的数据包,不会发给我们的主机)

但是我们可以再在路由器上加一条规则,让它将10.0.1.0/24网段的数据包发送到你的物理机上

 在主机上输入:

            $route  add  -net  10.0.1.0  netmask  255.255.255.0  gw  主机的公共IP

这样我们的虚拟机就可以正常上网咯

抱歉!评论已关闭.