admin管理员组

文章数量:1660065

解决Ubuntu虚拟机和主机通信上不了网的问题

  • 我的问题:Ubuntu和主机互相ping通后却连接不了外网
    • 首先在Windows中添加环回网络适配器
    • 接着在虚拟机软件中设置桥接网络
    • 启动虚拟机,能够上网啦
    • 扩展知识:NAT网络地址转换和桥接网络

我的问题:Ubuntu和主机互相ping通后却连接不了外网

前段时间在Ubuntu虚拟机学习编程的时候需要用Xshell连接Linux,但是遇到一个问题:用Xshell的话需要虚拟机能和主机进行通信,也就是互相能够ping通。
网上查找了一些文章,说要实现主机和虚拟机通信的话需要用桥接网络,并设置静态IP使两者在同一网段。结果我设置完以后是能够ping通了,但是发现我的Ubuntu虚拟机上不了网了,网上试遍各种方法都无济于事…半个月后,我的Ubuntu终于连上网了!中间花费了大量时间和精力,所以我觉得有必要跟大家讲一下我的解决办法。

虚拟机软件:VirtualBox 6.1
Linux系统:Ubuntu 16.04
Windows系统:win10

思路很简单,就是在windows上先安装环回网络适配器并共享网络,之后在虚拟机中设置桥接网卡就可以了。下面看具体操作:

首先在Windows中添加环回网络适配器

windows中按下win+R键,输入:HDWWIZ

确定后开始添加硬件

下一步点击“安装我手动从列表选择的硬件”

下拉选择“网络适配器”

左侧选择“Microsoft”,右侧选择KM-TEST环回适配器

然后下一步安装。
安装完以后打开电脑的“更改适配器选项”


我这里出现的是“以太网3”
注意下面选中你现在电脑上网用的网卡,我这里是"WLAN"

右键属性,点击共享界面,打开共享,网络连接选择刚刚添加的环回适配器的名字。比如刚刚我添加的是“以太网3”,就选择这个。这一步的目的是让环回网卡桥接上你现在上网的网卡,这样才能连上网。

然后点击确定、确定。到这里网卡就配置好啦!

接着在虚拟机软件中设置桥接网络

打开VirtualBox,点击设置-网络
连接方式选择“桥接网卡”,界面名称选择刚刚配置好的KM-TEST环回适配器,然后点OK


这样就全部配置好了!

启动虚拟机,能够上网啦

我们用虚拟机ping一下主机,能够ping通
注意,如果这里ping不通,请尝试关闭主机的防火墙,就可以ping通啦!

用主机ping虚拟机,能够ping通

注:查看IP地址方法:
Ubuntu:终端输入ifconfig
Windows:终端输入ipconfig

最后ping一下百度:

能够ping通,说明能够连接上外网了。

扩展知识:NAT网络地址转换和桥接网络

NAT(Network Address Translation),是指网络地址转换,1994年提出的。
当在专用网内部的一些主机本来已经分配到了本地IP地址(即仅在本专用网内使用的专用地址),但又想和因特网上的主机通信(并不需要加密)时,可使用NAT方法。
这种方法需要在专用网(私网IP)连接到因特网(公网IP)的路由器上安装NAT软件。装有NAT软件的路由器叫做NAT路由器,它至少有一个有效的外部全球IP地址(公网IP地址)。这样,所有使用本地地址(私网IP地址)的主机在和外界通信时,都要在NAT路由器上将其本地地址转换成全球IP地址,才能和因特网连接。(来自百度百科)

桥接网络是指本地物理网卡和虚拟网卡通过VMnet0虚拟交换机进行桥接,物理网卡和虚拟网卡在拓扑图上处于同等地位,也就是说物理网卡和虚拟网卡就相当于处于同一个网段,虚拟交换机就相当于一台现实网络中的交换机,所以两个网卡的IP地址也要设置为同一网段

另外,有人说,如果你的主机用的是有线网络地话虚拟机就选择NAT网络,如果主机是通过无线网上网的话那么虚拟机就用桥接网卡。当然,虚拟机也可以设置两个网卡,一个NAT一个桥接网卡。

以上是我的经验,整合于网络,如有不妥之处,敬请指正。

本文标签: 上不虚拟机主机通信Ubuntu