//原文参考和引用:"vm虚拟机三种网络模式详解:https://www.cnblogs.com/linjiaxin/p/6476480.html"
桥接、NAT、hostonly

在宿主机上对应的有VMware Network Adapter VMnet1和VMware Network Adapter VMnet8两块虚拟网卡

在VM软件中有三种虚拟网络(虚拟交换机):VMnet0、VMnet1、VMnet8
//由于VMnet0使用桥接模式,对应在宿主的网络配置中看不到VMnet0网卡的存在


桥接模式就是将宿主机网卡(真实网卡)与VM软件中的虚拟交换机0(VMnet0)利用虚拟网桥进行通信。在桥接的作用下,类似于把物理主机虚拟为一个交换机,所有桥接设置的虚拟机连接到这个交换机的一个接口上,物理主机也同样插在这个交换机当中,所以所有桥接下的网卡与网卡都是交换模式的,相互可以访问而不干扰。在桥接模式下,虚拟机ip地址需要与主机在同一个网段,如果需要联网,则网关与DNS需要与主机网卡一致


[root@cricket-server Desktop]# vi /etc/sysconfig/network-scripts/ifcfg-eno16777728
TYPE=Ethernet
BOOTPROTO=static
NAME=eno16777728
UUID=d86ad442-6fd5-4470-9e07-5ad58525255e
ONBOOT=yes
HWADDR=00:0C:29:DC:14:31
IPADDR=192.168.43.202 //设置虚拟机IP与宿主机同一网段
NETMASK=255.255.255.0 //设置子网掩码
GATEWAY=192.168.43.1 //设置网关
DNS1=192.168.43.1 //设置dns
[root@cricket-server Desktop]# systemctl restart network
[root@cricket-server Desktop]# ifconfig
eno16777728: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.43.202 netmask 255.255.255.0 broadcast 192.168.43.255 //网卡信息一致
inet6 fe80::20c:29ff:fedc:1431 prefixlen 64 scopeid 0x20<link>
inet6 240e:2a:17f1:698c:20c:29ff:fedc:1431 prefixlen 64 scopeid 0x0<global>
ether 00:0c:29:dc:14:31 txqueuelen 1000 (Ethernet)
RX packets 140 bytes 16469 (16.0 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 166 bytes 19324 (18.8 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
………………省略其余部分网卡过程………………
使用ping命令ping外网ip,测试能否联网
[root@cricket-server Desktop]# ping www.baidu.com
PING www.a.shifen.com (220.181.112.244) 56(84) bytes of data.
64 bytes from 220.181.112.244: icmp_seq=1 ttl=52 time=45.0 ms
64 bytes from 220.181.112.244: icmp_seq=2 ttl=52 time=55.0 ms
64 bytes from 220.181.112.244: icmp_seq=3 ttl=52 time=46.9 ms
64 bytes from 220.181.112.244: icmp_seq=4 ttl=52 time=42.9 ms
64 bytes from 220.181.112.244: icmp_seq=5 ttl=52 time=46.3 ms
64 bytes from 220.181.112.244: icmp_seq=6 ttl=52 time=44.0 ms
^C
--- www.a.shifen.com ping statistics ---
6 packets transmitted, 6 received, 0% packet loss, time 5008ms
rtt min/avg/max/mdev = 42.976/46.737/55.082/3.971 ms


NAT是Network address translate(网络地址转换)的简称
NAT模式是宿主机(真实网卡)和VM软件中的虚拟交换机(VMnet8)利用虚拟NAT设备进行通信,虚拟机发出的每一块数据包都会经过虚拟NAT设备(表面看不见),然后NAT后转发给宿主机网卡(真实网卡)。
虚拟交换机(VMnet8)和虚拟机处于一个地址段,虚拟机和宿主机处于不同一个地址段,VM软件中的虚拟NAT设备相当于虚拟机的网关,能通过路由转发到达宿主机(真实网卡)中,所以虚拟机能ping到宿主机的IP,但是宿主机ping不到虚拟机的IP(NAT属于多对一,虚拟NAT设备不具备外部访问内部功能),因而使用CRT等终端时无法连接虚拟机。

VMware Network Adapter VMnet8的作用就是:实现主机与虚拟机之间的通信,使CRT等终端能通过宿主机来访问虚拟机,但是VM软件中的VMnet8设置的NAT网关是无法通过宿主机来连通的(虚拟NAT设备不具备外部访问内部功能)


在VM中"虚拟网络编辑器"设置NAT参数及自定义参数
[root@cricket-server Desktop]# vi /etc/sysconfig/network-scripts/ifcfg-eno16777728
TYPE=Ethernet
BOOTPROTO=static
NAME=eno16777728
UUID=d86ad442-6fd5-4470-9e07-5ad58525255e
ONBOOT=yes
HWADDR=00:0C:29:DC:14:31
IPADDR=172.30.200.100 //设置虚拟机IP与NAT模式参数设置为同一网段
NETMASK=255.255.255.0
GATEWAY=172.30.200.1
DNS1=172.30.200.1
[root@cricket-server Desktop]# systemctl restart network
[root@cricket-server Desktop]# ifconfig
eno16777728: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.30.200.100 netmask 255.255.255.0 broadcast 172.30.200.255
ether 00:0c:29:dc:14:31 txqueuelen 1000 (Ethernet)
RX packets 46 bytes 5304 (5.1 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 185 bytes 14976 (14.6 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
使用ping命令ping外网ip,测试能否联网
[root@cricket-server Desktop]# ping www.baidu.com //可以ping通百度
PING www.a.shifen.com (220.181.112.244) 56(84) bytes of data.
64 bytes from 220.181.112.244: icmp_seq=1 ttl=128 time=63.1 ms
64 bytes from 220.181.112.244: icmp_seq=2 ttl=128 time=57.0 ms
^C
--- www.a.shifen.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 57.013/60.091/63.170/3.088 ms
[root@cricket-server Desktop]# ping 192.168.43.202 //可以ping通宿主机IP
PING 192.168.43.202 (192.168.43.202) 56(84) bytes of data.
64 bytes from 192.168.43.202: icmp_seq=1 ttl=128 time=5.96 ms
64 bytes from 192.168.43.202: icmp_seq=2 ttl=128 time=43.3 ms
^C
--- 192.168.43.202 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 5.968/24.636/43.304/18.668 ms
[root@cricket-server Desktop]# ping 172.30.200.1 //可以ping通NAT网关
PING 172.30.200.1 (172.30.200.1) 56(84) bytes of data.
64 bytes from 172.30.200.1: icmp_seq=1 ttl=128 time=0.158 ms
64 bytes from 172.30.200.1: icmp_seq=2 ttl=128 time=0.261 ms
^C
--- 172.30.200.1 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.158/0.209/0.261/0.053 ms
[root@cricket-server Desktop]# ping 172.30.240.254 //可以ping通VMnet8网卡(为了区别,VMnet8 IP 与NAT参数设置有别)
PING 172.30.240.254 (172.30.240.254) 56(84) bytes of data.
64 bytes from 172.30.240.254: icmp_seq=1 ttl=128 time=0.669 ms
64 bytes from 172.30.240.254: icmp_seq=2 ttl=128 time=0.475 ms
64 bytes from 172.30.240.254: icmp_seq=3 ttl=128 time=0.537 ms
^C
--- 172.30.240.254 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2001ms
rtt min/avg/max/mdev = 0.475/0.560/0.669/0.083 ms



Host-Only模式其实就是NAT模式去除了虚拟NAT设备,然后使用VMware Network Adapter VMnet1虚拟网卡连接VMnet1虚拟交换机来与虚拟机通信的,Host-Only模式将虚拟机与外网隔开,使得虚拟机成为一个独立的系统,只与主机相互通讯



[root@cricket-server Desktop]# vi /etc/sysconfig/network-scripts/ifcfg-eno16777728

[root@cricket-server Desktop]# systemctl restart network
[root@cricket-server Desktop]# ifconfig

使用ping命令ping外网宿主机网络(VMnet8),测试能否联网
[root@cricket-server Desktop]# ping 172.30.100.254 //可以ping通宿主机IP
PING 172.30.100.254 (172.30.100.254) 56(84) bytes of data.
64 bytes from 172.30.100.254: icmp_seq=1 ttl=128 time=0.388 ms
64 bytes from 172.30.100.254: icmp_seq=2 ttl=128 time=0.307 ms
^C
--- 172.30.100.254 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.307/0.347/0.388/0.044 ms
[root@cricket-server Desktop]# ping 192.168.43.201 //无法ping通宿主机真实IP
connect: Network is unreachable
[root@cricket-server Desktop]# ping www.baidu.com //无法ping百度
ping: unknown host www.baidu.com


原文:https://www.cnblogs.com/qcricket/p/11568368.html