如何让VMware虚拟机能够连上internet网?发烧级教程

vmware介绍

VMware是一款虚拟平台,用户可以在VMware虚拟机机中安装windows、linux以及其他系统,实现一台windows可以运行多个独立的系统。但是虚拟机是独立于真机的隔离对象,如何让VMware中的虚拟机联网呢,下面我将介绍三种方式从底层原理介绍虚拟机联网机制。

VMware提供了三种网络模式:

1.仅主机模式:直接使虚拟机网卡接入Vmnet0网络域,该域是独立的局域网络,与外界网络不互通。

2.桥接模式:会将虚拟机直接连接到物理网卡设备,与物理网卡共享internet网。直接与公网通讯。

3.NAT模式:网络地址转换,会将虚拟机的数据包转换成物理网卡的IP,发布到公网,返回数据时再将数据换回虚拟机的IP,发给虚拟机,实现虚拟机与公网通讯。

实验环境:

windows11:包含vmware17虚拟机

vmware虚拟机:包含centOS7 linux系统,另外再准备一台linux充当客户访问。

还原虚拟网络编辑器默认配置

打开vmware编辑>虚拟网络编辑器

默认他就是如下配置,如果不是可以点击还原默认设置。

默认情况下,VMnet0网卡就是桥接模式,VMnet1就是仅主机模式,VMnet8就是NAT模式。

其中,桥接模式是与网卡共享IP地址的,所以它没有子网划分。

而NAT模式和仅主机模式都有子网划分,来构建内部网络,让处于内部网络的设备间可以相互通讯。

一、测试仅主机模式-(同网段互通)

1.将测试1主机的适配器设置成仅主机模式:

我们设置该主机的IP地址为静态IP地址192.168.1.10/24,方便后续测试:

[root@test1 ~] nmcli connection modify ens33 ipv4.method manual ipv4.addresses 192.168.1.10/24 ipv4.gateway 192.168.1.254 ipv4.dns 192.168.1.254 autoconnect yes
[root@test1 ~] nmcli connection up ens33 
[root@test1 ~] ip a s

2.将测试2主机的适配器设置成VMnet1模式:

我们设置该主机的IP地址为静态IP地址192.168.1.11/24,方便后续测试:

[root@test2 ~] nmcli connection modify ens33 ipv4.method manual ipv4.addresses 192.168.1.11/24 ipv4.gateway 192.168.1.254 ipv4.dns 192.168.1.254 autoconnect yes
[root@test2 ~] nmcli connection up ens33 
[root@test2 ~] ip a s

 测试1主机ping测试2主机,测试同网段是否互通:

[root@test1 ~] ping 192.168.1.11
PING 192.168.1.11 (192.168.1.11) 56(84) bytes of data.
64 bytes from 192.168.1.11: icmp_seq=1 ttl=64 time=1.82 ms
64 bytes from 192.168.1.11: icmp_seq=2 ttl=64 time=1.82 ms
64 bytes from 192.168.1.11: icmp_seq=3 ttl=64 time=1.82 ms
64 bytes from 192.168.1.11: icmp_seq=4 ttl=64 time=1.82 ms
64 bytes from 192.168.1.11: icmp_seq=5 ttl=64 time=1.82 ms

3.测试结果:

测试结果说明:在同一个网域(VMnet1)中,网络是互通的。同时也说明,“仅主机模式”和自定义的“VMnet1”模式是同一个网域。

二、测试NAT模式-可以和internet网通讯

1、将测试3主机的适配器设置成NAT模式:

我们设置该主机的IP地址为静态IP地址192.168.1.12/24,方便后续测试:

[root@test3 ~] nmcli connection modify ens33 ipv4.method manual ipv4.addresses 192.168.1.12/24 ipv4.gateway 192.168.1.254 ipv4.dns 192.168.1.254 autoconnect yes
[root@test3 ~] nmcli connection up ens33 
[root@test3 ~] ip a s

2、将测试4主机的适配器设置成VMnet8模式:

我们设置该主机的IP地址为静态IP地址192.168.1.13/24,方便后续测试:

[root@test4 ~] nmcli connection modify ens33 ipv4.method manual ipv4.addresses 192.168.1.13/24 ipv4.gateway 192.168.1.254 ipv4.dns 192.168.1.254 autoconnect yes
[root@test4 ~] nmcli connection up ens33 
[root@test4 ~] ip a s

用测试3主机ping测试4主机,测试同网段是否互通:

