虚拟机双网卡设置(外网+内网)

【摘要】:本文主要介绍了在开发过程中,实现开发板利用网线直连电脑实现开发工作,而电脑又可以通过另一个无线或有线网卡正常连接互联网。

【硬件开发环境】:开发主机——惠普笔记本(带无线网卡+有线网卡)、开发板JZ2440(带有线网卡)、网线1根(用于连接开发板和开发主机间的有线网卡)

【软件开发环境】:开发主机安装Win10操作系统并通过无线网卡连接互联网、开发主机安装有VMware Workstation Pro软件,用于运行虚拟机Ubuntu16.04、开发板安装了Linux3.4.2内核。

【配置目标】:虚拟机(Ubuntu)配置成双网卡,其中一个网卡配置成NAT模式,通过主机的无线网卡连接到外网进行上网;另一个网卡配置成桥接模式,通过桥接到开发主机的有线网卡,达到开发主机、Ubuntu、开发板的两两互联。

1. 配置NAT网卡

  • NAT,Network Address Translation,指网络地址转换。使用 NAT 网卡 时,Ubuntu 要访问外网,是委托 Windows 发出数据包,Windows 接收到回应 后再转发给 Ubuntu。外界看到的都是 Windows,看不到 Ubuntu。使用 NAT 时, 只要 Windows 能上网,Ubuntu 就必定能上网,无需设置 Ubuntu 的网络。
  1. 在Windows的【开始】菜单,搜索“虚拟网络编辑器”,并以管理员的身份打开后,点击还原默认设置。

  2. 在虚拟机关机状态下,点击【编辑虚拟机设置】,删除所有已有的【网络适配器】(为了彻底和之前错的设置说再见,一切从头开始)。

  3. 再次重新添加一个新的【网络适配器】:

    image-20220911161225699

  4. 为该新的网络适配器选择【NAT】模式:

    image-20220911161349590

  5. 确认后,开启虚拟器,打开终端查看虚拟机是否已自动配置好ip地址,

    image-20220911163127551

    • 如果没有自动配置IP

    • 请在ubuntu终端下执行 sudo dhclient 来自动获取IP;

    • 请确认虚拟机的网络配置文件,是否将ens33网卡配置为动态IP?

      • 打开/etc/network/interfaces文件,查看ens33网卡配置语句,修改为以下动态获取IP:
      auto ens33
      iface ens33 inet dhcp
      
    • 请确认开发主机Windows是否已经启用了VMNet8?其IP地址和DNS服务器地址是否设置为自动获取?

      image-20220911164032242

      如果没有上图中的VMNet8,那需要打开Windows的虚拟机服务(把VMWare开头的几个全打开):

      image-20220911164554489

  6. 查看虚拟机是否已经可以连接外网:

    image-20220911163322128

    • 如果网址ping不通:执行route -n命令,查看当前系统的路由信息,确保ens33网卡有0.0.0.0目标的路由表:

      image-20220911162704436

      • 如果缺少该路由信息,可执行以下语句进行添加:(192.168.40.2是根据ens33网卡自动获取的IP地址192.168.40.129得到的网关地址,要根据你自己的来设置)

        sudo route add default gw 192.168.40.2
        

2. 配置网桥网卡

  • 使用桥接网卡时,Ubuntu 就是使用一个真实的网卡:开发板的网线是连接到这个真实的网卡上的,这样 Windows、Ubuntu、开发板就都可以用过这个网卡 互通了。
    • Ubuntu需要完成的设置:添加一个桥接网络适配器,并桥接到连接开发板的那个有线网卡;为该网卡设置静态IP
    • Windows开发主机需要完成的设置:为该有线网卡设置静态IP,且与Ubuntu中设置的为同一网段;
    • 开发板需要完成的设置:设置静态ip地址,且与Ubuntu中设置的为同一网段;

2.1 设置Windows端

  1. 依次打开【控制面板】——>【网络和Internet】——>【网络连接】,查看在Windows是否已经识别:

image-20220911180302084

如果是外接网卡,需要在设备管理器中查看其名字,且一定要注意,在插入外接网卡时Ubuntu可能会弹出一个窗口,提示检测到新的设备,是连接到主机还是Ubuntu?一定要选择连接到主机!!!

image-20220911175318759

如果,不幸选中了,也可以通过点击【可移动设备】显示的刚插入电脑里的外接网卡名前面的勾号进行取消:

