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

目的: 用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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值