[root@test3 ~] ping 192.168.1.13
PING 192.168.1.13 (192.168.1.13) 56(84) bytes of data.
64 bytes from 192.168.1.13: icmp_seq=1 ttl=64 time=1.82 ms
64 bytes from 192.168.1.13: icmp_seq=2 ttl=64 time=0.687 ms
64 bytes from 192.168.1.13: icmp_seq=3 ttl=64 time=0.454 ms
64 bytes from 192.168.1.13: icmp_seq=4 ttl=64 time=0.674 ms
64 bytes from 192.168.1.13: icmp_seq=5 ttl=64 time=0.765 ms

3.测试结果

 测试结果说明同网段互通,并且,NAT模式与VMnet8模式是同一个网域。

用测试3主机ping www.baidu.com

[root@test3 ~] ping www.baidu.com
ping: www.baidu.com: Name or service not known

 4.问题排查:

1)网段问题

我们会发现NAT模式下无法访问互联网。检查虚拟网络编辑器:

我们发现子网IP不对,VMnet8网域中的两个主机IP是192.168.1.0网段,但是该虚拟适配器监听192.168.196.0网段。所以是网卡监听IP与主机IP不在同一个网段。

我们将子网IP改成与测试3主机和测试4主机相同的网段:192.168.1.0

再次测试访问互联网:

[root@test3 ~] ping www.baidu.com
ping: www.baidu.com: Name or service not known
2)网关问题

我们发现还是不能通, 检测NAT设置

我们发现网关是192.168.1.2,而我们测试主机指定的网关是192.168.254。现在测试机发送的数据虽然能被虚拟适配器监听到,但是它发现这不是指定它的数据,它就默认丢弃了。

我们修改虚拟适配器的网关为192.168.1.254再次测试:

[root@test3 ~] ping www.baidu.com
64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=1 ttl=128 time=58.7 ms
64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=2 ttl=128 time=55.6 ms
64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=3 ttl=128 time=90.3 ms
64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=4 ttl=128 time=90.0 ms
64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=5 ttl=128 time=89.8 ms

5.测试结果

测试结果说明NAT模式是可以访问外网的,但是他是通过将子网(192.168.1.0)请求转发到真实物理网卡以太网口,通过以太网口实现连接internet网的,这要同时保证监听网段正确,网关要指定正确,条件相对苛刻。

三、测试桥接模式-可以访问互联网

1.设置测试主机5网络模式

将测试5主机的适配器设置成桥接模式,直接绑定连接了以太网的真实物理网卡:

2.修改桥接配置

在虚拟网络适配器中,绑定连接了以太网的真实物理网卡:(由于我是用手机usb网络共享,所以选最后一个,你们根据情况选)

我们设置该主机的IP地址为静态IP地址192.168.1.14/24,方便后续测试:

[root@test5 ~] nmcli connection modify ens33 ipv4.method manual ipv4.addresses 192.168.1.14/24 ipv4.gateway 192.168.1.254 ipv4.dns 192.168.1.254 autoconnect yes
[root@test5 ~] nmcli connection up ens33 
[root@test5 ~] ip a s

 测试5主机ping www.baidu.com:

[root@test3 ~] ping www.baidu.com
PING www.baidu.com(240e:ff:e020:9ae:0:ff:b014:8e8b (240e:ff:e020:9ae:0:ff:b014:8e8b)) 56 data bytes 
64 bytes from 240e:ff:e020:9ae:0:ff:b014:8e8b (240e:ff:e020:9ae:0:ff:b014:8e8b): icmp_seq=1 ttl=53 time=22.1 ms
64 bytes from 240e:ff:e020:9ae:0:ff:b014:8e8b (240e:ff:e020:9ae:0:ff:b014:8e8b): icmp_seq=2 ttl=53 time=21.7 ms
64 bytes from 240e:ff:e020:9ae:0:ff:b014:8e8b (240e:ff:e020:9ae:0:ff:b014:8e8b): icmp_seq=3 ttl=53 time=23.6 ms

3.测试结果

测试结果说明桥接模式可以直接连接通过真实物理网卡连接internet。并且延迟更低。

但它也有缺点,那就是不能与windows真机通讯,不能被本地windows远程登录。

四、高阶Vmware配置:

1、篡改虚拟网络适配器默认模式

误区解疑:适配器选项中的仅主机模式,桥接模式,NAT模式,一定就是仅主机模式和桥接模式和NAT模式吗?

错,选项中的桥接模式、NAT模式、仅主机模式代指的是VMnet0网域、VMnet8网域、VMnet1网域,该网域是否是对应的模式,要看你的设置。