image-20220911175933991

  1. 设置ip

    选中网卡,鼠标右键选择【属性】,找到【Internet 协议版本4(TCP/IPv4)】,双击后设置静态ip为192.168.5.10

    image-20220911201932076

    • 此时,因为此时开发板还未启动,ip也未设置,所以网卡图标是打叉的。且在Windows的cmd窗口中也看不到该网卡(以太网适配器 以太网)的ip地址。

      image-20220911202109638

      image-20220911202356405

2.2 设置Ubuntu端

  • 关闭虚拟机,而后添加一个新的【网络适配器】,并选择桥接模式。

  • 在Windows的【开始】菜单,搜索“虚拟网络编辑器”,并以管理员的身份打开后,确定【VMnet0】的类型为桥接模式,并且选择已桥接至我们连接到开发板的网卡:

    image-20220911181445021

    • 如果没有出现【VMnet0】,可先点击左下角的【还原默认设置】。
    • 选中VMnet0这一行后,在”VMnet信息“这一菜单栏下选择【已桥接至】,点击下拉箭头选择要桥接的网卡(如果是外接有线网卡,那就选择外接网卡,如果是自带有线网卡,就选择自带的有线网卡,以你开发板连接的网卡为准)。
    • 上图中的VMnet8其实就是我们之前设置的【NAT网络适配器】,可以看到其子网地址的网段与我们在Ubuntu中ens33的ip地址是一致的。
  • 设置IP地址

    1. Ubuntu桌面点击左侧【系统设置】图标,选择【网络】

      image-20220911195639875

    2. 打开【网络】之后,可以看到两个网卡的设置界面

      1. 其中一个是之前设置的ens33(NAT网卡),可以通过其ip地址为192.168.40.129判断出来:

        image-20220911195905325

      2. 另外一个没有设置ip地址的显然就是我们待设置的桥接网卡,点击右下角【选项】进入设置页,点击【IPv4设置】,【方法】选择“手动”,而后分别设置ip地址为:192.168.5.11,子网掩码为:255.255.255.0(也就是24位),网关为:192.168.5.1,最后点击保存即可!注意:此ip地址你可以自己设定,只要保证不与之前设置的NAT网卡地址位于同一网段且Windows、Ubuntu、开发板这三者的ip地址位于同一网段即可!

      image-20220911200222131

    3. 此时,需要执行reboot重新启动Ubuntu,而后通过ifconfig查看是否设置成功。

      • 若重启后,执行ifconfig,发现桥接网卡ens38地址并未设置,也可以通过命令行进行设置:

        sudo ifconfig ens38 192.168.5.11
        
      • 若重启后,执行ifconfig,只看到了NAT网卡(ens33),并未看到桥接网卡ens38。可以执行如下命令进行开启:

        sudo ifup ens38
        

      image-20220911201500550

2.3. 配置开发板

  1. 打开串口,打开开发板电源,利用串口工具登陆开发板系统;

  2. 手动设置开发板ip地址:ifconfig eth0 192.168.5.9

    1. 为了每次打开开发板的时候,能够自动配置为我们所设置的ip地址,也可以在开发板的/etc/systemd/network/目录(该目录本来不存在,也需要新建)下新建50-static.network文件。

    2. 输入以下配置语句:

      [Match]
      Name=eth0
      [Network]
      Address=192.168.5.9/24
      Gateway=192.168.5.1
      
  3. 输入ifconfig查看开发板ip配置情况:

    image-20220911204513528

  4. 在开发板上分别ping一下Ubuntu和WIndows主机,看能否联通?

    image-20220911204632791

  5. 在Ubuntu中分别ping一下开发板和WIndows主机,看能否联通?

    image-20220911205722685

    • 如果存在ping不同Windows的话,那肯定是防火墙没有关闭,我们需要关闭所有网络的防火墙。

    • 如果担心网络安全的话,也可以打开【允许应用通过防火墙】,打开以”VMware“开头的所有应用的防火墙:

      image-20220911210220868

      image-20220911210327476

  6. 在WIndows中分别ping一下开发板和Ubuntu,看能否联通?

    image-20220911210530171

    此时,再查看WIndows的网络连接,已经发现之前打叉断开的有线网卡已经处于联通状态了:

image-20220911211501340

  1. 至此,已经达到我们所有目的了。当然如果你的开发板有两个网卡接口的话,除了eth0被我们用来作为开发用之外,另一个网口eth1就可以被用来开发板上网了,具体方法也很简单:

    1. 使用网线连接开发板另一网卡接口至可以上网的路由器上;
    2. 在开发板终端上执行udhcpc -i eth1,等待 eth1 网卡自动获得IP;
    3. 通过执行ping www.baidu.com,如果可以正常解析网址并ping通,那就证明开发板已经可以访问外网了。
  • 13
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Leon_George

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值