目前测试1主机和测试2主机是仅主机模式(VMnet1),测试5主机是桥接模式(VMnet0)

我们现在修改虚拟网络适配器的默认配置,将VMnet0桥接模式换成仅主机模式,将VMnet1仅主机模式换成桥接模式:

然后我们发现选择VMnet1或仅主机模式的测试1主机和测试2主机都能访问外网了。而原来是桥接模式(VMnet0)的测试主机5却无法上网了。

[root@test1 ~] ping www.baidu.com
PING www.baidu.com(240e:ff:e020:9ae:0:ff:b014:8e8b (240e:ff:e020:9ae:0:ff:b014:8e8b)) 56 data bytes 
64 bytes from 240e:ff:e020:9ae:0:ff:b014:8e8b (240e:ff:e020:9ae:0:ff:b014:8e8b): icmp_seq=1 ttl=53 time=23.6 ms
64 bytes from 240e:ff:e020:9ae:0:ff:b014:8e8b (240e:ff:e020:9ae:0:ff:b014:8e8b): icmp_seq=2 ttl=53 time=20.3 ms
64 bytes from 240e:ff:e020:9ae:0:ff:b014:8e8b (240e:ff:e020:9ae:0:ff:b014:8e8b): icmp_seq=3 ttl=53 time=25.7 ms

测试结果告诉我们,VMnet网域的网络模式不是固定的。仅主机模式不一定就是仅主机模式,要看配置。(新手不建议操作,以免混乱,如果不慎误操作又不知道如何还原,请点击还原默认设置)

2、让仅主机模式下的主机也能连上外网

仅主机模式虽然是隔离的网络,但它也是可以连上外网的。

原理:通过windows的网络适配器数据共享。模拟NAT通讯过程。

步骤:

1)添加网域

我们在虚拟网络编辑器中新添加一个网域,VMnet10,设置成仅主机模式,注意这里分配的子网IP地址为192.168.137.0,不能是其它:

注意,确保勾选“将主机虚拟适配器链接到此网络”,这时Vmware会在windows真机上生成一个VMnet10的网络适配器,如下图:

这个VMnet10网络适配器默认IP地址是192.168.137.1/24,和VMnet10子网网段相同,这让真机与该网域的所有主机通讯成为了可能(包括真机ping虚拟机,真机ssh管理虚拟机,真机与虚拟机传输文件等)。

2)共享internet网卡

这时虚拟机可以和真机的VMnet10网络适配器通讯,但是VMnet10却不能和已连接internet的网络适配器之间通讯,因为他们属于不同网段,相互之间不能被监听,所以我们应该让已连接internet网的网络适配器共享网络给VMnet10网络适配器:

在保存时会提示即将把被共享网络适配器(VMnet10)的IP设置为192.168.137.1,这里同意,我们已经设置为了192.168.137.1,相当于系统不用做更改。

3)设置测试主机网络模式

我们将测试主机6这个虚拟机设为该VMnet10仅主机域,并配置IP为192.168.137.11/24,网关为192.168.137.11,dns也为192.168.137.11。

加入测试主机到该网域:

设置虚拟机test6网络模式为自定义VMnet10:

4)配置测试主机IP地址、网关、DNS

设置IP地址为192.168.137.11/24,网关为192.168.137.11,dns为192.168.137.11

[root@test6 ~] nmcli connection modify ens33 ipv4.method manual ipv4.addresses 192.168.137.11/24 ipv4.gateway 192.168.137.11 ipv4.dns 192.168.137.11 autoconnect yes
[root@test6 ~] nmcli connection up ens33 
[root@test6 ~] ip a s
5)测试结果:
[root@test6 ~] ping www.baidu.com
64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=1 ttl=128 time=58.7 ms
64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=2 ttl=128 time=55.6 ms
64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=3 ttl=128 time=90.3 ms
64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=4 ttl=128 time=90.0 ms
64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=5 ttl=128 time=89.8 ms

通过上述实验,我们已经可以让仅主机模式也能连接外网了。但是这样有个缺点,那就是,笔记本电脑的便捷式热点使用的网卡IP地址也是192.168.137.1,如果我们占用了这个IP,那么热点就会出现无法使用的情况。请注意。

总结

想让网络通是一件比较烧脑的问题,网上也有各种软件专门代理和转发网络,但是延迟也是不尽人意,性能也是参次不齐,只有真正懂得原理才能解决实际问题。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值